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

1voto

Nikita Rybak Points 36641

Si vous avez les autorisations nécessaires sur la machine Windows, et si vos politiques le permettent, je suggérerais d'installer Cygwin ( https://cygwin.com/ ), surtout si l'on considère que vous avez une expérience préalable de Linux. Cygwin vous permettra de gérer vos clés ssh comme vous le feriez sur n'importe quelle autre machine Linux/Unix. Et il donne accès à presque tous les outils de clique de Linux.

1 votes

Il est parfaitement raisonnable de faire des suggestions comme celle-ci en tant que commentaires. Mais comme la question demande explicitement git pour Windows, vous devez vous attendre à des votes négatifs si vous postez ceci comme réponse.

0voto

user228414 Points 1

Sur mon système Windows 7, Git Gui recherche la clé RSA dans le fichier userprofile/.ssh ou plus précisément c:/users/yourusername/.ssh/ .

La partie la plus délicate de mon installation était de faire en sorte que l'hôte partagé chez hostmonster accepte la clé. La seule façon de le faire fonctionner était d'utiliser Git Gui pour créer les paires de clés (sans mot de passe) et ensuite de copier et coller la clé publique via le panneau de contrôle, ssh, gérer les clés.

Pour commencer par le début, vous devez créer les clés dans Git Gui en allant dans le menu Aide , Afficher la clé SSH alors Générer une clé . Maintenant, vous aurez deux nouvelles clés dans le .ssh répertoire. Ouvrez le .pub et copier le contenu.

Connectez-vous à votre panneau de contrôle sur l'hôte partagé et allez dans SSH , Gérer les clés SSH et Clé d'importation . Collez dans le Public et assurez-vous de lui donner le bon nom sans l'extension - le mien était id_rsa . Vous devez maintenant autoriser la clé en utilisant le lien d'autorisation de gestion, afin qu'elle soit concaténée dans le fichier authorized_keys fichier.

Maintenant, votre Gui Git et votre Bash Git devraient être en mesure de pousser en utilisant SSH sans avoir à taper le mot de passe. Curieusement, j'ai été en mesure de pousser en utilisant SSH via Git Bash et Git Gui très bien sur mes propres serveurs sous Linux, c'était juste l'hébergement partagé qui me donnait des problèmes. J'espère que cela aidera quelqu'un, car il m'a fallu des heures d'essais et d'erreurs pour trouver cette solution - et c'est si simple !

0voto

Martijn Pieters Points 271458

Si vous utilisez la ligne de commande Git pour Windows, vous pouvez procéder comme suit :

Ouvrir cmd.exe et exécute setx HOME c:\PATH_TO_PRIVATE_KEY .

Créez un nouveau dossier, .ssh (s'il n'existe pas) à l'intérieur c:\PATH_TO_PRIVATE_KEY et copier votre id_rsa (votre clé privée) dans ce fichier.

Fait. Vous pouvez maintenant utiliser la ligne de commande Git normalement.

0voto

deepakkt Points 1

Vous pouvez également charger l'agent PuTTY (pageant) et ajouter la clé privée que vous avez générée avec PuTTY pour le serveur.

Git reconnaît cela et l'utilise pour le push/pull.

0voto

lemonsqueeze Points 1209

J'utilisais TortoiseGit ainsi que Git Bash sur Windows, en fonction des besoins. J'ai tout ajouté dans TortoiseGit, et cela a bien fonctionné, mais Git Bash ne le récupérait pas même si les clés étaient dans le bon répertoire. Il s'avère que j'ai dû faire cela à partir de Git Bash :

ssh-add C:\\Users\\<YOUR_USER>\\.ssh\\id_rsa

Vous pouvez bien sûr changer le chemin d'accès à l'endroit où se trouve votre clé, en vous rappelant d'utiliser \\ comme séparateur.

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