Sur une installation Windows 7 Enterprise par ailleurs parfaitement vierge:
Éditez ~/.ssh/config
comme suit:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~\.ssh\github.ppk
ssh -vvvT [email protected]
donne: http://Pastebin.com/Tu3Fc6nJ . Notez que je suis invité à saisir la phrase secrète bien qu'elle ait été chargée avec succès dans pageant.
J'ai essayé: chmod 700 ~/.ssh; chmod 600 ~/.ssh/*
à partir de Git Bash mais il n'y avait aucun effet tel que vérifié par ls -l
.
Je dois noter que cette installation exacte fonctionnait sur une installation antérieure de Windows 7. Tout est identique pour autant que je sache.
Qu'est-ce que le travail génère des clés à partir de Git Bash. Cependant, je ne peux pas ajouter ces clés à la reconstitution historique, ce qui est très pénible. En effet, il semble que toute tentative d'utilisation de clés générées par PuTTY soit infructueuse.
Avez-vous une idée de ce qui empêche cela de fonctionner avec les journaux? Merci d'avance.
Vous confondez deux programmes entièrement distincts: PuTTY et OpenSSH.
plink
et Pageant font partie de PuTTY. La commande ssh
fait partie de OpenSSH. Il est difficile de savoir quel programme est utilisé par Git; vous devez vérifier la variable d'environnement %GIT_SSH%
pour cela.
Les programmes utilisent différents protocoles d'agent; OpenSSH ne peut pas utiliser le Pageant de PuTTY; il a son propre ssh-agent
(qui est malheureusement un peu compliqué à utiliser sous Windows).
PuTTY et plink
stockent les paramètres de session dans la base de registre, modifiables dans l'interface de PuTTY. Ils n'utilisent rien dans ~/.ssh/
; ce répertoire est uniquement utilisé par OpenSSH.
Les formats de clé privée utilisés par OpenSSH et PuTTY sont différents; vous ne pouvez pas utiliser une clé .ppk
avec OpenSSH. Si vous avez généré la clé dans PuTTYgen, vous devez utiliser la commande "Exporter → OpenSSH".
$ ssh -vvvT [email protected]
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
...
debug2: key_type_from_name: unknown key type 'PuTTY-User-Key-File-2:'
J'ai élaboré un guide étape par étape pour obtenir la configuration Git pour Windows à l'aide de l'application Plink de PuTTY pour l'authentification SSH.
Suivez ci-dessous:
Installez PuTTY.Zip disponible sur la page PuTTY Download Page ou téléchargez-le individuellement.
Le client SSH et Telnet lui-même.
Une interface de ligne de commande pour le dos de PuTTY se termine.
Pageant:pageant.exe (ou par FTP )
Un agent d'authentification SSH pour PuTTY, PSCP, PSFTP et Plink.
PuTTYgen:puttygen.exe (ou par FTP )
Un utilitaire de génération de clé RSA et DSA.
Générer des clés RSA et PPK
ssh-keygen
pour générer une paire de clés publiques/privées RSA. Vous trouverez plus d’informations sur la procédure à suivre dans l’article officiel Génération de clés SSH .~/.ssh/id_rsa
(privée) existante, via Conversions → Import key.~/.ssh/id_rsa.ppk
.Vous devriez maintenant avoir les clés suivantes dans votre répertoire ~/.ssh
:
id_rsa
: Clé RSA privée (OpenSSH)id_rsa.pub
: Clé RSA publique (OpenSSH)id_rsa.ppk
: Clé privée (PuTTY)Installez Git pour Windows .
Assurez-vous que vous choisissez d'utiliser Plink.
Remarque: Si vous avez déjà installé Git, vous pouvez simplement exécuter le programme d'installation à nouveau et définir Plink comme application SSH par défaut.
Définissez vos chemins d'environnement.
Ajoutez ce qui suit Variables système (si ce n'est déjà fait):
GIT_HOME
: C:\Program Files\Git
GIT_SSH
: C:\Program Files (x86)\PuTTY\plink.exe
Ajoutez le répertoire binaire Git au chemin du système.
Path
: %Path%;%GIT_HOME%\bin
Ouvrez Pageant et chargez la clé ppk située à ~/.ssh/id_rsa.ppk
.
Note: Une fois que Pageant a démarré, vous pouvez cliquer sur son icône dans la barre d'état système située dans la barre des tâches, à côté de l'heure, à droite.
Ouvrez PuTTY et connectez-vous pour tester votre connexion via SSH et ajoutez la clé du serveur en tant qu'hôte connu.
Exemples de noms d'hôtes:
[email protected]:22
(ou via ssh-agent ssh -Tv [email protected]
)[email protected]:22
(ou via ssh-agent ssh -Tv [email protected]
)Lancez Git Bash.
Vous devriez être capable de pousser et de tirer de votre hôte distant sans entrer un mot de passe à chaque fois.
Vous pouvez placer un raccourci dans votre répertoire de démarrage pour charger automatiquement votre clé chaque fois que vous vous connectez à votre compte Windows.
Cette idée a été inspirée par une réponse à cette question:
REM |==================================================================|
REM | Pageant Autoload.bat |
REM | |
REM | This script creates a shortcut for auto-loading a PPK (key) in |
REM | Pageant by writing a temporary VB script and executing it. The |
REM | following information below is added to the shortcut. |
REM | |
REM | Filename : Pageant Autoload |
REM | Target : pageant.exe |
REM | Arguments : id_rsa.ppk |
REM | Start in : ~/.ssh |
REM |==================================================================|
@echo off
REM |==================================================================|
REM | Global Values - Do not touch these! |
REM |==================================================================|
SET VBSCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
SET STARTUP_DIR=Microsoft\Windows\Start Menu\Programs\Startup
SET STARTUP_USER_DIR=%APPDATA%\%STARTUP_DIR%
SET STARTUP_ALL_USERS_DIR=%PROGRAMDATA%\%STARTUP_DIR% REM Alternative
REM |==================================================================|
REM | Shortcut Values - You can change these to whatever you want. |
REM |==================================================================|
SET FILENAME=Pageant Autoload.lnk
SET TARGET=%PROGRAMFILES(x86)%\PuTTY\pageant.exe
SET ARGUMENTS=id_rsa.ppk
SET START_IN=%%USERPROFILE%%\.ssh
SET DESCRIPTION=Autoload PuTTY key with Pageant on startup (Ctrl+Alt+S)
SET HOTKEY=CTRL+ALT+S
REM |==================================================================|
REM | Write a new VB script, on the fly; execute and delete it. |
REM |==================================================================|
ECHO Set oWS = WScript.CreateObject("WScript.Shell") >> %VBSCRIPT%
ECHO sLinkFile = "%STARTUP_USER_DIR%\%FILENAME%" >> %VBSCRIPT%
ECHO Set oLink = oWS.CreateShortcut(sLinkFile) >> %VBSCRIPT%
ECHO oLink.TargetPath = "%TARGET%" >> %VBSCRIPT%
ECHO oLink.Arguments = "%ARGUMENTS%" >> %VBSCRIPT%
ECHO oLink.WorkingDirectory = "%START_IN%" >> %VBSCRIPT%
ECHO oLink.Description = "%DESCRIPTION%" >> %VBSCRIPT%
ECHO oLink.HotKey = "%HOTKEY%" >> %VBSCRIPT%
ECHO oLink.Save >> %VBSCRIPT%
CScript //Nologo %VBSCRIPT%
DEL %VBSCRIPT% /f /q
Accédez au répertoire de démarrage dans l'Explorateur Windows.
Le répertoire utilisateur Startup/
(préféré) se trouve à l'adresse suivante:
%AppData%\Microsoft\Windows\Start Menu\Programs\Startup
Le répertoire de tous les utilisateurs Startup/
est situé à:
%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
Cliquez avec le bouton droit de la souris dans le dossier et sélectionnez New → Shortcut
Dans la boîte de dialogue Créer un raccourci , entrez les informations suivantes.
"C:\Program Files (x86)\PuTTY\pageant.exe"
Pageant Autoload
Cliquez avec le bouton droit sur le nouveau raccourci et choisissez Properties dans le menu contextuel.
Modifiez les champs suivants sous l'onglet Raccourci :
"%PROGRAMFILES(x86)%\PuTTY\pageant.exe" id_rsa.ppk
%USERPROFILE%\.ssh
Remarques:
Si vous utilisez un système d'exploitation Windows 32 bits, vous devez utiliser la variable d'environnement %PROGRAMFILES%
au lieu de %PROGRAMFILES(x86)%
.
Si vous avez placé votre raccourci dans le répertoire de démarrage de tous les utilisateurs, assurez-vous que l'utilisateur actuel a une clé id_rsa.ppk
dans son répertoire ~/.ssh
sinon la clé ne se chargera pas automatiquement.
Voilà. La prochaine fois que vous vous connecterez à votre profil Windows, vous serez invité à entrer un mot de passe pour entrer le mot de passe de votre clé. Si vous n'avez pas défini de mot de passe sur votre clé, celle-ci doit être chargée automatiquement sans invite.
Si vous n'êtes pas sûr que votre clé chargée affiche les clés actuelles dans Pageant en sélectionnant Afficher les clés dans le menu contextuel pour Pageant dans la barre d'état système.
En clair
debug3: il ne s'agit pas d'un fichier de clé RSA1 /c/Users/Radu/\.ssh\github.ppk.
debug2: key_type_from_name: type de clé inconnue 'PuTTY-User-Key-File-2
Puttygen peut construire différentes clés, Github veut SSH1-RSA (?, I utilise les clés ssh2 avec Pageant sur github)
Ajoute
Voir aussi cet article sur le débogage des problèmes de pageant avec Github
>plink.exe -v -agent [email protected]
Looking up Host "github.com"
Connecting to 207.97.227.239 port 22
Server version: SSH-2.0-OpenSSH_5.1p1 Debian-5github2
Using SSH protocol version 2
We claim version: SSH-2.0-PuTTY_Release_0.62
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "git".
Trying Pageant key #0
Remote debug message: Forced command: gerve lazybadger
Remote debug message: Port forwarding disabled.
Remote debug message: X11 forwarding disabled.
Remote debug message: Agent forwarding disabled.
Remote debug message: Pty allocation disabled.
Authenticating with public key "github/lazybadger" from agent
Sending Pageant's response
Remote debug message: Forced command: gerve lazybadger
Remote debug message: Port forwarding disabled.
Remote debug message: X11 forwarding disabled.
Remote debug message: Agent forwarding disabled.
Remote debug message: Pty allocation disabled.
Access granted
Opened channel for session
Server refused to allocate pty
Started a Shell/command
Hi lazybadger! You've successfully authenticated, but GitHub does not provide Shell access.
Server sent command exit status 1
Disconnected: All channels closed