TortoiseGit avec clé openssh ne s'authentifiant pas à l'aide de ssh-agent

je mets en place un environnement git sur Windows XP (msysGit 1.7.11, TortoiseGit 1.7.14) et j'essaie d'atteindre les points suivants:

  • connexion ssh sur un port différent de celui par défaut 22
  • authentification ssh traitée par ssh-agent

donc je crée un ~/.ssh/config fichier :

Host gitbox
   User gitolite
   Hostname XX.XX.XX.XX
   Port 154
   PreferredAuthentications publickey
   IdentityFile "/c/Documents and Settings/kraymer/.ssh/id_rsa"

en utilisant le Git bash CLI, tout fonctionne comme destiné.

je lutte avec TortoiseGit.

J'ai d'abord installé TortoiseGit avec Plink et en utilisant Pageant pour charger SSH clé privée. L'authentification automatique (concours) a fonctionné mais la configuration a échoué car TortoiseGit ne reconnaît pas l'url de Git repos formatée en gitolite@gitbox/repo.git .

j'ai alors décidé d'installer TortoiseGit en utilisant le client openssh, donc le fichier config peut être lu par le client ssh, et imiter la configuration de Git CLI.

J'ai choisi le ssh.exe livré avec msys git comme client ssh dans les paramètres de TortoiseGit.

Lorsque vous faites un git pull , l'url distante est maintenant résolue, mais le mot de passe passphrase est demandé alors que je m'attends à ce que l'authentification automatique ssh-agent se produise.

https://dl.dropbox.com/u/1026715/tortoisegit.png

est-il possible de faire TortoiseGit travaille avec ssh-agent ?

Ou faites TortoiseGit (Plink) conscient de .SSH / config ?

Edit #1

suivant les conseils de @VonC j'ai configuré ma variable $HOME.

Lorsque je clique sur afficher les variables d'environnement dans TortoiseGit j'ai maintenant:

 HOME=C:Documents and Settingskraymer  
 HOMEDRIVE=C: 
 HOMEPATH=Documents and Settingskraymer 

mais git pull exigent toujours d'entrer phrase.

23
demandé sur kraymer 2012-11-22 19:45:36

6 réponses

pas besoin de retouches.

il suffit de faire pointer TortoiseGit vers le même client ssh utilisé par git lui-même, voir la capture d'écran:

enter image description here

Ce qui devrait être C:\Program Files\Git\usr\bin\ssh.exe dans la dernière version de Git comme mentionné par Aleksey Kontsevich dans les commentaires.

63
répondu Haitham Sweilem 2016-04-20 21:25:55

J'ai d'abord installé TortoiseGit avec Plink et en utilisant Pageant pour charger SSH clé privée. L'authentification automatique (concours) a fonctionné mais la configuration a échoué car TortoiseGit ne reconnaît pas l'url de Git repos formatée en gitolite@gitbox/repo.Git.

j'ai finalement trouvé une solution qui consiste à créer une session PuTTY avec le même nom que l'alias ssh (c'est-à-dire gitbox dans la question).

De cette façon, je peux cloner comme git clone gitbox/monrepo dans le CLI et la syntaxe origin est correctement traitée par TortoiseGit.

4
répondu kraymer 2013-01-09 16:51:38

1) Cygwin

Utiliser l'approche décrite dans l'article suivant: https://help.github.com/articles/working-with-ssh-key-passphrases

Le mot de passe

ne sera demandé qu'une seule fois au démarrage de la session cygwin. !!! Avant de quitter la session cygwin, n'oubliez pas de tuer le processus ssh-agent (utilisez ps pour find process PID et kill -9).

nous utilisons une approche séparée pour cygwin, parce que cygwin par une raison quelconque ne voit pas les processus lancés à l'extérieur dans l'environnement windows.

2, 3) MsysGit, TortoiseGit

lien utile: http://dogbiscuit.org/mdub/weblog/Tech/WindowsSshAgent

Install MsysGit. Installez TortoiseGit (cochez openssh au lieu de plink pendant l'installation). !!! Vérifier les variables des systèmes. Si la variable GIT_SSH est présente, supprimez-la.

TortoiseGit - > Réglages - > Généralités

Set Git exe Path to / bin Définir le chemin dll externe vers/mingw / bin

allez à TortoiseGit- > paramètres - > réseau Définir la propriété du Client SSH à /bin / ssh.exe

définit la variable système SSH_AUTH_SOCKS=C:\temp.SSH-socket

Start cmd.exe et exécutez les commandes suivantes (depuis que nous avons installé MsysGit toutes les commandes suivantes sont accessibles dans cmd - / bin est ajouté à la variable de chemin du système):

# following command is required to execute for avoiding Address already bind message when ssh-agen is not started yet but .ssh-socket exists after previous agent session
rm "%SSH_AUTH_SOCK%"

# Starting ssh-agent
ssh-agent -a "%SSH_AUTH_SOCK%"

# Adding our openssh key
ssh-add "%USERPROFILE%\.ssh\id_rsa"

# Type password for your key

C'est ça. À partir de ce moment, vous pouvez exécuter git push, git pull à partir de TortoiseGit et MsysGit sans demander passphrase.

lorsque ssh-agent n'est plus nécessaire, vous pouvez le tuer via windows task manager.

4
répondu ydrozhdzhal 2013-02-16 17:48:09

aucune des réponses ci-dessus n'a fonctionné pour moi.

j'ai créé ce fichier batch pour résoudre le problème.

CALL "C:\Program Files\Git\cmd\start-ssh-agent.cmd"
SETX SSH_AUTH_SOCK "%SSH_AUTH_SOCK%"
SETX SSH_AGENT_PID "%SSH_AGENT_PID%"

exécutez cette fois, et entrez votre phrase de passe.

alors vous pouvez utiliser tortoisegit avec openssh sans avoir à entrer votre phrase de passe pour chaque opération.

3
répondu Michael Marcin 2016-07-07 23:15:00

assurez-vous de lancer votre TortoiseGit dans un environnement où HOME est défini, et référez-vous au répertoire parent de .ssh .

C'est important car, sur Windows, la maison n'est pas définie par défaut.

voir comme exemple: " Auth ne fonctionne pas sur Windows XP avec git et tortoisegit ".

(D'autres sources possibles: " Comment puis-je indiquer à Git pour Windows où trouver mon RSA clé? ")

2
répondu VonC 2017-05-23 11:54:50

il semble y avoir une grande variété d'options pour résoudre ce problème. Comme aucun des éléments ci-dessus n'a fonctionné pour moi, j'ai pensé que je partagerais ce qui m'a aidé.

Capture d'écran: paramètres Réseau / Git Client SSH

dans Settings... -> Network -> SSH -> SSH client , mettez le client sur C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe . En utilisant Pageant, vous êtes alors automatiquement authentifié comme prévu, sinon vous êtes invité pour votre phrase clé privée. Assurez-vous que le " Autoload Putty Key" l'option est cochée dans la boîte de dialogue push.

0
répondu Lupinity Labs 2016-11-19 01:39:33