web-dev-qa-db-fra.com

Git avec SSH sous Windows

J'ai lu le excellent guide fourni par Tim Davis qui concerne la configuration de Git pour fonctionner avec SSH sous Windows afin de produire un serveur Git afin de disposer d'une place principale pour mon DVCS. 

Je suis en train de créer un clone pour mon projet. J’ai parcouru toutes les étapes jusqu’à maintenant, mais TortuleGit me dit:

git.exe clone -v “ssh://[email protected]:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: [email protected]: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

et rien n'est cloné.

BTW: La TortoisePLink apparaît juste avant que ce message n'apparaisse et me demande: «login as:» (je pensais que cette information était donnée dans la commande, à savoir: Administrator@blahblah.

Ma variable home est définie au bon endroit: À partir d'un shell Git Bash:

echo $HOME
/c/SSH/home/Administrator

J’ai également essayé d’utiliser la syntaxe de PuTTY au lieu de TortoisePLink (dans l’installation de Git et de TortoiseGit). Cette fois, l'erreur a été réduite à:

git.exe clone -v “ssh://[email protected]:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
36
pankar

Je me suis battu avec ce problème pendant quelques heures avant de trébucher sur la réponse évidente. Le problème que j'ai eu était que j'utilisais différentes implémentations SSH entre le moment où j'ai généré mes clés et le moment où j'ai utilisé git.

J'ai utilisé ssh-keygen à partir de la commande Invite pour générer mes clés, mais lorsque j'ai essayé "git clone ssh: // ...", j'ai obtenu les mêmes résultats que vous, une invite pour le mot de passe et le message "fatal: The remote fin a raccroché inopinément ".

Déterminez quelle fenêtre ssh utilise en exécutant la commande Windows "où".

C:\where ssh
C:\Program Files (x86)\Git\bin\ssh.exe

La deuxième ligne vous indique quel programme exact sera exécuté.

Ensuite, vous devez déterminer quel ssh est utilisé par git. Trouvez ceci par:

C:\set GIT_SSH
GIT_SSH=C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe

Et maintenant vous voyez le problème.

Pour corriger cela, exécutez simplement:

C:\set GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

Pour vérifier si les modifications sont appliquées:

C:\set GIT_SSH
GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

Maintenant, git pourra utiliser les clés que vous avez générées précédemment.

Ce correctif ne concerne pour l'instant que la fenêtre en cours. Pour résoudre ce problème complètement, vous devez modifier votre variable d’environnement.

  1. Ouvrir l'explorateur Windows
  2. Cliquez avec le bouton droit sur Ordinateur et sélectionnez Propriétés.
  3. Cliquez sur le lien Paramètres système avancés à gauche
  4. Cliquez sur le bouton Variables d'environnement ...
  5. Dans la section des variables système, sélectionnez la variable GIT_SSH et cliquez sur le bouton Modifier ....
  6. Mettez à jour la valeur de la variable.
  7. Appuyez sur OK pour fermer toutes les fenêtres.

Désormais, toutes les futures fenêtres de commande que vous ouvrirez auront les paramètres corrects.

J'espère que cela t'aides.

79
Todd

vous utilisez une citation intelligente au lieu de " ici:

git.exe clone -v “ssh://
                ^^^ 

Assurez-vous que vous utilisez la simple-vieille-double-citation.

7
J-16 SDiZ

J'ai trouvé mon fichier ssh.exe dans le répertoire "C:/Program Files/Git/usr/bin"

6
user3183915

Si Git pour Windows est installé, lancez Git Bash Shell:

  bash

Vous pouvez exécuter ssh depuis Bash Shell (Bash est conscient du chemin de ssh)

Pour connaître le chemin exact de ssh, exécutez la commande "where" dans Bash Shell:

  $ where ssh

vous recevez:

  c:\Program Files\Git\usr\bin\ssh.exe
0
M.Hassan