Comment installer une clé privée SSH générée par PuTTYgen?

50

J'ai configuré mon serveur Linux pour accepter les connexions de mon ordinateur personnel en ajoutant la clé publique générée par PuTTYgen au authorized_keysfichier.

Maintenant, j'essaie de me connecter à la même machine, mais cette fois à partir d'une autre machine Ubuntu. Je dois utiliser la même clé privée (pour une raison étrange, ne demandez pas…) et je ne comprends pas très bien comment l'installer sur mon client Ubuntu.

Dois-je le convertir dans un autre format?

Assaf Lavie
la source

Réponses:

25

Je ne sais pas si votre clé privée fonctionnera à Ubuntu, mais cela en vaut la peine. copiez simplement les clés pour /home/yourName/.ssh/nommer la clé privée en tant que id_rsa, et la clé publique en tant que id_rsa.pub.

Si cela ne fonctionne pas, vous pouvez créer votre propre paire de clés ssh en utilisant ssh-keygenet copier la nouvelle clé publique sur le serveur, puis en ssh comme suit

ssh -i ~/.ssh/id_rsa_ubuntu.pub <hostName>

Je n'ai pas joué avec, mais j'ai entendu dire que ssh-agent peut également être utilisé pour gérer les clés ssh.

theTuxRacer
la source
3
Cela fonctionne à Ubuntu. Cependant, veillez à ne pas écraser une clé id_rsa existante si vous en avez déjà une (en copiant la nouvelle clé par-dessus), à moins de savoir que vous n'utilisez pas l'ancienne.
David Oneill
5
Cette réponse manque complètement d'informations, comment obtenez-vous le id_rsafichier (en convertissant la clé en PuTTYgen)
Martin Prikryl
38

Par coïncidence, je devais faire cela. Vous devez convertir les clés au format OpenSSH. La commande pour le faire est la suivante:

ssh-keygen -i -f puttygen_key > openssh_key

vous pouvez alors copier le contenu de openssh_keydans .ssh/authorized_keyscomme avec une clé SSH normale.

L' -ioption est celle qui dit ssh-keygende faire la conversion. L' -foption lui indique où trouver la clé à convertir.

Cela fonctionne pour les clés non chiffrées . La clé publique n'est pas cryptée, mais la clé privée est probablement cryptée. Je ne sais pas s'il existe un moyen de déchiffrer la clé privée, de la convertir, puis de la déchiffrer. Il serait peut-être plus facile d’utiliser de nouvelles clés, comme l’indique l’autre réponse (et je vous conseillerais d’utiliser ssh-agentcette option, mais elle est orthogonale au numéro actuel).

Espace de boucle
la source
1
Cette réponse résout mon problème. Je devais convertir la clé. Merci
leticia
1
Cela ne résout qu'une partie du problème en convertissant la clé publique. J'ai également utilisé la réponse de @ user18617 pour convertir la clé privée.
ᴠɪɴᴄᴇɴᴛ
@ ÉdouardLopez puttygen_keydevrait être votre clé publique, pas votre clé privée (* .ppk).
endolithe
28

Andrew Stacey a expliqué comment convertir les clés au format OpenSSH sous Linux.

Si vous voulez faire la même chose sous Windows, procédez comme suit:

  1. Démarrer PuTTYGen.
  2. Cliquez sur "Charger".
  3. Sélectionnez votre clé privée et entrez la phrase secrète.
  4. Dans le menu "Conversions", sélectionnez "Exporter la clé OpenSSH".
  5. Choisissez le nom du fichier de destination.
hheimbuerger
la source
1
Je voulais juste dire que cela fonctionnait pour moi sur mon Mac OS X, même si je sais que c'est une section Ubuntu. J'ai converti ma clé privée générée sous Windows comme décrit ci-dessus, puis je l'ai copiée dans mon mac vers ~ / .ssh / id_rsa. chmod id_rsa 600 pour empêcher Mac de s'en plaindre.
Richard
24

Comment réutiliser vos paires de clés Putty dans Ubuntu en tant que clés OpenSSH:

apt-get install putty-tools #Install Putty tools in Linux
cd /my-putty-keys
puttygen mykey-sec.ppk ‐O private‐openssh ‐o my‐openssh‐key.sec
ssh-keygen -i -f mykey-pub.ppk > my-openssh-key.pub

Le but de l’étape 4 étant d’ajouter votre clé publique à * ~. / Ssh / registered_keys *, afin que vous puissiez utiliser votre clé secrète Putty comme ceci au lieu d’en faire 4 comme étape intermédiaire:

