560 votes

Comment indiquer à Git pour Windows où trouver ma clé RSA privée ?

Ma configuration de Git fonctionne bien sous Linux, mais lorsque j'essaie de configurer les choses sous Windows (en utilisant Git for Windows et TortoiseGit ), je ne sais pas où mettre ma clé privée SSH (ou, mieux encore, comment dire à ssh où il se trouve). J'utilise l'option standard ssh.exe lors de l'installation de Git pour Windows. La configuration fonctionne bien si j'autorise l'authentification par mot de passe (au lieu de RSA) sur le serveur.

0 votes

J'ai le même problème, je peux me connecter à ma boîte de développement en utilisant une clé publique en tant que "root" en utilisant le programme "Git Bash" qui est installé avec "Git For Windows" mais je ne peux pas me connecter en tant que "git" avec ma clé même si j'ai copié mon fichier "authorized_keys" de mon "root" vers mon utilisateur "git" et que j'ai défini les propriétaires et les permissions correctement. Pourquoi ne puis-je pas me connecter en tant que "git" alors que "root" fonctionne avec exactement le même fichier "authorized_keys". Au lieu de cela, pour "git", il transmet toutes les clés privées, qui sont exactement les mêmes que celles qui fonctionnent avec "root" et demande un mot de passe. Au fait, il s'agit d'un serveur Centos 5.5.

0 votes

@fuzzy lollipop : Avez-vous les bonnes permissions sur le fichier authorized_keys de votre utilisateur git ? Il devrait être chmod 600, et devrait appartenir à l'utilisateur git. S'il appartient à l'utilisateur root, cela ne fonctionnera pas.

0 votes

Oui tous les fichiers et répertoires ont les propriétaires et les permissions corrects

2voto

Alexander Pacha Points 169

La réponse suivante s'applique également à cette question lorsque vous exécutez ssh à partir du compte de service Windows : Jenkins (service Windows) avec Git via SSH

0 votes

En suivant le lien que vous avez fourni, j'ai pu configurer mon Jenkins. Je devais définir la variable d'environnement HOME sur le chemin du programme Git qui contient le répertoire .ssh dans lequel j'ai créé ma clé SSH.

2voto

Owen Blacker Points 631

Pageant (un agent SSH fourni avec l'application Paquet PuTTY ) résout le problème pour moi.

J'ai un raccourci dans le dossier Démarrage de mon menu Démarrer ( C:\Users\owen.blacker\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup ) pointant vers "C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerPersonal.ppk" "C:\Users\owen.blacker\Documents\SSH\OwenBlackerWork.ppk" pour qu'il charge mes clés SSH au démarrage, ce qui permet à Git de "fonctionner" :o)

4 votes

Je pense que vous avez besoin de plusieurs autres paramètres corrects pour que cela fonctionne (comme GIT_SSH réglé sur TortoisePLink.exe, je pense ?), et bien que cela ait fonctionné pour moi dans le passé, j'ai souvent des problèmes avec cela sur d'autres machines. :-(

0 votes

J'obtiens 'Impossible d'ouvrir le fichier' à partir de Pageant :( qui, je le sais, est correctement configuré puisque je l'utilise pour TortoiseGit :(

2voto

KCD Points 868

Mon msysgit L'expérience de OpenSSL/Bash Git (pas plink de PuTTY) est que l'ordre de recherche de votre fichier .ssh/ est le suivant.

  1. %HOME%/.ssh/
  2. %HOMEDRIVE%%HOMEPATH%/.ssh/
  3. %USERPROFILE%/.ssh/

C'est pourquoi de nombreuses personnes suggèrent de fixer HOME si l'un des autres ne correspond pas à vos attentes. Plus important encore, vous pouvez vérifier par vous-même ; pour déboguer, utilisez ssh -v à un serveur qui utilise l'authentification par clé publique comme suit :

$ ssh -v git@github.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /d/.ssh/config
...
debug1: identity file /d/.ssh/identity type -1
debug1: identity file /d/.ssh/id_rsa type 1
debug1: identity file /d/.ssh/id_dsa type -1
...
debug1: Next authentication method: publickey
debug1: Trying private key: /d/.ssh/identity
debug1: Offering public key: /d/.ssh/id_rsa
..
Hi kcd83! You've successfully authenticated, but GitHub does not provide shell access.

Nous avons trouvé ssh en cherchant sur un disque obscur et aucune des réponses précédentes ne semblait expliquer ce que nous avons vu.

Parfois %HOMEDRIVE%%HOMEPATH% est un lecteur réseau mappé (par ex. H:/ ) qui provoque des échecs inutiles lorsqu'il y a des problèmes de réseau/serveur de fichiers, même si %USERPROFILE%/.ssh es C:/Users/Username/.ssh et possède les clés localement. Réglage %HOME% a %USERPROFILE% l'arrête en regardant la télécommande de la maison.

0 votes

Cette réponse m'a aidé à résoudre un problème très particulier où l'algorithme de cryptage de ma clé n'était pas pris en charge par l'un des systèmes d'exploitation que j'utilisais.

2voto

NGNeer Points 11

TortoiseGit vous permet de spécifier la clé à utiliser lors du clonage d'un référentiel. Cochez simplement "Charger la clé Putty" et naviguez jusqu'au fichier .ppk comme dans la capture d'écran : https://i.stack.imgur.com/lAyzT.png

0 votes

Si elle est désactivée, vérifiez Settings... -> Network -> SSH client est réglé sur C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe

2voto

libjack Points 111

En utilisant Windows 10, je n'ai pas réussi à faire fonctionner la clé SSH générée par le pageant (au moins pour Git en ligne de commande, en utilisant SourceTree je n'ai pas eu de problème) lors de l'exécution :

git push origin master

Donc ma solution :

  1. J'ai ouvert 'Git Bash'.

  2. Ran

    ssh-keygen
  3. Les clés confirmées existent maintenant

    ls ~/.ssh
  4. J'ai ouvert id_rsa.pub dans Notepad++, et j'ai sélectionné tout le contenu.

  5. Ajout d'une nouvelle clé dans Bitbucket, https://bitbucket.org/account/user/myusername/ssh-keys/

  6. Contenu étiqueté et collé dans le champ de la clé --> Ajouter une clé

Après cela, la ligne de commande Git a fonctionné. Il semble qu'il veuille l'ancien format PEM, car si j'essaie d'importer cette clé dans pageant, il me le dit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X