J'essaie de transférer les modifications de mon dépôt local vers un dépôt distant. Quand 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 resoudre ceci? J'utilise git à partir de la ligne de commande dans Windows 7.
Éditer
Quand j'essaye 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
D'une manière ou d'une autre, il ne créera pas le répertoire, car le chemin n'est pas valide. Comment régler ceci?
@eckes: Edit2
Ma maison est définie sur %HOMEDRIVE%%HOMEPATH%
Est-ce correct?
$HOME
n'est pas configuré correctement. Essayez de définir laHOME
variable d'environnement sur Windows en utilisantMy Computer
-> clic droit ->Properties
-> TabAdvanced
-> ButtonEnvironment Variables
/c//
(probablement une lettre de lecteur) vous ayez encore%HOMEDRIVE%
... Vous pourriez peut-être vous faire gagner du temps en jouant vous-même avec la valeur et en la faisant écho?HOMEDRIVE
etHOMEPATH
définirHOME
la valeur résultante ...Réponses:
Le message signifie que la clé d'hôte de
origin
n'est pas présente dans votre fichier d'hôtes approuvés.Pour contourner cela, ouvrez une connexion SSH simple à
origin
et SSH vous demandera si vous souhaitez faire confiance à l'hôte distant (à partir de la console Git):Si vous faites confiance à l'hôte distant (c'est-à-dire le type
yes
), SSH ajoutera sa clé à la liste des hôtes connus.Après cela, vous devriez pouvoir faire votre
git push origin
.Comme alternative, vous pouvez également ajouter manuellement la clé de
origin
à.ssh/known_hosts
mais cela nécessite que vous respectiez le format duknown_hosts
fichier comme décrit dans la page de manuel desshd
(Section AUTHORIZED_KEYS FILE FORMAT ).la source
known_hosts
fichier.Pour ceux d'entre vous qui configurent MSYS Git sur Windows à l'aide de PuTTY via l'invite de commande standard, la façon d'ajouter un hôte au cache de PuTTY consiste à exécuter
Par exemple:
Répondez simplement
y
, puis Ctrl + C pour le reste.Vérifiez cependant l'empreinte digitale. Cet avertissement est là pour une bonne raison. Empreintes digitales pour certains services git (veuillez modifier pour en ajouter plus):
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
7e:af:8d:ec:f0:39:5e:ba:52:16:ce:19:fa:d4:b8:7d
la source
plink
en exécutant$ set | grep GIT_SSH
et en vérifiantGIT_SSH='C:\Program Files (x86)\PuTTY\plink.exe'
-P
pour sélectionner le port, tels que:plink.exe example.com -P 2222
. J'ai pu cloner à partir de github mais pas à partir de mon serveur personnel, et cela m'a confus sans fin.Essayez de faire un "set | grep -i ssh" à partir de l'invite Git Bash
Si votre configuration est comme la mienne, vous avez probablement ces ensembles:
j'ai fait un
et cela a fonctionné après ça, .. Je suppose que putty enregistre ses clés ailleurs sous $ HOME / .ssh ou quelque chose comme ça ... (J'ai aussi eu un problème avec une boîte où $ HOME était réglé sur "C: \ Users \ usrnam "au lieu de" / C / Users / usrnam / "
de toute façon, votre kilométrage peut varier, mais cela a résolu le problème pour moi. :-)
(probablement juste faire le GIT_SSH unset est suffisant, mais j'étais sur une lancée)
Remarque: si unset ne fonctionne pas pour vous, essayez ceci:
la source
unset GIT_SSH
a fonctionné pour moi aussi, même si je dois le faire à chaque fois que je lance git bash, ce qui est assez ennuyeux. Une idée sur la façon d'automatiser cela?Je soupçonne que votre
GIT_SSH
variable d'environnement est définie sur%ProgramFiles(x86)%\putty\plink.exe
. Pour une raison quelconque, PLink n'utilise pas le.ssh/known_hosts
fichier de votre répertoire utilisateur pour stocker les clés des hôtes distants.Si c'est réellement votre cas, et cela peut être exprès si vous voulez utiliser pageant, vous devez d'abord utiliser PLink pour vous connecter à l'hôte.
Vous devriez recevoir un message similaire
Une fois que vous avez répondu
y
à la question et que vous vous êtes connecté avec succès à l'hôte distant, vous devriez être prêt. Allez-y et essayez à nouveau.la source
"$GIT_SSH" -P 7999 [email protected]
Se contenter de ssh'ing à l'hôte ne suffit pas, du moins sous Windows. Cela ajoute la clé d'hôte à
ssh/known_hosts
mais l'erreur persiste.Vous devez fermer la fenêtre git bash et en ouvrir une nouvelle. Ensuite, le cache du registre est effacé et le push / pull fonctionne alors.
la source
ssh/known_hosts
est relatif à quoi ?,% USERPROFILE% J'ai ce problème sur Win 7, et aucune solution ...René, votre
HOME
variable n'est pas définie correctement. Changez-le enc:\Users\(your-username)
ou simplement en%USERNAME%
.la source
Solution avec Plink
Enregistrez ce script python dans
known_hosts.py
:Testé sur Win7x64 et Python 2.7 .
Puis exécutez:
Et choisissez d'importer dans le registre. Le keyscan récupérera la clé publique du domaine (j'ai eu mes problèmes avec bitbucket), puis le script python la convertira au format Plink.
la source
J'ai eu le même problème, et j'ai oublié de se connecter à SSH sur le port où se trouve le référentiel actuall , pas seulement le port SSH général, alors la clé d'hôte est différente!
la source
Ouvrez simplement Putty et essayez d'établir une connexion avec le serveur distant sur lequel vous souhaitez envoyer votre code. lorsque la boîte de dialogue apparaît, appuyez sur Oui (vous faites confiance à la télécommande), tout irait bien.
la source
Environnement de travail:
Premièrement: Supprimez putty known_hosts dans le registre selon le Regedit.
Ensuite: L' exécution de la commande
%GIT_SSH% user@hostname
dans la cmd de Windows résout le problème.J'espère que cela vous aidera tous.
la source
J'ai également eu le même problème lorsque j'essayais de cloner un référentiel sur ma machine Windows 7. J'ai essayé la plupart des réponses mentionnées ici. Aucun d'eux n'a fonctionné pour moi.
Ce qui a fonctionné pour moi, c'est d'exécuter le programme Pageant (Putty authentication agent). Une fois que le Pageant fonctionnait en arrière-plan, j'ai pu cloner, pousser et tirer depuis / vers le référentiel. Cela a fonctionné pour moi, peut-être parce que j'ai configuré ma clé publique de telle sorte que chaque fois qu'elle est utilisée pour la première fois, un mot de passe est requis et le Pageant démarre.
la source
Connection abandoned
, mais quelque chose commeAccess denied (private key)
Le passage de PuTTY à OpenSSH a résolu ce problème pour moi, sans avoir besoin de désactiver GIT_SSH, etc.
la source
J'ai résolu un problème similaire en utilisant cette solution de contournement .
Il vous suffit de passer à Embedded Git, d'appuyer sur, d'appuyer sur le bouton Oui, puis de revenir à System Git.
Vous pouvez trouver cette option dans
la source
C:\Users\{UserName}\AppData\Local\SourceTree\app-2.5.5\tools\putty> .\plink.exe {YourNewHost}
Comme l'a répondu Roman Starkov ,
plink
faut ajouter l'hôte à son cache.Pour les personnes utilisant les extensions Git :
(remplacer par les chemins réels)
par exemple
Remarque : assurez-vous d'utiliser le même plink / klink que Git Extensions utilise!
la source
L'ajout de l'hôte directement avec Bash n'a pas résolu le problème, l'erreur se produisait toujours lors de l'utilisation de 'Extraire tout' dans les extensions Git. En utilisant 'Pull' sur une branche, l'hôte requis a été ajouté automatiquement par Git Extensions avec un écran contextuel Bash. Après avoir fait cela, j'ai pu utiliser à nouveau «Fetch All». Je ne sais pas ce qui est fait différemment par les extensions Git.
la source
J'ai essayé toutes les méthodes ci-dessus, mais aucune d'entre elles n'a pu résoudre le même problème sur mon ordinateur portable. Enfin, au lieu de pousser la branche à l'origine dans git bash, je trun pour utiliser l'option push de TortoiseGit pour faire le push, puis une fenêtre apparaît pour me demander d'ajouter la nouvelle clé d'hôte au cache, après avoir cliqué sur le bouton oui, tout se passe bien maintenant.
J'espère que cela vous aidera tous.
la source
J'ai changé un disque dur, installé Windows. Lorsque essayé de télécharger des fichiers a reçu cette fenêtre de commande.
J'ai appuyé sur "y", puis sur Ctrl + C. Ouvert
putty.exe
, ajouté une ancienne clé, retourné à git et poussé les fichiers.la source
Désinstallez simplement les extensions Git et réinstallez-les en choisissant OpenSSH au lieu de
la source
Dans Windows 7 ou 10, l'astuce qui a fonctionné pour moi est de supprimer la variable système GIT_SSH. Il était auparavant configuré pour utiliser Plink, et a maintenant été remplacé par Putty. Cela provoquait une erreur Plink.exe
Il y avait aussi une ancienne installation de Git (version 32 bits) et une mise à jour vers Git (par exemple Git-2.20.1-64-bit.exe) car le PC était un OS 64 bits.
Quoi qu'il en soit, Putty / Plink n'était même pas utilisé par Git puisque dans l'installation de Git, il était par défaut d'utiliser Open SSH.
la source
Si vous recevez le message concernant la clé d'hôte non reconnue pendant que vous effectuez des opérations push / pull git à l'aide de ATLASSIAN SOURCETREE, vous ne pouvez pas répondre y / n et l'opération push / pull sera abandonnée sans mettre la clé en cache. Cependant, aller à SourceTree Tools-> Options (onglet Général) et changer le client SSH sous (sous Configuration du client SSH) de PuTTY à OpenSSH permettra à la clé d'être mise en cache sans rien changer d'autre.
la source