Ma configuration de Git fonctionne correctement sous Linux, mais lorsque j'essaie de configurer Windows (avec Git pour Windows et TortoiseGit ), je ne sais pas où placer ma clé privée SSH (ou, mieux encore, comment savoir ssh
où elle se trouve. situé). J'utilise l'option ssh.exe standard lors de l'installation de Git pour Windows. La configuration fonctionne correctement si j'autorise l'authentification par mot de passe (au lieu de RSA) sur le serveur.
489
Réponses:
Pour Git Bash
Si vous exécutez msysgit (je suppose que vous l'êtes) et que vous souhaitez exécuter Git Bash (je le recommande plutôt à TortoiseGit, mais je m'appuie davantage sur la CLI que sur l'interface graphique), vous devez déterminer quel est votre répertoire personnel pour Git. Bash en le lançant puis en le tapant
pwd
(sous Windows 7, ce sera un peu commeC:\Users\phsr
je pense). Pendant que vous êtes à Git Bash, vous devriezmkdir .ssh
.Une fois que vous avez le répertoire personnel et un
.ssh
dossier situé sous celui-ci, vous souhaitez ouvrir PuTTYgen et ouvrir la clé (fichier .ppk) créée précédemment. Une fois votre clé ouverte, vous souhaitez la sélectionnerConversions -> Export OpenSSH key
et l’enregistrerHOME\.ssh\id_rsa
. Une fois que vous avez la clé à cet endroit, Git Bash la reconnaîtra et l’utilisera.Remarque: Les commentaires indiquent que cela ne fonctionne pas dans tous les cas. Vous devrez peut-être copier la clé OpenSSH sur
Program Files\Git\.ssh\id_rsa
(ouProgram Files (x86)\Git\.ssh\id_rsa
).Pour TortoiseGit
Lorsque vous utilisez TortoiseGit, vous devez définir la clé SSH en suivant les instructions de Rythme . Vous devez le faire pour chaque référentiel avec lequel vous utilisez TortoiseGit.
la source
~/.ssh/id_rsa
fichierProgram Files\Git\.ssh\id_rsa
- ce qui était un peu déroutant, mais IntelliJ et Windows cmd peuvent désormais accéder aux référentiels git qui utilisent l’authentification par clé.id_rsa
etid_rsa.pub
dansc:\program files (x86)\Git\.ssh
. Le.ssh
dir était déjà présent. Merci, JP.id_rsa
sans l'extension. C'est le nom du fichier, ce n'est pas un répertoireÀ l'aide du client SSH intégré fourni avec Git pour Windows, vous devez configurer la variable d'environnement HOME afin que le client Git SSH puisse trouver la clé.
Par exemple, sur une installation Windows Vista , cela se ferait en entrant
setx HOME c:\Users\admin\
sur la ligne de commande.Cela a fait ma journée et résolu le problème avec Git à condition que votre clé privée ne soit pas protégée par mot de passe. Si vous voulez utiliser ssh-agent, vous pouvez probablement exécuter ssh-agent cmd.exe (bien que je ne l'aie jamais fait) et ssh-add comme d'habitude.
Notez que tous les outils Git / SSH sont supposés être exécutés à partir d'un cmd.exe afin de ne pas faire clignoter une fenêtre.
Si cela ne fonctionne pas correctement, l'utilisation de plink peut probablement être obtenue en modifiant GIT_SSH . Reportez-vous à tous les tutoriels SVN + ssh; c’est la même tuyauterie que vous devez installer.
la source
setx HOME c:\Users\admin` command doesn't seems to be working in Git Bash. You have to use
cmd` à la place.GIT_SSH=c:\pathto\plink.exe
Vous pouvez spécifier l'emplacement de la clé pour TortoiseGit de la manière suivante:
Une capture d'écran est ci-dessous:
la source
Aucune des réponses précédentes n'a fonctionné pour moi. Voici ce qui a fonctionné pour moi à la fin. C'est en fait assez simple, si vous savez quoi taper. Il n'a pas besoin de Mastic.
C'est le peu sur votre propre ordinateur fait. Maintenant
ssh
dans le serveur de destination, alors faitesC'est ça! Vous avez terminé! À partir de Git Bash, procédez comme suit pour tester:
S'il répertorie les fichiers de votre répertoire personnel sur le serveur Git, vous avez terminé!
Pour GitHub, vous n'avez pas d'accès shell à leur serveur, mais vous pouvez télécharger la clé en utilisant leur site web. Ainsi, pour le bit 'maintenant copier sur votre serveur', faites:
la source
Si vous utilisez msysgit avec les outils OpenSSH, vous devez créer
~/.ssh/id_rsa
ou créer une configuration Git dans~/.ssh/config
laquelle pointe votre clé.Voici un exemple de configuration Git pour Bitbucket qui utilisera le nom d'utilisateur correct et une clé autre que la clé par défaut (si vous conservez une clé pour les connexions SSH et une autre pour les comptes Git).
~ / .ssh / config :
Une fois dans Git Bash, vous pouvez exécuter deux commandes pour ajouter votre clé à l'agent ssh de votre session actuelle afin d'éviter d'avoir à saisir à plusieurs reprises le mot de passe de la clé.
la source
Je viens de définir% HOME% =% HOMEPATH%
Cela présente l’avantage de fonctionner pour tous les utilisateurs connectés au système (ils ont chacun un dossier .ssh séparé).
Dans Vista:
la source
%HOMEPATH%
cela ne contient pas la lettre de lecteur, donc si votre source n’est pasC:
allumée, vous devez ajouter le préfixeC:
à%HOME%
.set %HOME%=%HOMEPATH%
travaillé pour moi! Je vous remercie!!Votre clé privée doit être ajoutée à l'agent SSH sur votre poste de travail. La manière dont vous réaliserez cela dépendra du client git que vous utilisez. Cependant, puTTY et son agent associé (pageant) peuvent vous aider, voici le lien vers les fichiers binaires officiels et la source:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
la source
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"
, de sorte qu'il charge mes clés SSH au démarrage, ce qui permet à GIT de "fonctionner": o)Dans mon cas, j'utilisais Git pour Windows dans le conteneur Docker
windowsservercore
.Mon Git a été installé par Chocolatey à
C:\Program Files\Git
.J'ai dû mettre à jour le fichier
C:\Program Files\Git\etc\ssh\ssh_config
avec ceci:Ensuite, je pouvais utiliser la clé de
C:\Users\<user>\.ssh\id_rsa
Si vous utilisez Git pour Windows avec OpenSSH pour Windows. Git utilise toujours les siens
ssh
.De plus, si vous envisagez d'utiliser
ssh-keyscan host.com > known_hosts
OpenSSH, soyez prudent, car la sortie de la tuyauteriestdout
dekeyscan
(sous Windows) change le codage en UCS-2, mais OpenSSH ne peut lire que le format UTF-8! Assurez-vous donc de changer leknown_hosts
codage du fichier.la source
OK, j'ai regardé la suggestion de
.
.Mais placer dans mes dossiers privés des clés SSH privées ne me paraissait pas une bonne idée. Je me suis donc mis à chercher où était le hôte connu.
Donc, si vous voulez protéger correctement votre clé SSH, vous devez la placer dans le répertoire suivant:
Pour Windows 7, 8 et 8.1 32 bits:
Pour Windows 7, 8 et 8.1 64 bits:
la source
known_hosts
. Bien sûr, c'était dansC:\Users\Dave\AppData\Local\VirtualStore\Program Files (x86)\Git\.ssh
. En plaçant mon fichier de clé (id_rsa) dans ce répertoire, ssh a pu le trouver sans se plaindre. J'ai lu un peu - c'est ainsi que Windows gère les logiciels (hérités) qui tentent d'écrire dans des zones interdites (telles que "C: \ Program Files \"), de sorte que ssh de Git ignore complètement qu'il écrit dans le répertoire VirtualStore, Windows gère cela de manière transparente. Au moins ces fichiers appartiennent à un utilisateur!Le moyen le plus efficace consiste à utiliser Pageant, car il vous permettra d'écrire la phrase secrète une seule fois au début de la session, au lieu de chaque poussée. Toutes les réponses ici étaient trop courtes, je vais donc poster un guide détaillé ici:
pageant.exe
,puttygen.exe
,putty.exe
etplink.exe
sur le site Web de PuTTY. Placez-les dans leC:\puttyTools
répertoire.puttygen.exe
.%USERPROFILE%\_ssh
(sur mon ordinateur, cela correspondC:\Users\andres\.ssh\
). Peu importe comment vous appelez la clé, mais à des fins de démonstration, je vais l'appelergithub.ppk
. Ce fichier devrait avoir une extension de .ppk.Public key for pasting into OpenSSH authorized_keys file
puis collez-le dans une nouvelle clé SSH dans les paramètres de GitHub. Donnez-lui un titre décrivant la machine sur laquelle la clé est activée (par exemple, "Ordinateur portable au travail").pageant.exe
, une nouvelle icône de système apparaîtra.Environ
via WindowsMenu qui trouveraEdit environment variables for your account
):GIT_SSH = "C:\puttyTools\plink.exe"
etSVN_SSH = "C:\puttyTools\PuTTY\plink.exe"
MINGW64
console Git et vérifiez que les variables d'environnement sont présentes en écrivant la commandeenv | grep -i ssh
.(A l'origine, extraits de ces deux guides que j'ai combinés en un: Comment configurer Git pour Windows et configurer MinGW-W64 + MSYS pour utiliser PuTTY Plink / Pageant .)
la source
Lors du mélange de GitHub pour Windows et de l'interface graphique Git pour Windows, vous pouvez rencontrer des problèmes pour lesquels l'interface graphique de Git ne cesse de vous demander un nom d'utilisateur et un mot de passe. Le remède à cela consiste à changer l'URL distante de
https:
(ce que crée GitHub pour Windows) en protocole Git. Dans le.git
répertoire du fichier de configuration, trouvez:Changez le en:
la source
git@{SERVER URL}
?L'emplacement standard des fichiers est dans
%USERPROFILE%\.ssh
.%USERPROFILE%
est l'équivalent de $ HOME sous Unix (normalement, correspond à quelque chose commec:\users\youruserid
).Si vous utilisez les outils SSH fournis avec Git, qui sont les outils standard de style Unix en ligne de commande, vous pouvez utiliser un script similaire à mon script ici pour utiliser ssh-agent dans tous les shells.
la source
%USERPROFILE% is the equivalent of $HOME
n’est pas l’équivalent de$HOME
. Beaucoup d'applications Linux agissantes portées sous Windows traitent les deux de la même manière, mais elles ne doivent pas être traitées de la même manière.%USERPROFILE%
sous Windows de la même manière que$HOME
sous Linux violent les meilleures pratiques / recommandations bien documentées en matière de développement Windows (publiées par MS il y a longtemps et mises à jour au fil du temps). Il existe de nombreux outils pour le faire, mais l'argument pour les suivre ressemble beaucoup à l'argument "X pisse dans la piscine, alors nous devrions aussi."USERPROFILE
est l'endroit où l'utilisateur stocke les documents qu'il crée / enregistre (par exemple, la boîte de dialogue d'enregistrement).APPDATA
est pour les données de configuration par utilisateur.LOCALAPPDATA
est destiné aux caches par utilisateur et aux fichiers volumineux.PROGRAMDATA
est pour la configuration à l'échelle de la machine et le cache.J'ai eu des problèmes similaires et aucune des réponses ici résolu le problème. En fait, ma paire de clés a été générée à l’origine avec une phrase secrète vide. (Je sais, bête.)
Une fois que j'ai créé une nouvelle paire de clés et téléchargé la clé publique sur GitHub, les choses ont recommencé à fonctionner.
la source
La réponse suivante s'applique également à cette question lors de l'exécution de ssh à partir d'un compte de service Windows: Jenkins (service Windows) avec Git via SSH
la source
Vous pouvez spécifier à la fois le chemin d'accès à la clé et le nom du fichier de clé, ainsi (sur Ubuntu). Par exemple:
la source
GIT_SSH_COMMAND
sur mon ordinateur Ubuntu qui fonctionne de la sorte, mais je ne sais pas quoi définir sur mon ordinateur Windows.Pageant (un agent SSH fourni avec le paquet PuTTY ) résout le problème pour moi.
J'ai un raccourci dans le dossier de 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"
, de sorte qu'il charge mes clés SSH au démarrage, ce qui permet à Git de "fonctionner juste": o)la source
Beaucoup de réponses disent cela, mais pour moi pas assez vite!
dans Windows avec msys (console Windows standard)
C:\Users\{you}\.ssh\id_rsa
En gros, cela ne dérange pas de scanner les clés installées (du moins pas sur mon nouvel ordinateur portable) et a donc besoin de
id_rsa
J'ai rencontré ce souhait de cloner certains référentiels de travaux privés dans la CLI MSYS ruby pour Windows 10 64 bits
la source
Si vous utilisez Windows 7/8, vous devriez regarder dans C: \ Users \ Your_User_Name.ssh. Il vous suffit de copier et coller votre fichier id_rsa ici pour que tout soit prêt à l'emploi.
la source
Une erreur que j’ai commise lors de l’utilisation de SSH sous Windows est que, lorsque j’ai essayé d’utiliser les clés par le biais du client Git Bash, tous les fichiers contenus dans ~ / .ssh étaient des autorisations erronées. problème.
À titre d’essai, assurez-vous que vous avez défini tous les éléments de votre répertoire ~ / .ssh sur chmod 600.
la source
Si vous disposez des autorisations nécessaires sur la machine Windows et que vos politiques le permettent, je vous suggère d'installer Cygwin ( https://cygwin.com/ ), en particulier si 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 quel autre ordinateur Linux / Unix. Et il donne accès à presque tous les outils cli de Linux.
la source
TortoiseGit vous permet de spécifier la clé à utiliser lors du clonage d'un référentiel. Cochez simplement "Load Putty Key" et naviguez jusqu'au
.ppk
fichier, comme sur la capture d'écran:la source
Settings... -> Network -> SSH client
C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe
J'ai résolu le problème ci-dessus en créant
déposer et mettre:
la source
En lisant votre commentaire sur la réponse de Declan, ouvrez d’abord une invite de commande (Démarrer → Exécuter → cmd ), puis accédez au dossier git / bin et exécutez-le
ssh-keygen
. Théoriquement, cela va générer une clé RSA et la placer dans le répertoire approprié. Ensuite, il vous suffit de la trouver et de partager votre clé publique avec le monde entier.La raison pour laquelle la fenêtre "clignote" est que Windows exécute le programme et, lorsqu'il est exécuté, ferme l'invite de commande, pensant que vous en avez terminé, lorsque vous avez vraiment besoin de la sortie.
la source
En utilisant la v0.17 de Git Gui sous Windows, j'ai cliqué sur la commande de menu suivante: Aide → Afficher la clé SSH .
Une boîte de dialogue est apparue intitulée Votre clé publique OpenSSH . J'ai généré une clé et l'ai copiée dans le presse-papier. Ensuite, j'ai continué à suivre les instructions de setup-ssh sur githelp à partir de la troisième étape . Par la suite, Git Gui a communiqué avec GitHub en silence - nul besoin de saisir d’authentification.
la source
Sur mon système Windows 7, Git Gui recherche la clé RSA dans le
userprofile/.ssh
dossier ou plus spécifiquementc:/users/yourusername/.ssh/
.La partie délicate de mon installation a été de faire accepter la clé par l’hôte partagé de hostmonster. La seule façon pour que cela fonctionne est d'utiliser Git Gui pour créer les paires de clés (sans mot de passe), puis pour copier et coller la clé publique via le panneau de configuration, ssh, clés de gestion.
Pour commencer au début, vous devez créer les clés dans Git Gui en allant dans le menu Aide , Afficher la clé SSH , puis Générer la clé . Vous allez maintenant avoir deux nouvelles clés dans le
.ssh
répertoire. Ouvrez le.pub
fichier et copiez 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 Importer la clé . Collez dans la zone publique et assurez-vous de lui attribuer le nom correct sans l'extension - le mien l'était
id_rsa
. Vous devez maintenant autoriser la clé à l’aide du lien Gérer les autorisations afin qu’elle soit concaténée dans leauthorized_keys
fichier.Maintenant, votre Git Gui et votre Git Bash devraient pouvoir utiliser SSH sans avoir à saisir le mot de passe. Bizarrement, j'ai pu utiliser SSH via Git Bash et Git Gui fonctionnait parfaitement sur mes propres serveurs fonctionnant sous Linux, c'était simplement l'hébergement partagé qui me convenait le mieux. J'espère que cela aidera quelqu'un car cela m'a pris des heures d'essais et d'erreurs pour arriver à cela - et c'est si simple!
la source
Si vous utilisez la ligne de commande Git pour Windows, vous pouvez procéder comme suit:
Ouvrir
cmd.exe
et exécutersetx HOME c:\PATH_TO_PRIVATE_KEY
.Créez un nouveau dossier,
.ssh
(s'il n'existe pas) à l'intérieurc:\PATH_TO_PRIVATE_KEY
et copiez-y votreid_rsa
fichier (votre clé privée).Terminé. Vous pouvez maintenant utiliser la ligne de commande Git normalement.
la source
Mon expérience msysgit OpenSSL / Bash Git (et non celle de PuTTY) est que l'ordre de recherche de votre
.ssh/
dossier est le suivant.%HOME%/.ssh/
%HOMEDRIVE%%HOMEPATH%/.ssh/
%USERPROFILE%/.ssh/
D'où la raison pour laquelle tant de personnes suggèrent de définir
HOME
si l'un des autres n'est pas ce que vous attendez. Plus important encore, vous pouvez vérifier par vous-même; pour déboguer l’utilisationssh -v
sur un serveur qui utilise l’authentification par clé publique comme suit:Nous avons trouvé une
ssh
recherche sur un lecteur obscur et aucune des réponses précédentes ne semblait expliquer ce que nous avons vu.Parfois ,
%HOMEDRIVE%%HOMEPATH%
un lecteur réseau mappé (par exempleH:/
) qui provoque des défaillances inutiles quand il y a réseau / problèmes de fileserver, même quand%USERPROFILE%/.ssh
estC:/Users/Username/.ssh
et a les clés sur place. Le réglage%HOME%
sur%USERPROFILE%
cesse de regarder le lecteur de la maison à distance.la source
Vous pouvez également charger PuTTY Agent (pageant) et ajouter la clé privée générée avec PuTTY pour le serveur.
Git le reconnaît et l'utilise pour pousser / tirer.
la source
J'utilisais TortoiseGit ainsi que Git Bash sous Windows, en fonction des besoins. J'ai tout ajouté dans TortoiseGit, et cela a bien fonctionné, mais Git Bash ne l'a pas récupéré même si les clés étaient dans le bon répertoire. Il s'est avéré que je devais le faire depuis Git Bash:
Vous pouvez bien sûr changer le chemin d'accès où que soit située votre clé, en vous rappelant de l'utiliser
\\
comme séparateur.la source
Si vous utilisez Git pour Windows, une fois les clés SSH générées, vous devez ajouter votre clé SSH à ssh-agent.
Voir Génération d'une nouvelle clé SSH et l'ajout à ssh-agent .
la source