Nepavyko užmegzti ryšio su autentifikavimo agentu

Aš susiduriu su šia klaida:

$ 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.

Bandžiau pridėti raktus ir gavau šią klaidą:

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

MsysGit arba Cygwin

Jei naudojate Msysgit arba Cygwin, galite rasti gerą vadovą [SSH-Agent in msysgit and cygwin and bash][ant]:

  1. Į savo namų aplanką pridėkite failą .bashrc.

  2. Atidarykite failą ir įklijuokite:

     #!/bin/bash
     eval `ssh-agent -s`
     ssh-add
  3. Daroma prielaida, kad raktas yra įprastoje ~/.ssh/id_rsa vietoje. Jei taip nėra, po komandos ssh-add įrašykite visą kelią.

  4. Pridėkite arba sukurkite failą ~/.ssh/config, kurio turinys

     ForwardAgent yes

Originalioje instrukcijoje ForwardAgent parametras yra Yes, tačiau tai yra rašybos klaida. Naudokite visas mažąsias raides, kitaip gausite klaidų.

  1. Iš naujo paleiskite Msysgit. Jis paprašys vieną kartą įvesti slaptažodį, ir viskas (kol nenutrauksite seanso arba kol jūsų ssh agentas bus sunaikintas).

Mac/OS X

Jei nenorite kiekvieną kartą atidarydami terminalą paleisti naują ssh agentą, pasinaudokite Keychain. Aš dabar naudoju "Mac", todėl, norėdamas jį nustatyti, pasinaudojau vadovėliu ssh-agent with zsh & amp; keychain on Mac OS X, bet esu tikras, kad "Google" paieškoje rasite daug informacijos apie "Windows".

Atnaujinimas: Geresnis sprendimas "Mac" kompiuteryje - pridėti savo raktą prie "Mac OS" raktų maišelio:

ssh-add -K ~/.ssh/id_rsa

Tai labai paprasta.

Komentarai (10)

ssh-add ir ssh (darant prielaidą, kad naudojate openssh realizacijas) reikia aplinkos kintamojo, kad žinotumėte, kaip bendrauti su ssh agentu. Jei agentą paleidote kitame komandų eilutės lange, nei naudojate dabar, arba jei paleidote jį neteisingai, nei ssh-add, nei ssh nematys šio aplinkos kintamojo (nes aplinkos kintamasis nustatomas lokaliai komandų eilutėje, kurioje jis nustatytas).

Nenurodote, kokią ssh versiją naudojate, bet jei naudojate cygwin, galite pasinaudoti šiuo receptu iš [SSH Agent on Cygwin][blog]:

# 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

Tai automatiškai paleis agentą kiekvienam naujai atidarytam komandinės eilutės langui (tai nėra optimalu, jei vienos sesijos metu atidarote kelias komandines eilutes, bet bent jau turėtų veikti).

Komentarai (4)

Leiskite pasiūlyti kitą sprendimą. Jei ką tik įdiegėte "Git" 1.8.2.2 ar panašią versiją ir norite įjungti SSH, vadovaukitės gerai parašyta instrukcija.

Viskas iki 5.6 žingsnio, kuriame galite susidurti su nedideliu sunkumu. Jei SSH agentas jau yra paleistas, iš naujo paleidę bash galite gauti tokį klaidos pranešimą

Could not open a connection to your authentication agent

Jei taip atsitiks, naudokite šią komandą, kad sužinotumėte, ar veikia daugiau nei vienas ssh agento procesas

ps aux | grep ssh

Jei matote daugiau nei vieną "ssh-agent" paslaugą, turėsite išjungti visus šiuos procesus. Naudokite tokią komandą kill (PID bus unikalus jūsų kompiuteryje)

kill 

Pavyzdys:

kill 1074

Pašalinę visus "ssh-agent" procesus, dar kartą paleiskite komandą px aux | grep ssh, kad įsitikintumėte, jog jų nebėra, tada iš naujo paleiskite "Bash".

Voila, dabar turėtumėte gauti kažką panašaus į tai:

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

Dabar galite tęsti 5.7 žingsnį ir toliau.

Komentarai (4)