web-dev-qa-db-fra.com

git ne trouve pas le bon SSH

Quand j'essaie de me connecter avec git, je vois cette erreur 

$ git clone [email protected]:MyCompany/eagle.git --verbose                                         
Cloning into 'eagle'...                                                                        
FATAL ERROR: Couldn't agree a key exchange algorithm (available: [email protected],ecdh-sh
a2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521)                                                   
fatal: Could not read from remote repository.                                                        

Please make sure you have the correct access rights                                                  
and the repository exists.

J'ai configuré toutes les clés, etc., et la connexion fonctionne correctement, car lorsque je le fais ssh -v [email protected] la connexion a réussi.

Que pouvais-je faire pour comprendre ce qui n'allait pas et ce qui devrait être corrigé?

Merci,

9
Bill Lumbert

Si ssh -T [email protected] vous donne le:

Hi <name>! You've successfully authenticated, but GitHub
does not provide Shell access.

message, cela signifie que votre configuration ssh fonctionne. Si vous obtenez un:

FATAL ERROR: Couldn't agree a key exchange algorithm ...

cela signifie que votre configuration ssh ne fonctionne pas. Clairement, il y a une contradiction ici, et le coupable le plus probable est que vous avez installé deux commandes ssh différentes: une que vous utilisez, qui fonctionne et une autre que Git utilise, qui ne fonctionne pas.

Cette réponse à Git avec SSH sous Windows a beaucoup de votes positifs. J'évite Windows, donc je ne sais pas si cela aidera. (Je ne sais même pas si vous êtes sous Windows puisque vous ne l'avez pas mentionné.)

Notez que Git version 2.3.0 a ajouté GIT_SSH_COMMAND , et Git version 2.10.0 a ajouté core.sshCommand pour définir une valeur pour GIT_SSH_COMMAND . Depuis lors, Git version 2.13.0 a appris de nouvelles astuces pour résoudre les problèmes liés aux variations de ssh qui exigent différentes lettres d’option. Dans tous les cas, il est important de savoir quel ssh Git est en cours d'exécution et de s'assurer qu'il en exécute un qui fonctionne réellement. Voir la documentation Git de niveau supérieur pour une description de toutes les variables d’option et de ce qu’elles font. Le lien ici renvoie à une page Web qui peut ne pas correspondre à votre propre version de Git. Par conséquent, envisagez de lancer git --help git pour lire cette version, si votre Git est très ancien.

5
torek

Pour moi, cela se passait parce que:

  1. J'avais configuré Git pour utiliser PuTTY (i.e. GIT_SSH=C:\Program Files\PuTTY\plink.exe)
  2. J'utilisais une ancienne version de PuTTY (par exemple, 0.63)
  3. GitHub a récemment supprimé les normes de cryptographie faibles .

J'ai désinstallé PuTTY 0.63 et téléchargé et installé la dernière version de PuTTY (actuellement, 0,70), ce qui a résolu le problème pour moi.

9
Fishizzle

le problème était dans GIT_SSH. cette variable a été définie par PuTTY avant la date de sortie .

4
Bill Lumbert

Cela peut avoir à voir avec GitHub éliminer les crypto faibles . Ceci est arrivé vers le 22 février 2018.

1

J'utilise SourceTree, puis PuTTY, puis open-ssh. En fait, il a utilisé le PuTTY installé avec SourceTree pour vérifier la valeur de la variable GIT_SSH env. La suppression de cette variable env était nécessaire pour utiliser open-ssh. (ne pas utiliser mastic donc)

Pour les néophytes, j'utilise cet extrait pour me "connecter" à github avec open-ssh: eval $(ssh-agent -s) && ssh-add ~/.ssh/mySHHKey

EDIT: peu importe, je me suis connecté avec succès hier, mais maintenant, il a cessé de fonctionner ... Utilisation de pageant avec PuTTY en attendant.

0
Ambroise Rabier