116 votes

git - clé de l’hôte serveur non mis en cache

J'essaie de faire des changements à partir de mon local de pensions de titres à une distance de repo. Lorsque je tape:

git push origin

J'obtiens l'erreur suivante:

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Connection abandoned.
fatal: The remote end hung up unexpectedly

Comment puis-je résoudre ce problème? Je suis à l'aide de git en ligne de commande dans Windows 7.

Modifier

Lorsque j'essaie de faire un simple ssh

ssh user@hostname

J'obtiens l'erreur suivante:

Could not create directory '/c//%HOMEDRIVE%%HOMEPATH%/.ssh'.
percent_expand: unknown key %H

En quelque sorte il ne va pas créer le répertoire, parce que le chemin n'est pas valide. Comment résoudre ce problème?

@eckes: Edit2

Ma Maison est à l' %HOMEDRIVE%%HOMEPATH% est-ce correct?

180voto

romkyns Points 17295

Pour ceux d'entre vous qui sont la mise en place de MSYS Git sur Windows à l'aide de Mastic via le standard invite de commande, de la façon d'ajouter un hôte à Mastic cache est pour l'exécuter

> plink.exe <host>

Par exemple:

> plink.exe codebasehq.com

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 2e:db:b6:22:f7:bd:48:f6:da:72:bf:59:d7:75:d7:4e
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

Il suffit de répondre y, puis appuyer sur Ctrl+C sur le reste.

Faire vérifier l'empreinte digitale. Cet avertissement est là pour une bonne raison. Les empreintes digitales de certains git services (veuillez modifier pour ajouter plus):

81voto

Thijs Points 429

Essayez de faire un "set | grep-i ssh" de Git Bash invite

Si votre installation est comme le mien, vous avez probablement ces ensemble:

GIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
PLINK_PROTOCOL=ssh
SVN_SSH='"C:\\Program Files (x86)\\PuTTY\\plink.exe"'

J'ai fait un

unset GIT_SSH
unset PLINK_PROTOCOL
unset GIT_SVN

et il a travaillé, après que.. je suppose que le mastic enregistre ses touches de quelque part d'autre que $HOME/.ssh ou quelque chose... (j'ai aussi eu un problème sur une boîte où $HOME a été fixé à "C:\Users\usrnam" au lieu de "/C/Utilisateurs/usrnam/"

de toute façon, votre kilométrage peut varier, mais qu'il fixe pour moi. :-)

(probablement juste de faire le unset GIT_SSH est assez, mais j'ai été sur un rouleau)

55voto

eckes Points 17277

Le message signifie que la clé de l'hôte de l' origin n'est pas présent dans votre confiance fichier hosts.

Pour contourner ce problème, ouvrez une simple connexion SSH à l' origin et SSH va vous demander si vous souhaitez faire confiance à l'hôte distant (à partir de la console Git):

$ ssh 127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
RSA key fingerprint is <FINGERPRINT>.
Are you sure you want to continue connecting (yes/no)?

Si vous faites confiance à l'hôte distant (c'est à dire de type yes), SSH va entrer en il est la clé de la liste des hôtes connus.

Après cela, vous devriez être en mesure de faire votre git push origin.

Comme alternative, vous pouvez également ajouter manuellement la clé de l' origin de .ssh/known_hosts , mais cela nécessite que vous respecter le format de l' known_hosts le fichier comme décrit dans la page de man de sshd (Section FORMAT de FICHIER AUTHORIZED_KEYS).

20voto

Gunee Points 101

Je soupçonne que votre GIT_SSH variable d'environnement est définie à l' %ProgramFiles(x86)%\putty\plink.exe. Pour une raison quelconque, PLink ne pas utiliser l' .ssh/known_hosts le fichier dans votre répertoire utilisateur pour stocker les hôtes distants clés.

Si c'est votre cas, et il peut se faire sur le but si vous voulez utiliser des concours, vous devez utiliser PLink pour se connecter à l'hôte en premier.

"$GIT_SSH" user@hostname

Vous devriez obtenir un message similaire

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 86:7b:1b:12:85:35:8a:b7:98:b6:d2:97:5e:96:58:1d
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)

Une fois que vous avez répondu y à la question et correctement connecté à l'ordinateur distant, vous devriez être tous ensemble. Aller de l'avant et essayer de votre commande à nouveau.

4voto

andynormancx Points 6026

Ssh'ing juste à l’hôte n’est pas assez, sur Windows, au moins. Qui ajoute la touche de l’hôte à `` mais l’erreur persiste.

Vous devez fermer la fenêtre de bash de git et ouvrir un nouveau. Puis le cache du registre est effacé et le pousser/tirer puis marche.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X