Kan geen verbinding maken met uw authenticatieagent

Ik kom deze fout tegen van:

$ git push heroku master
Warning: Permanently added the RSA host key for IP address '50.19.85.132' to the list of known hosts.
!  Your key with fingerprint b7:fd:15:25:02:8e:5f:06:4f:1c:af:f3:f0:c3:c2:65 is not authorized to access bitstarter.

Ik heb geprobeerd de sleutels toe te voegen en krijg onderstaande foutmelding:

$ ssh-add ~/.ssh/id_rsa.pub
Could not open a connection to your authentication agent.

Antwoord 1, autoriteit 100%

Ben je ssh-agent gestart?

Mogelijk moet u ssh-agent starten voordat u de opdracht ssh-add uitvoert:

eval `ssh-agent -s`
ssh-add

Merk op dat hierdoor de agent voor msysgit Bash op Windows wordt gestart. Als u een andere shell of een ander besturingssysteem gebruikt, moet u mogelijk een variant van de opdracht gebruiken, zoals die in de overige antwoorden.

Zie de volgende antwoorden:

  1. ssh-add klaagt: kon geen verbinding maken met uw authenticatieagent
  2. Git push vereist gebruikersnaam en wachtwoord (bevat gedetailleerde instructies voor het gebruik van ssh-agent)
  3. Hoe (git/ssh) authenticatie-agent uitvoeren?.
  4. Kan geen verbinding maken met uw authenticatie-agent

Als u ssh-agent automatisch wilt starten en een enkele instantie in meerdere consolevensters wilt laten werken, gaat u naar Ssh-agent starten bij inloggen.

Waarom moeten we eval gebruiken in plaats van alleen ssh-agent?

Bekijk Het antwoord van Robin Green om erachter te komen waarom.

Openbare versus privésleutels

Bovendien, wanneer ik ssh-add gebruik, voeg ik er altijd privésleutels aan toe. Het bestand ~/.ssh/id_rsa.pub ziet eruit als een openbare sleutel, ik weet niet zeker of dat zal werken. Heb je een ~/.ssh/id_rsa-bestand? Als je het opent in een teksteditor, staat er dan dat het een privésleutel is?


Antwoord 2, autoriteit 23%

Ik heb de andere oplossingen tevergeefs geprobeerd. Ik deed meer onderzoek en ontdekte dat het volgende commando werkte. Ik gebruik Windows 7 en Git Bash.

eval $(ssh-agent)

Meer informatie in: https://coderwall.com/p/rdi_wq


Antwoord 3, autoriteit 11%

Het volgende commando werkte voor mij. Ik gebruik CentOS.

exec ssh-agent bash

Antwoord 4, autoriteit 9%

Kan geen verbinding maken met uw authenticatieagent

Om deze fout op te lossen:

bash:

$ eval `ssh-agent -s`

tcsh:

$ eval `ssh-agent -c`

Gebruik dan ssh-add zoals je normaal zou doen.


Tip:

Ik vergat altijd wat ik moest typen voor de bovenstaande ssh-agent-opdrachten, dus maakte ik een alias in mijn .bashrc-bestand als volgt:

alias ssh-agent-cyg='eval `ssh-agent -s`'

In plaats van ssh-agent te gebruiken, kan ik nu ssh-agent-cyg

gebruiken

Bijvoorbeeld

$ ssh-agent-cyg
SSH_AUTH_SOCK=/tmp/ssh-n16KsxjuTMiM/agent.32394; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32395; export SSH_AGENT_PID;
echo Agent pid 32395;
$ ssh-add ~/.ssh/my_pk

Oorspronkelijke bron van reparatie:

http://cygwin.com/ml/cygwin/2011-10/msg00313.html


Antwoord 5, autoriteit 8%

MsysGit of Cygwin

