255 votes

Comment convertir une clé .ppk en clé OpenSSH sous Linux?

Je sais qu'il est possible de convertir un fichier .ppk avec puttygen sous Windows, mais comment faire sur Linux? Est-ce possible?

378voto

Stanley Williams Points 5024

Faites-le avec Putty.

  • Linux: avec votre gestionnaire de paquets, installez PuTTY (ou les outils PuTTY plus minimaux) :

    • Ubuntu sudo apt-get install putty-tools
    • Debian-like apt-get install putty-tools
    • Basé sur RPM yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • etc.
  • OS X: Installez Homebrew, puis exécutez brew install putty

Placez vos clés dans un répertoire, par exemple, votre dossier personnel. Maintenant, convertissez les clés PPK en paires de clés SSH:

Pour générer la clé privée :

cd ~
puttygen id_dsa.ppk -O private-openssh -o id_dsa

et pour générer la clé publique :

puttygen id_dsa.ppk -O public-openssh -o id_dsa.pub

Déplacez ces clés dans ~/.ssh et assurez-vous que les autorisations sont définies à privé pour votre clé privée :

mkdir -p ~/.ssh
mv -i ~/id_dsa* ~/.ssh
chmod 600 ~/.ssh/id_dsa
chmod 666 ~/.ssh/id_dsa.pub

Si vous avez déjà essayé d'effectuer une opération de clonage 'git clone' vous devrez peut-être faire ceci aussi

chmod 666 ~/.ssh/known_hosts

0 votes

Salut j'ai déjà une clé publique alors il est nécessaire de créer une nouvelle clé publique.

4 votes

Si vous êtes venu ici chercher comment le faire sous Windows, exécutez "puttygen votreclé.ppk", puis sous le menu Conversions choisissez "Export OpenSSH key" pour obtenir la clé privée.

1 votes

La solution de @jous est beaucoup plus agréable car vous n'avez pas besoin de la clé privée pour convertir une clé publique + vous n'avez pas besoin d'installer putty

52voto

jous Points 681
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i drapeau signifie importer depuis un format autre que openssh
  • -f drapeau signifie lire à partir du fichier d'entrée

Source: un article de blog sur burnz.wordpress.com

25 votes

Les fichiers .ppk sont les paires de clés complètes, je ne pense pas que la commande ci-dessus ou le billet de blog s'appliquent à cela.

2 votes

Je pense que cela fonctionne si vous utilisez le bouton "Enregistrer la clé publique" de puttygen. ssh-keygen ne comprend pas les vrais fichiers .ppk car ils manquent ces marqueurs '----DÉBUT DE LA CLÉ PUBLIQUE SSH2----'. Vous pouvez trouver la clé publique dans le fichier .ppk entre les lignes "Public-Lines:.." et "Private-Lines:..".

2 votes

Cela a fonctionné pour moi avec un fichier de clé publique - puttygen semble nécessiter une clé privée. Il semble que tout ce qu'il a fait était de réorganiser la partie en base 64 en une seule ligne.

14voto

Bar Horing Amir Points 261

Obtenez la clé privée :

ouvrez le fichier .ppk dans puttygen :

puttygen ~/.ssh/id_dsa.ppk

exportez en tant que openssh :

Conversions Exporter la clé OpenSSH

Obtenez la clé publique :

ouvrez comme précédemment la clé privée avec puttygen, la clé publique se trouve sous clé publique à coller dans le fichier authorized_keys OpenSSH

8voto

ntcolonel Points 176

J'ai préparé un conteneur Docker pour rendre la vie plus simple :

docker run --rm \
           --volume=/chemin/vers/fichier.ppk:/tmp/id_dsa.ppk \
           --volume=/chemin/vers/sortie:/tmp/out/ \
           czerasz/putty-tools

Où :

  • /chemin/vers/fichier.ppk - chemin local vers votre fichier ppk
  • /chemin/vers/sortie - chemin local où la clé privée et publique doivent être placées

2 votes

Génial. merci pour l'image! cependant, entre-temps, c'est --volume=/chemin/vers/fichier.ppk:/tmp/id.ppk et pas id_dsa.ppk

5 votes

Vous pouvez aimer ajouter --network none

2 votes

Je reçois puttygen: erreur de chargement '/tmp/id.ppk': Format de clé PuTTY trop récent

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