web-dev-qa-db-fra.com

TortoiseGit utilisant une clé SSH incorrecte

J'ai un problème étrange avec le tortue git en ce moment, que je ne peux pas comprendre. Lorsque j'essaie de valider mon référentiel sur github, j'obtiens l'erreur

ERREUR: Autorisation pour martindevans/Hermes.git refusée pour key2

Key2 est une clé que j'utilise pour accéder à un autre dépôt github, mais l'URL distante n'est pas définie pour utiliser key2, comme vous pouvez le voir ici, elle est définie pour utiliser private.ppk

enter image description here

Suis-je en train de faire quelque chose de mal, ou est-ce que la tortue est cassée?

Nb. En réponse aux commentaires. L'utilisation de git normal entraîne:

C:\Users\Martin\Documents\Visual Studio 2010\Projects\Hermes>git Push
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
21
Martin

Il existe différents formats de clé privée. Ma paire de clés a été générée avec puttygen, mais ma tortue a été configurée pour utiliser ssh.exe (formulaire msysgit) en tant que client ssh. Je l'ai donc changé en plink (de Tortoise) et cela a fonctionné.

  • ssh-key.exe => ssh.exe (C:\msysgit\msysgit\bin)
  • puttygen.exe => TortoisePlink.exe (C:\Program Files\TortoiseGit\bin)

Remarque supplémentaire: utilisez l'URL correcte! Github vous propose trois URL https, git et ssh.


Éditer:

J'ai adapté les paramètres ici:

Settings - TortoiseGit >> Network >> SSH-Client
C:\Program Files\TortoiseGit\bin\TortoisePLink.exe

J'ai généré paire de clés avec:

 C:\Program Files\TortoiseGit\bin\puttygen.exe
32
Doomjunky

Hah! ProcMon à la rescousse. Il s'agit d'un bug dans tortoisegit/tortoiseplink. Il doit donner la préférence au jeu de clés pour cette télécommande via pageant, mais à la place, il donne la préférence à la clé stockée dans le registre par PuTTY pour ce serveur spécifique. Deux correctifs.

2 correctifs possibles ici

Votre tortoiseplink est intégré à PuTTY, et il lit la clé privée que vous avez enregistrée dans la "Session" PuTTY associée à ce serveur. C'est du moins ce que c'était pour moi. Je ne suis pas sur github cependant, donc je ne connais pas la viabilité de cette solution pour tout le monde.

Je recommande de supprimer manuellement le jeu de clés dans la configuration de la session PuTTY et d'utiliser pagaent pour vos sessions PuTTY, car c'est ce que fait tortoise git. Cela oblige également tortoisegit à utiliser le jeu de clés pour la télécommande.

  1. Ainsi, vous pouvez ouvrir PuTTY, charger la session que vous avez associée au serveur, aller dans Connexion/SSH/Auth et modifier/supprimer la valeur "Fichier de clé privée pour l'authentification". MOdification peut corriger ce dépôt, mais visser un autre dépôt si vous utilisez des clés différentes pour le même serveur.

  2. Vous pouvez modifier/supprimer l'entrée de registre vous-même. c'est HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\$SERVERNAME$\PublicKeyFile

12
scaryman

créez la clé dans git bash:

ssh-keygen -t rsa

Laissez tout vide et ne définissez pas de mot de passe. Prenez le contenu du ~/.ssh/id_rsa.pub et collez-le dans l'espace de clé publique fourni par github.

Testez maintenant cela en vous connectant à github via ssh. Si cela fonctionne, vous pourrez utiliser git.

j'espère que cela t'aides.

1
Adam Dymitruk

J'ai eu le même problème lors de la configuration de mon TortoiseGit pour accéder à Bitbucket (Win10). Pour le résoudre, j'ai dû supprimer les anciennes clés d'hôte enregistrées dans le registre à HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys (pas la touche (par défaut), mais).

1
we_do_not_exist