Als je Msysgit of Cygwin gebruikt, kun je een goede tutorial vinden op SSH- Agent in msysgit en cygwin en bash:

  1. Voeg een bestand met de naam .bashrc toe aan je thuismap.

  2. Open het bestand en plak het in:

    #!/bin/bash
    eval `ssh-agent -s`
    ssh-add
    
  3. Hierbij wordt ervan uitgegaan dat uw sleutel zich op de conventionele locatie ~/.ssh/id_rsa bevindt. Als dit niet het geval is, voeg dan een volledig pad toe na de opdracht ssh-add.

  4. Voeg toe aan of maak bestand ~/.ssh/config met de inhoud

    ForwardAgent yes
    

    In de originele tutorial is de ForwardAgent param Yes, maar het is een typfout. Gebruik alleen kleine letters, anders krijg je fouten.

  5. Herstart Msysgit. Het zal je vragen om je wachtwoordzin één keer in te voeren, en dat is het (totdat je de sessie beëindigt of je ssh-agent wordt gedood.)

Mac/OS X

Als je niet elke keer dat je een terminal opent een nieuwe ssh-agent wilt starten, bekijk dan Sleutelhanger. Ik werk nu op een Mac, dus ik heb de tutorial gebruikt ssh-agent met zsh & sleutelhanger op Mac OS X om het in te stellen, maar ik weet zeker dat een Google-zoekopdracht veel informatie voor Windows zal opleveren.

Update: een betere oplossing op Mac is om je sleutel toe te voegen aan de Mac OS-sleutelhanger:

ssh-add -K ~/.ssh/id_rsa

Zo simpel is het.


Antwoord 6, autoriteit 7%

Rennen

ssh-agent bash
ssh-add

Voor meer details kun je zoeken

ssh-agent

of rennen

man ssh-agent

Antwoord 7, autoriteit 5%

ssh-add en ssh (ervan uitgaande dat je de openssh-implementaties gebruikt) vereisen een omgevingsvariabele om te weten hoe ze met de ssh-agent moeten praten. Als je de agent hebt gestart in een ander opdrachtpromptvenster dan het venster dat je nu gebruikt, of als je het verkeerd hebt gestart, zal ssh-add noch ssh die omgevingsvariabele zien (omdat de omgevingsvariabele lokaal is ingesteld) naar de opdrachtprompt waarin het is ingesteld).

Je zegt niet welke versie van ssh je gebruikt, maar als je cygwin’s gebruikt, kun je dit recept gebruiken van SSH-agent op Cygwin:

# Add to your Bash config file
SSHAGENT=/usr/bin/ssh-agent
SSHAGENTARGS="-s"
if [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
    eval `$SSHAGENT $SSHAGENTARGS`
    trap "kill $SSH_AGENT_PID" 0
fi

Hiermee wordt automatisch een agent gestart voor elk nieuw opdrachtpromptvenster dat u opent (wat niet optimaal is als u meerdere opdrachtprompts in één sessie opent, maar het zou in ieder geval moeten werken).


Antwoord 8, autoriteit 4%

Ik had hetzelfde probleem voor Linux, en dit is wat ik deed:

Kortom, het commando ssh-agent start de agent, maar het stelt niet echt de omgevingsvariabelen in om het uit te voeren. Het voert die variabelen alleen uit naar de shell.

Je moet:

eval `ssh-agent`

en doe dan ssh-add. Zie Kan geen verbinding maken met uw authenticatieagent.


Antwoord 9, autoriteit 4%

In plaats van $ ssh-agent -s te gebruiken, heb ik $ eval `ssh-agent -s` gebruikt om dit probleem op te lossen.

Dit is wat ik stap voor stap heb uitgevoerd (stap 2 en verder op GitBash):

  1. Mijn .ssh-map op C:\user\<username>\.ssh\
  2. opgeschoond

  3. Nieuwe SSH-sleutel gegenereerd
    $ ssh-keygen -t rsa -b 4096 -C "[email protected]"
  4. Controleer of er al een proces-ID (ssh-agent) actief is.
    $ ps aux | grep ssh
  5. (Optioneel) Als je er een hebt gevonden in stap 3, dood je die
    $ kill <pids>
  6. De ssh-agent gestart
    $ eval `ssh-agent -s`
  7. Ssh-sleutel toegevoegd die in stap 2 is gegenereerd aan ssh-agent
    $ ssh-add ~/.ssh/id_rsa

Antwoord 10, autoriteit 4%

Probeer de volgende stappen:

1) Open Git Bash en voer uit: cd ~/.ssh

