Question Comment convertir la clé .ppk en clé OpenSSH sous Linux?


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


157
2018-01-12 17:56


origine




Réponses:


Faites-le avec du mastic.

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

    • Ubuntu sudo apt-get install putty-tools
    • Semblable à Debian apt-get install putty-tools
    • RPM basé yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • etc.
  • OS X: Installer Homebrew, puis courez 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: recherche dans le cache

Pour générer le privé clé:

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

et pour générer le Publique clé:

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

Déplacez ces touches sur ~/.ssh et assurez-vous que les autorisations sont définies sur 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é de réaliser un 'clone de git'opération que vous pourriez avoir besoin de faire aussi

chmod 666 ~/.ssh/known_hosts

231
2018-01-12 18:03



salut j'ai déjà un .pub alors il faut recréer une clé publique - Amit Bera
Si vous êtes venu ici pour savoir comment le faire dans Windows, lancez "puttygen yourkey.ppk", puis dans le menu Conversions, choisissez "Exporter la clé OpenSSH" pour obtenir la clé privée. - Ryan Shillington
la solution de @jous est beaucoup plus agréable puisque vous n'avez pas besoin de la clé privée pour convertir une clé publique + vous n'avez pas besoin d'installer de mastic - Tobi
Je devais ajouter cette clé à mon ./ssh/config fichier Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes - vladkras
Certains formats de courbes elliptiques (ECDS, etc.) ne sont disponibles que dans les outils de mastic bêta. - DanFromGermany


ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i l'indicateur est importé d'un format autre que openssh
  • -f indicateur signifie lire depuis le fichier d'entrée

Source: a blogpost à burnz.wordpress.com


34
2018-03-06 14:53



Les fichiers .ppk sont les paires de clés complètes, je ne pense pas que la commande ci-dessus ou la publication du blog s'applique à cela. - Peter Becker
Je pense que je voulais dire que cela fonctionne si vous utilisez le bouton "Enregistrer la clé publique" de puttygen. ssh-keygen ne comprend pas les vrais fichiers .ppk car il leur manque ces marqueurs «---- BEGIN SSH2 PUBLIC KEY ----». Vous pouvez trouver la clé publique dans le fichier .ppk entre les lignes "Lignes publiques: .." et "Lignes privées: ..". - jous
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 a été de réorganiser la partie base-64 en une seule ligne - Jasen
Cela ne semble pas couvrir les clés privées, c'est pourquoi je voudrais faire la conversion, j'ai déjà une clé publique enregistrée quelque part ... - Gert van den Berg


Obtenez la clé privée:

Ouvrez le fichier .ppk dans puttygen:

puttygen ~/.ssh/id_dsa.ppk

exporter en tant que openssh:

Conversions → Exporter la clé OpenSSH

Obtenez la clé publique:

ouvert comme avant le Clé privée avec puttygen, la clé publique est sous clé publique à coller dans le fichier OpenSSH authorized_keys


5
2017-10-15 08:47





J'ai préparé un conteneur Docker pour simplifier la vie:

docker run --rm \
           --volume=/path/to/file.ppk:/tmp/id_dsa.ppk \
           --volume=/path/to/output:/tmp/out/ \
           czerasz/putty-tools

Où:

  • /path/to/file.ppk - chemin local de votre fichier ppk
  • /path/to/output - chemin local vers lequel la clé privée et la clé publique doivent être placées

3
2018-03-07 11:43



génial. merci pour l'image! cependant en attendant sa --volume=/path/to/file.ppk:/tmp/id.ppk et pas id_dsa.ppk - pHiL