Cette erreur peut se produire lorsqu'il y a un problème d'authentification SSH sous-jacent, comme le fait d'avoir une mauvaise clé publique sur le serveur distant git ou si le serveur distant git a changé sa clé d'hôte SSH.
Eclipse utilisera le répertoire .ssh que vous spécifiez dans Préférences -> Général -> Connexions réseau -> SSH2 pour sa configuration ssh. Définissez-le comme "{votre répertoire utilisateur par défaut}.ssh\" .
Pour corriger la situation, vous devez d'abord déterminer quel client ssh vous utilisez pour Git. Cette information est stockée dans la variable d'environnement GIT_SSH. Cliquez avec le bouton droit de la souris sur "Ordinateur" (Windows 7), puis choisissez Propriétés -> Paramètres système avancés -> Variables d'environnement.
Si GIT_SSH contient un chemin vers plink.exe, vous utilisez la pile PuTTY.
- Pour obtenir votre clé publique, ouvrez PuTTYgen.exe, puis chargez votre fichier de clé privée (*.ppk). La clé publique listée doit correspondre à la clé publique du serveur distant git.
- Pour obtenir la nouvelle clé hôte, ouvrez une nouvelle session PuTTY.exe, puis connectez-vous à git@{git repo host}.
- Cliquez sur OK et dites oui pour enregistrer la nouvelle clé.
- Une fois que vous obtenez une invite de connexion, vous pouvez fermer la fenêtre PuTTY. La nouvelle clé a été enregistrée.
- Redémarrez Eclipse.
Si GIT_SSH contient un chemin vers "ssh.exe" dans votre arbre "Git for Windows", vous utilisez OpenSSH de Git for Windows.
- Définissez %HOME% à votre répertoire utilisateur par défaut (tel que listé dans Eclipse ; voir ci-dessus).
- Définissez %HOMEDRIVE% comme la lettre de lecteur de votre répertoire utilisateur par défaut.
- Définissez %HOMEPATH% comme le chemin d'accès à votre répertoire utilisateur par défaut sur %HOMEDRIVE%.
- Pour obtenir votre clé publique, ouvrez le fichier %HOMEDRIVE%%HOMEPATH%/.ssh/id_rsa.pub (ou id_dsa.pub) dans un éditeur de texte. La clé publique listée doit correspondre à la clé publique du serveur distant git.
- Pour obtenir la nouvelle clé hôte, exécutez : cmd.exe
- Exécuter Git Bash
- Ctrl-C
- À l'invite bash, exécutez /c/path/to/git/for/Windows/bin/ssh.exe git@{git remote host}.
- Tapez oui pour accepter la nouvelle clé.
- Une fois que vous avez une invite de connexion, tapez : ctrl-c
- Fermez la fenêtre cmd.exe
- Redémarrez Eclipse.
Enfin, si vous avez toujours des problèmes avec votre client ssh externe, supprimez la variable d'environnement GIT_SSH et définissez la variable d'environnement HOME sur votre répertoire utilisateur par défaut sous Windows. Sans la variable GIT_SSH, EGit utilisera son client ssh interne (java). Il utilisera le répertoire .ssh que vous avez spécifié ci-dessus comme répertoire de configuration SSH.
Remarque : si vous avez Git pour Windows, vous pouvez utiliser ses outils pour créer une paire de clés SSH dans votre répertoire .ssh :
- Définissez %HOME% comme votre répertoire utilisateur par défaut (tel que listé dans Eclipse).
- Définissez %HOMEDRIVE% comme la lettre de lecteur de votre répertoire utilisateur par défaut.
- Définissez %HOMEPATH% comme le chemin d'accès à votre répertoire utilisateur par défaut sur %HOMEDRIVE%.
- Exécuter Git Bash
- Ctrl -C
- Exécuter : ssh-keygen.exe -t rsa -b 2048
- Enregistrer dans les noms de fichiers par défaut
- Choisissez une phrase de passe ou enregistrez sans. Si vous enregistrez avec une phrase de passe, Eclipse vous la demandera chaque fois que vous pousserez ou tirerez à partir de votre serveur git distant.
- Fermer Git Bash
Vous pouvez également utiliser l'interface graphique dans le volet des préférences SSH2 dans Eclipse pour gérer les hôtes et les clés.