2) Probeer agent uit te voeren: eval $(ssh-agent)

3) Op dit moment kun je het volgende commando uitvoeren: ssh-add -l


Antwoord 11, autoriteit 2%

In Windows 10 heb ik alle hier vermelde antwoorden geprobeerd, maar geen enkele leek te werken. In feite geven ze een aanwijzing. Om een ​​probleem op te lossen heb je simpelweg 3 commando’s nodig. Het idee van dit probleem is dat ssh-add SSH_AUTH_SOCK en SSH_AGENT_PID omgevingsvariabelen nodig heeft om te worden ingesteld met het huidige ssh-agent sokbestandspad en pid-nummer.

ssh-agent -s > temp.txt

Hiermee wordt de uitvoer van de ssh-agent in het bestand opgeslagen. De inhoud van het tekstbestand ziet er ongeveer zo uit:

SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3044; export SSH_AGENT_PID;
echo Agent pid 3044;

Kopieer iets als “/tmp/ssh-kjmxRb2764/agent.2764” uit het tekstbestand en voer de volgende opdracht rechtstreeks in de console uit:

set SSH_AUTH_SOCK=/tmp/ssh-kjmxRb2764/agent.2764

Kopieer zoiets als “3044” uit het tekstbestand en voer de volgende opdracht rechtstreeks in de console uit:

set SSH_AGENT_PID=3044

Als nu omgevingsvariabelen (SSH_AUTH_SOCK en SSH_AGENT_PID) zijn ingesteld voor de huidige consolesessie, voer dan je ssh-add-opdracht uit en het zal niet opnieuw mislukken om verbinding te maken met de ssh-agent.


Antwoord 12

Eén ding dat ik tegenkwam was dat eval niet werkte voor mij met Cygwin, wat voor mij werkte was ssh-agent ssh-add id_rsa.

Daarna kwam ik een probleem tegen dat mijn privésleutel te open was, de oplossing die ik daarvoor heb kunnen vinden (van hier):

chgrp Users id_rsa

evenals

chmod 600 id_rsa

eindelijk kon ik het volgende gebruiken:

ssh-agent ssh-add id_rsa

Antwoord 13

Voor venstergebruikers vond ik dat cmd eval `ssh-agent -s` niet werkte, maar het gebruik van git bash werkte een traktatie eval `ssh-agent -s`; ssh-add KEY_LOCATION en zorg ervoor dat de Windows-service “OpenSSH Key Management” niet is uitgeschakeld


Antwoord 14

Om het antwoord van n3o voor Windows 7 te versterken…

Mijn probleem was inderdaad dat sommige vereiste omgevingsvariabelen niet waren ingesteld, en n3o heeft gelijk dat ssh-agent je vertelt hoe je die omgevingsvariabelen moet instellen, maar ze niet echt instelt.

Omdat Windows je “eval” niet laat doen, is dit wat je in plaats daarvan moet doen:

Redirect de uitvoer van ssh-agent naar een batchbestand met

ssh-agent > temp.bat

Gebruik nu een teksteditor zoals Kladblok om temp.bat te bewerken. Voor elk van de eerste twee regels:
– Voeg het woord “set” en een spatie in aan het begin van de regel.
– Verwijder de eerste puntkomma en alles wat erop volgt.

Verwijder nu de derde regel. Je temp.bat zou er ongeveer zo uit moeten zien:

