2013-03-05 8 views
27

ich SSH bin mit einem git Repo auf meiner Web-Server zu klonen, aber jedes Mal, wenn ich diesen FehlerClonen git Repo verursacht einen Fehler - Überprüfung des Hostschlüssels fehlgeschlagen. fatal: Das entfernte Ende hing unerwartet

$git clone [email protected]:aleccunningham/marjoram.git 
Cloning into marjoram... 
Host key verification failed. 

ich fast alles versucht haben, die in Google-Suchanfragen angezeigt hat und ich bin verblüfft darüber, warum das nicht funktionieren wird. Irgendwelche Ideen?

Auch verwende ich nichts wie Jenkins.

+0

Mögliche Duplikate: [Git-Fehler: "Host Key Verification Failed" beim Herstellen einer Verbindung zum Remote-Repository] (http://StackOverflow.com/questions/13363553/Git-error-host-key-verification-failed-when-connecting -to-remote-repository) und [Jenkins scheitert mit github "git clone"] (http://stackoverflow.com/questions/6103684/jenkin-fails-with-github-git-clone) –

+1

Also was genau hast du probiert ? Was passiert, wenn Sie 'ssh -T git @ github.com' ausführen? – Sebastian

+0

Angenommen, Ihre [ssh keys] (https://help.github.com/articles/generating-ssh-keys) sind ordnungsgemäß eingerichtet, versuchen Sie, den Befehl erneut auszuführen, nachdem Sie die 'known_hosts' in' $ HOME/.ssh/known_hosts entfernt haben '. Erstellen Sie vor dem Löschen der Datei eine Sicherungskopie der Datei. –

Antwort

8

Behebung des Problems ... Sie müssen den öffentlichen ssh-Schlüssel zu Ihrem github-Konto hinzufügen.

  1. Überprüfen Sie, ob die SSH-Schlüssel richtig eingerichtet wurden.
    1. Run ssh-keygen
    2. Geben Sie das Kennwort (den Standardpfad halten - ~/.ssh/id_rsa)
  2. Add der öffentliche Schlüssel (~/.ssh/id_rsa.pub) auf GitHub Konto
  3. git clone Versuchen. Es klappt!


Ausgangszustand (öffentlicher Schlüssel nicht zu Git Hub hinzugefügt Konto)

[email protected]:~$ rm -rf test 
[email protected]:~$ ls 
[email protected]:~$ git clone [email protected]:devendra-d-chavan/test.git 
Cloning into 'test'... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 
[email protected]:~$ 


Nun fügen Sie den öffentlichen Schlüssel ~/.ssh/id_rsa.pub auf die GitHub Konto (I verwendet cat ~/.ssh/id_rsa.pub)

[email protected]:~$ ssh-keygen 
Generating public/private rsa key pair. 
Enter file in which to save the key (/home/foo/.ssh/id_rsa): 
Created directory '/home/foo/.ssh'. 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/foo/.ssh/id_rsa. 
Your public key has been saved in /home/foo/.ssh/id_rsa.pub. 
The key fingerprint is: 
xxxxx 
The key's randomart image is: 
+--[ RSA 2048]----+ 
xxxxx 
+-----------------+ 
[email protected]:~$ cat ./.ssh/id_rsa.pub 
xxxxx 
[email protected]:~$ git clone [email protected]:devendra-d-chavan/test.git 
Cloning into 'test'... 
The authenticity of host 'github.com (207.97.227.239)' can't be established. 
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48. 
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'github.com,207.97.227.239' (RSA) to the list of known hosts. 
Enter passphrase for key '/home/foo/.ssh/id_rsa': 
warning: You appear to have cloned an empty repository. 
[email protected]:~$ ls 
test 
[email protected]:~/test$ git status 
# On branch master 
# 
# Initial commit 
# 
nothing to commit (create/copy files and use "git add" to track) 
+3

Es stellte sich heraus, dass ich ein viel einfacheres Problem hatte. Zum einen habe ich den HTTPS-Link aus dem Repo genutzt und ich habe auch versucht, ihn nach/home/private zu klonen, wenn ich ihn nicht nach/home/public lenken sollte. So eine Erleichterung, als es endlich geklappt hat! –

+2

Schlüssel auf dem Client (ssh-keygen, etc.) sind nicht die Ursache für "Überprüfung des Hostschlüssels fehlgeschlagen.". Für jeden, der das in Zukunft liest, ist dies die Antwort auf @ mooshes weitere Fragen in den Kommentaren. Tupys Antwort ist technisch die richtige Antwort auf die gestellte Frage. –

93

Das Problem könnte sein, dass Github nicht in Ihrer ~/.ssh/known_hosts Datei vorhanden ist.

Anfügen GitHub zur Liste der autorisierten Hosts:

ssh-keyscan -H github.com >> ~/.ssh/known_hosts

+1

Dies ist nützlich, wenn das System-Setup automatisiert wird, da Sie damit die TOFU-Einrichtung (Trust for first use) erzwingen können (die normalerweise interaktiv ist). Das Korrigieren clientseitiger öffentlicher Schlüssel tut in diesem Fall nichts, weil es nicht das Problem ist. –

+0

danke viel mann. Das hat mich gerettet !! 'arbeitet in 2016' – breezy

+0

funktioniert auch 2017! Vielen Dank! – ArchNoob

-1

hatte ich das gleiche Problem und die Lösung ist sehr einfach, nur von cmd oder anderen Windows-Kommandozeilen-Tool zu git bash ändern. Windows funktioniert manchmal nicht gut mit git npm Abhängigkeiten.

Verwandte Themen