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

18voto

Jono Points 271

J'ai juste mis %HOME%=%HOMEPATH%.

Cette méthode a l'avantage de fonctionner pour tous les utilisateurs connectés au système (ils obtiennent chacun des dossiers .ssh distincts).

Dans Vista :

  1. Cliquez avec le bouton droit de la souris sur Ordinateur
  2. Choisir les propriétés
  3. Cliquez sur Paramètres système avancés
  4. Cliquez sur Variables d'environnement
  5. Dans la section inférieure (Variables système), cliquez sur Nouveau.
  6. Pour le type de nom de variable : HOME
  7. Pour le chemin d'accès variable, tapez : %HOMEPATH%.
  8. Cliquez sur OK

7 votes

Dans mon cas, j'ai ajouté HOME = %USERPROFILE%.

1 votes

Notez que %HOMEPATH% ne contient pas la lettre de lecteur, donc si votre source n'est pas sur C: vous devez faire précéder C: a %HOME% .

0 votes

set %HOME%=%HOMEPATH% a fonctionné pour moi ! Merci !

14voto

oglop Points 251

Dans mon cas, j'ai utilisé Git pour Windows dans un conteneur Docker. windowsservercore .

Mon Git a été installé par Chocolaté a C:\Program Files\Git .

J'ai dû mettre à jour le fichier C:\Program Files\Git\etc\ssh\ssh_config avec ça :

Host example.com
   Identityfile ~/.ssh/id_rsa

Ensuite, j'ai pu utiliser la clé de C:\Users\<user>\.ssh\id_rsa

Si vous utilisez Git pour Windows avec OpenSSH pour Windows. Git utilise toujours son propre ssh .

De plus, si vous prévoyez d'utiliser ssh-keyscan host.com > known_hosts à partir d'OpenSSH, soyez prudent car la sortie du piping à partir de stdout de keyscan (sous Windows) change l'encodage en UCS-2, mais OpenSSH ne peut lire que UTF-8 ! Assurez-vous donc de modifier le paramètre known_hosts le codage des fichiers.

0 votes

Cela a aidé, mais pour tous ceux qui utilisent une clé id_dsa, vous devrez également ajouter "PubkeyAcceptedKeyTypes ssh-dss" sous votre hôte.

8voto

Dom Points 11

Votre clé privée doit être ajoutée à l'agent SSH de votre poste de travail. La façon de réaliser ceci peut dépendre du client git que vous utilisez, cependant puTTY et son agent associé (pageant) pourraient faire l'affaire pour vous, voici le lien vers les binaires officiels et la source :

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

0 votes

J'ai indiqué ci-dessus que j'utilisais Git pour Windows et que j'utilisais ssh.exe (fourni avec git) à la place de Putty. Il doit y avoir une pratique standard pour ajouter une clé privée, mais je n'arrive pas à trouver comment. Si le changement de logiciel peut effectivement me permettre de me connecter, il doit y avoir un moyen de le faire avec la configuration standard de Git, non ?

0 votes

Désolé, je ne travaille pas sur Windows, seulement sur Linux. Mais la clé doit être dans votre agent SSH. Y a-t-il un agent.exe ou quelque chose de ce genre ?

1 votes

Ouais, l'installation était un jeu d'enfant du côté linux. Mais j'ai besoin de le faire fonctionner sous Windows aussi, malheureusement. Il y a plusieurs fichiers exécutables liés à ssh dans le dossier git/bin de la machine Windows (ssh, ssh-add, ssh-agent, ssh-keygen & ssh-keyscan), mais je ne sais pas comment leur faire faire quoi que ce soit. Ils se contentent d'ouvrir une fenêtre cmd et de la refermer aussitôt. Je suis dans l'impasse.

6voto

Adrian Onu Points 131

J'ai résolu le problème ci-dessus en créant

~/.ssh/config

et mettre :

IdentityFile C:\Users\adria\.ssh\mysshkey

1 votes

OH MON DIEU, ÇA A MARCHÉ POUR MOI ALORS QU'AUCUNE RÉPONSE PRÉCÉDENTE N'A MARCHÉ !

6voto

knocte Points 338

Le moyen le plus efficace est d'utiliser Pageant, car il vous permettra d'écrire la phrase de passe une seule fois au début de la session au lieu de le faire à chaque fois. Toutes les réponses ici étaient trop courtes, donc je vais poster un guide détaillé ici :

  1. Télécharger pageant.exe , puttygen.exe , putty.exe y plink.exe depuis le site web de PuTTY. Placez-les dans C:\puttyTools répertoire.
  2. Exécuter puttygen.exe .
  3. Cliquez sur le bouton Generate .
  4. Déplacez la souris dans la partie supérieure de la fenêtre jusqu'à ce que la barre de progression soit pleine, comme le programme vous le demande.
  5. Fournissez une phrase de passe, et répétez-la dans la zone de texte suivante.
  6. Cliquez sur "Enregistrer la clé privée". Le répertoire habituel pour les sauvegarder est %USERPROFILE%\.ssh (dans mon ordinateur, cela correspond à C:\Users\andres\.ssh\ ). Peu importe comment vous appelez la clé, mais pour les besoins de la démonstration, je vais l'appeler github.ppk . Ce fichier doit avoir une extension de .ppk.
  7. Copiez le texte dans la zone de texte supérieure de PuTTYgen, celle étiquetée Public key for pasting into OpenSSH authorized_keys file et la coller dans une nouvelle clé SSH dans les paramètres de GitHub. Donnez-lui un titre qui décrit la machine sur laquelle se trouve la clé (par exemple, "Work laptop").
  8. Exécuter pageant.exe une nouvelle icône de la barre d'état système apparaîtra.
  9. Cliquez à droite sur l'icône -> Ajouter une clé.
  10. Localisez votre fichier ppk, entrez votre phrase de passe.
  11. Créez ces nouvelles variables d'environnement utilisateur (en recherchant l'application Environ par le biais de WindowsMenu qui trouvera Edit environment variables for your account ) : GIT_SSH = "C:\puttyTools\plink.exe" y SVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
  12. Ouvrez putty.exe et essayez de vous connecter à l'hôte où vous hébergez vos dépôts Git. Par exemple, essayez de vous connecter à github.com via SSH, et une boîte de dialogue vous demandera si vous acceptez l'empreinte digitale du serveur : cliquez sur YES.
  13. Exécutez une nouvelle instance de votre MINGW64 Console Git, et vérifiez que les variables d'environnement sont présentes en écrivant la commande env | grep -i ssh .
  14. Vous devriez être prêt. Essayez de cloner avec le protocole Git + SSH depuis votre hôte.

(Extrait à l'origine de ces deux guides que j'ai combinés en un seul : Comment configurer Git pour Windows y Configurer MinGW-W64+MSYS pour utiliser PuTTY Plink/Pageant .)

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