set SSH_AUTH_SOCK=/tmp/ssh-EorQv10636/agent.10636
set SSH_AGENT_PID=8608

Voer temp.bat uit. Dit stelt de omgevingsvariabelen in die nodig zijn om ssh-add te laten werken.


Antwoord 15

Ik heb dit zojuist werkend gekregen. Open uw ~/.ssh/config-bestand.

Voeg het volgende toe-

Host github.com
 IdentityFile ~/.ssh/github_rsa

De pagina die me de hint gaf SSH instellen voor Git
zei dat de inspringing met één spatie belangrijk is… hoewel ik hier een configuratie van Heroku had die die spatie niet had en goed werkt.


Antwoord 16

Als u deze instructies volgt, is uw probleem opgelost.

Als u een Mac- of Linux-machine gebruikt, typt u:

eval "$(ssh-agent -s)"

Als u een Windows-computer gebruikt, typt u:

ssh-agent -s

Antwoord 17

Ik had hetzelfde probleem op Ubuntu en de andere oplossingen hielpen me niet.
Ik realiseerde me eindelijk wat mijn probleem was. Ik had mijn ssh-sleutels in de map /root/.ssh gemaakt, dus zelfs toen ik ssh-add als root uitvoerde, kon het niet doe zijn werk en blijf zeggen

Could not open a connection to your authentication agent.

Ik heb mijn openbare en persoonlijke ssh-sleutels gemaakt in de map /home/myUsername/ en ik heb

gebruikt

ssh-agent /bin/sh

toen rende ik

ssh-add /home/myUsername/.ssh/id_rsa

en het probleem is op deze manier opgelost.

Opmerking: voor toegang tot uw repository op git voegt u uw git-wachtwoord toe wanneer u ssh-sleutels maakt met ssh-keygen -t rsa -C "your git email here".


Antwoord 18

Laat me een andere oplossing bieden. Als je zojuist Git 1.8.2.2 of iets dergelijks hebt geïnstalleerd en je wilt SSH inschakelen, volg dan de goed geschreven routebeschrijving.

Alles tot en met stap 5.6 waar u mogelijk een klein probleempje tegenkomt. Als er al een SSH-agent actief is, kunt u de volgende foutmelding krijgen wanneer u bash opnieuw start

Could not open a connection to your authentication agent

Als je dat doet, gebruik dan de volgende opdracht om te zien of er meer dan één ssh-agent-proces actief is

ps aux | grep ssh

Als je meer dan één ssh-agent-service ziet, moet je al deze processen beëindigen. Gebruik het kill-commando als volgt (de PID is uniek op uw computer)

kill <PID>

Voorbeeld:

kill 1074

Nadat je alle ssh-agent-processen hebt verwijderd, voer je de px aux | . uit grep ssh commando nogmaals om er zeker van te zijn dat ze weg zijn, start dan Bash opnieuw.

Voila, je zou nu zoiets als dit moeten krijgen:

Initializing new SSH agent...
succeeded
Enter passphrase for /c/Users/username/.ssh/id_rsa:

Je kunt nu doorgaan met stap 5.7 en verder.


Antwoord 19

Opmerking: dit is een antwoord op deze vraag, die is met deze samengevoegd.
Die vraag was voor Windows 7, wat betekent dat mijn antwoord voor Cygwin/MSYS/MSYS2 was. Deze lijkt voor een unix, waar ik niet zou verwachten dat de SSH-agent zo moet worden beheerd
.

Hierdoor wordt de SSH-agent uitgevoerd en alleen de eerste keer dat u het nodig heeft geverifieerd, niet elke keer dat u uw Bash-terminal opent. Het kan worden gebruikt voor elk programma dat SSH in het algemeen gebruikt, inclusief ssh zelf en scp. Voeg dit toe aan /etc/profile.d/ssh-helper.sh:

