2013-03-05 8 views
27

Sto usando SSH per clonare un repo git al mio server web, ma ogni volta che ottengo questo erroreLa clonazione del repository git causa un errore - La verifica della chiave host non è riuscita. fatale: la fine remota riattaccato inaspettatamente

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

Ho provato quasi tutto ciò che ha dimostrato in ricerche di Google e sono sbalordito dal motivo per cui questo non funzionerà. Qualche idea?

Inoltre, non sto usando nulla come Jenkins.

+0

Possibili duplicati: [Errore Git: "Verifica chiave host non riuscita" durante la connessione al repository remoto] (http://stackoverflow.com/questions/13363553/git-error-host-key-verification-failed-when-connecting -to-remote-repository) e [Jenkins fallisce con github "git clone"] (http://stackoverflow.com/questions/6103684/jenkins-fails-with-github-git-clone) –

+1

Quindi, esattamente cosa hai provato ? Cosa succede quando si esegue 'ssh -T git @ github.com'? – Sebastian

+0

Supponendo che le [chiavi ssh] (https://help.github.com/articles/generating-ssh-keys) siano impostate correttamente, provare a eseguire nuovamente il comando dopo aver rimosso 'known_hosts' a' $ HOME/.ssh/known_hosts '. Eseguire un backup del file prima di eliminare il file. –

risposta

8

Risolto il problema ... è necessario aggiungere la chiave pubblica ssh al proprio account github.

  1. Verificare che le chiavi ssh siano state installate correttamente.
    1. Run ssh-keygen
    2. inserire la password (mantenere il percorso predefinito - ~/.ssh/id_rsa)
  2. Add la chiave pubblica (~/.ssh/id_rsa.pub) per conto github
  3. Prova git clone. Funziona!


stato iniziale (chiave pubblica non aggiunto al mozzo git conto)

[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]:~$ 


Ora, aggiungere la chiave pubblica ~/.ssh/id_rsa.pub sul conto github (io ho usato 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

Risulta che ho avuto un problema molto più facile. Per esempio, utilizzando il link HTTPS dal repository funzionava, e stavo anche cercando di clonarlo su/home/private quando non dovevo indirizzarlo a/home/public. Un tale sollievo quando finalmente ha funzionato! –

+2

Le chiavi sul client (ssh-keygen, ecc.) Non sono la causa della "verifica della chiave dell'host non riuscita". Per chiunque altro leggendo questo in futuro, questa è in realtà la risposta alle domande di follow-up di @ mooshe nei commenti. La risposta di Tupy di seguito è tecnicamente la risposta corretta alla domanda posta. –

93

Il problema potrebbe essere che Github non è presente nel tuo file ~/.ssh/known_hosts.

Append GitHub alla lista di host autorizzati:

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

+1

Ciò è utile quando si automatizza l'installazione del sistema poiché consente di forzare l'impostazione TOFU (affidabile al primo utilizzo) (che è normalmente interattiva). La correzione delle chiavi pubbliche lato client non fa nulla in questo caso perché non è il problema. –

+0

grazie mille amico. questo mi ha salvato !! 'funziona nel 2016' – breezy

+0

funziona anche nel 2017! Grazie! – ArchNoob

-1

Ho avuto lo stesso problema, e la soluzione è molto semplice, basta passare a git bash da cmd o altre finestre strumenti a linea di comando. Windows a volte non funziona bene con le dipendenze di git npm.

Problemi correlati