puttygen ‐L mykey-sec.ppk >> $HOME/.ssh/authorized_keys
utilisateur18617
la source
1
à propos de l'étape 4: si le nom de la clé privée était mykey-sec.ppk, le nom du fichier source dans ce cas serait généralement mykey-sec.pub.
Kinjal Dixit
2
Nommer une clé publique (probablement au format RFC 4716) mykey-pub.ppkest assez déroutant, car le .ppkfichier a un format complètement différent et est utilisé pour les paires de clés (pas seulement la clé publique).
Martin Prikryl
Cette dernière ligne puttygen a parfaitement fonctionné pour moi après l’installation de putty-tools sur debian 9. Les autres lignes et les réponses fournies ici ne fonctionnaient pas.
Tim
Je devenais bizarrement puttygen: unknown output type `private‐openssh'et puttygen: cannot handle more than one input filej'ai donc copié les caractères exacts du code source et renommé ma clé publique en quelque chose de complètement différent
CPHPython
en tête-à-tête, si vous essayez d'exécuter les commandes de cette réponse et obtenez "puttygen: impossible de gérer plus d'un fichier d'entrée", il est probable que le caractère de tiret de "private-openssh" ne soit pas collé sous forme de tiret ASCII réel. donc puttygen ne le reconnaît pas. Au lieu de cela, tapez le mot vous-même et cela devrait fonctionner.
Matt Styles
9

PuTTY / PuTTYgen utilise son propre format propriétaire de paire de clés. Cela ne fonctionnera pas sous Linux, où le format OpenSSH des clés prévaut.

  • Dans PuTTYgen, vous pouvez directement voir (et copier + coller) une clé publique au format utilisé par le authorized_keysfichier OpenSSH .

  • Vous pouvez utiliser le bouton Enregistrer la clé publique pour enregistrer la clé publique au .pubformat (RFC 4716). Sous Linux, le fichier est généralement nommé id_rsa.pub(ou id_dsa.pub). Mais ce n'est généralement pas nécessaire.

  • Utilisez la clé Conversions> Export OpenSSH pour exporter la clé privée au format OpenSSH. Sous Linux, le fichier est généralement nommé id_rsa(ou id_dsa) et est stocké dans un .sshdossier.

Voir le document officiel Using PuTTYgen, le générateur de clé PuTTY .

Vous pouvez également utiliser une version Linux de PuTTYgen pour effectuer la conversion. La version Linux est en ligne de commande, contrairement à la version Windows.

puttygen mykey.ppk ‐O private‐openssh ‐o id_rsa

Voir la puttygenpage de manuel Linux .

Martin Prikryl
la source
2

J'ai trouvé une solution plus claire.

Sur puttygencréer une clé, puis accédez au menu principal - Conversion et cliquez sur exporter la clé openssh

Le contenu du fichier va commencer et se terminer par

-----BEGIN RSA PRIVATE KEY----- 

-----END RSA PRIVATE KEY-----
  • pour l'utilisateur racine Copiez ce fichier de clé /root/.ssh/dans id_rsaouid_dsa

  • pour un autre utilisateur Copiez ce fichier de clé /home/user/.ssh/dans id_rsaouid_dsa

Remarque :

  1. Pas besoin de modifier authorized_keys.
  2. J'utilise amazon linux
  3. Autorisation de fichier 0600
P-Kumar
la source
1

* * Soyez prudent et assurez-vous que vous avez un accès console à la boîte, car si vous ne le faites pas correctement, vous ne pourrez plus entrer SSH tant que vous ne aurez pas résolu le problème depuis la console.

Le processus est beaucoup plus facile que vous ne le pensez. Chargez à nouveau la paire de clés publique / privée que vous avez générée dans puttygen. Dans puttygen, vous remarquerez une fenêtre au milieu de l’écran indiquant: "Clé publique pour coller dans le fichier Open SSH allowed_keys:".

mettez tout le contenu de la boîte en surbrillance et appuyez sur control-c pour le copier.

SSH dans votre boîte Linux et collez-le dans le fichier "/home/username/.ssh/authorized_keys". Je préfère utiliser nano et cliquer avec le bouton droit de la souris pour le coller. Assurez-vous que tout reste sur une seule ligne.

Modifiez votre fichier / etc / sshd_config selon vos besoins et redémarrez votre service sshd: "service ssh restart"

Si vous avez besoin d'un exemple de fichier sshd_config, faites-le moi savoir et je pourrai poster le mien.

Je l'ai fait sur un serveur Ubuntu 8.04, 10.04 et 12.04 LTS et cela fonctionne bien.

ErnestA
la source
0

Je ne sais pas si ce fil est toujours actif, mais je suis tombé sur un problème similaire avec l'édition anniversaire de Windows 10, qui prend désormais en charge le noyau Ubuntu. J'avais l'habitude d'utiliser Putty avant pour me connecter à une machine Linux. Pour générer id_rsa au format linux, utilisez puttykeygen et chargez votre clé privée putty, puis cliquez sur conversion et choisissez la deuxième option.

Putty KeyGenerator conevrsions

ouvrez le fichier de clé nouvellement généré et copiez tout son contenu, assurez-vous que votre contenu commence par: ----- BEGIN RSA PRIVATE KEY ----- et se termine par ----- END RSA PRIVATE KEY -----

vi id_rsa dans votre répertoire ~ / .ssh et collez le contenu copié, cela est nécessaire car linux sinon ne comprendra pas le contenu du fichier.

C’est tout, essayez ssh sur le serveur distant, cela devrait fonctionner.

binish
la source