ssh-auth() {
    # Start the SSH agent only if not running
    [[ -z $(ps | grep ssh-agent) ]] && echo $(ssh-agent) > /tmp/ssh-agent-data.sh
    # Identify the running SSH agent
    [[ -z $SSH_AGENT_PID ]] && source /tmp/ssh-agent-data.sh > /dev/null
    # Authenticate (change key path or make a symlink if needed)
    [[ -z $(ssh-add -l | grep "/home/$(whoami)/.ssh/id_rsa") ]] && ssh-add
}
# You can repeat this for other commands using SSH
git() { ssh-auth; command git "[email protected]"; }

Antwoord 20

Gebruik parameter -A wanneer u verbinding maakt met de server, bijvoorbeeld:

ssh -A [email protected]

van man-pagina:

-A Enables forwarding of the authentication agent connection.  
   This can also be specified on a per-host basis in a configuration file.
   Agent forwarding should be enabled with caution.  Users with the ability to bypass file permissions on the remote host (for the agent's
   UNIX-domain socket) can access the local agent through the forwarded 
   connection.  An attacker cannot obtain key material from the agent,
   however they can perform operations on the keys that enable them to
   authenticate using the identities loaded into the agent.

Antwoord 21

De basisoplossing om ssh-agent uit te voeren wordt in veel antwoorden beantwoord. Als u echter ssh-agent vele malen uitvoert (per elke geopende terminal of per externe login) zal een groot aantal kopieën van ssh-agent in het geheugen worden aangemaakt. De scripts die worden voorgesteld om dat probleem te voorkomen, zijn lang en moeten gescheiden bestanden schrijven en/of kopiëren of moeten te veel tekenreeksen schrijven in ~/.profile of ~/.schrc. Laat me een eenvoudige oplossing met twee tekenreeksen voorstellen:

Voor sh, bash, enz:

# ~/.profile
if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -s > ~/.ssh-agent.sh; fi
. ~/.ssh-agent.sh

Voor csh, tcsh, enz.:

# ~/.schrc
sh -c 'if ! pgrep -q -U `whoami` -x 'ssh-agent'; then ssh-agent -c > ~/.ssh-agent.tcsh; fi'
eval `cat ~/.ssh-agent.tcsh`

Wat is hier:

  • zoek het proces ssh-agent op naam en op huidige gebruiker
  • maak het juiste shellscriptbestand door ssh-agent aan te roepen en voer ssh-agent zelf uit als er geen huidig ​​gebruikersproces ssh-agent is gevonden
  • beoordeel het gecreëerde shellscript dat de juiste omgeving configureert

Het is niet nodig om het aangemaakte shellscript ~/.ssh-agent.tcsh of ~/.ssh-agent.sh te beschermen tegen toegang van een andere gebruiker, omdat: op -eerste communicatie met ssh-agent wordt verwerkt via een beveiligde socket die niet toegankelijk is voor andere gebruikers, en op de tweede plaats kunnen andere gebruikers de ssh-agent socket eenvoudig vinden door middel van opsommingsbestanden in de map /tmp/. Wat betreft toegang tot het ssh-agent-proces gaat het om dezelfde dingen.


Antwoord 22

Probeer het volgende:

ssh-agent sh -c 'ssh-add && git push heroku master'

Antwoord 23

Lees @cupcake’s antwoord voor uitleg. Hier probeer ik alleen de reparatie te automatiseren.

Als je Cygwin-terminal gebruikt met BASH, voeg dan het volgende toe aan het $HOME/.bashrc-bestand. Dit start ssh-agent slechts eenmaal in de eerste Bash-terminal en voegt de sleutels toe aan ssh-agent. (Niet zeker of dit vereist is op Linux)

###########################
# start ssh-agent for
# ssh authentication with github.com
###########################
SSH_AUTH_SOCK_FILE=/tmp/SSH_AUTH_SOCK.sh
if [ ! -e $SSH_AUTH_SOCK_FILE ]; then
    # need to find SSH_AUTH_SOCK again.
    # restarting is an easy option
    pkill ssh-agent
fi
# check if already running
SSH_AGENT_PID=`pgrep ssh-agent`
if [ "x$SSH_AGENT_PID" == "x" ]; then
#   echo "not running. starting"
    eval $(ssh-agent -s) > /dev/null
    rm -f $SSH_AUTH_SOCK_FILE
    echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" > $SSH_AUTH_SOCK_FILE
    ssh-add $HOME/.ssh/github.com_id_rsa 2>&1 > /dev/null
#else
#   echo "already running"
fi
source $SSH_AUTH_SOCK_FILE

VERGEET NIET de juiste sleutels toe te voegen in de opdracht “ssh-add”.


Antwoord 24

In Windows 10 werkt het volgende met de Opdrachtprompt-terminal voor mij:

ssh-agent cmd 
ssh-add

Hierna moet u om een ​​wachtwoordzin worden gevraagd:

Enter passphrase for /c/Users/username/.ssh/id_rsa:

Antwoord 25

Ik had dit probleem toen ik ssh-agent startte, terwijl het al actief was. Raakt in de war. Gebruik

. om te zien of dit het geval is

eval $(ssh-agent)

om te zien of dit hetzelfde is als wat je dacht dat het zou moeten zijn. In mijn geval was het anders dan degene die ik net begon.

Om verder te controleren of u meer dan één ssh-agent heeft, kunt u het volgende bekijken:

ps -ef | grep ssh

Antwoord 26

Ik had een soortgelijk probleem toen ik dit probeerde te laten werken op Windows om verbinding te maken met stash via ssh

Hier is de oplossing die voor mij werkte.

  1. Blijkbaar draaide ik Pageant ssh-agent op mijn Windows-box – ik zou controleren wat je draait. Ik vermoed dat het Pageant is omdat het standaard wordt geleverd met Putty en winScp

  2. De ssh-add werkt niet vanaf de opdrachtregel met dit type agent

  3. Je moet de privésleutel toevoegen via het gebruikersinterfacevenster van de optocht, dat je kunt krijgen door te dubbelklikken op het optochtpictogram in de taakbalk (als het eenmaal is gestart).

  4. Voordat u de sleutel aan Pageant toevoegt, moet u deze naar PPK-indeling converteren. Volledige instructies zijn hier beschikbaar Hoe om SSH-sleutel naar ppk-formaat te converteren

  5. Dat is het. Nadat ik mijn sleutel had geüpload om te bewaren, kon ik SourceTree gebruiken om een ​​lokale opslagplaats te maken en de afstandsbediening te klonen.

Hopelijk helpt dit…


Antwoord 27

Voor bash ingebouwd in Windows 10 heb ik dit toegevoegd aan .bash_profile:

if [ -z $SSH_AUTH_SOCK ]; then
    if [ -r ~/.ssh/env ]; then
            source ~/.ssh/env
            if [ `ps -p $SSH_AGENT_PID | wc -l` = 1 ]; then
                    rm ~/.ssh/env
                    unset SSH_AUTH_SOCK
            fi
    fi
fi
if [ -z $SSH_AUTH_SOCK ]; then
    ssh-agent -s | sed 's/^echo/#echo/'> ~/.ssh/env
    chmod 600 ~/.ssh/env
    source ~/.ssh/env > /dev/null 2>&1
fi

Antwoord 28

Ik heb de fout opgelost door geforceerd te stoppen (gedood) git-processen (ssh-agent), vervolgens Git te verwijderen en Git opnieuw te installeren.


Antwoord 29

Met Git Bash op Win8.1E was mijn resolutie als volgt:

eval $(ssh-agent) > /dev/null
ssh-add ~/.ssh/id_rsa

Antwoord 30

Als u Putty gebruikt, moet u misschien de optie “Verbinding/SSH/Auth/Allow agent forwarding” op “true” zetten.

voer hier de afbeeldingsbeschrijving in

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes