Frage Wie konvertiert man den .ppk Schlüssel zu OpenSSH Schlüssel unter Linux?


Ich weiß, dass es möglich ist, .ppk unter Puttygen in Windows zu konvertieren, aber wie geht das unter Linux? Ist das möglich ?


157
2018-01-12 17:56


Ursprung




Antworten:


Mach es mit Putty.

  • Linux: Installieren Sie mit Ihrem Paketmanager PuTTY (oder die minimaleren PuTTY-Tools):

    • Ubuntu sudo apt-get install putty-tools
    • Debian-ähnlich apt-get install putty-tools
    • RPM basiert yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • etc.
  • OS X: Installieren Homebrew, dann renne brew install putty

Legen Sie Ihre Schlüssel in ein Verzeichnis, z. Ihr Heimatordner. Konvertieren Sie nun die PPK-Schlüssel in SSH-Schlüsselpaare: Cache-Suche

Um das zu generieren Privatgelände Schlüssel:

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

und um das zu generieren Öffentlichkeit Schlüssel:

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

Verschieben Sie diese Tasten zu ~/.ssh und stellen Sie sicher, dass die Berechtigungen für Ihren privaten Schlüssel auf privat festgelegt sind:

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

Wenn Sie bereits versucht haben, eine 'Git Klon"Operation müssen Sie dies möglicherweise auch tun

chmod 666 ~/.ssh/known_hosts

231
2018-01-12 18:03



Hi, ich habe bereits eine .pub, dann ist es notwendig, öffentlichen Schlüssel wieder zu erstellen - Amit Bera
Wenn du hierher gekommen bist, um nach der Vorgehensweise in Windows zu suchen, führe "puttygen yourkey.ppk" aus und wähle dann im Menü "Conversions" "Export OpenSSH key" aus, um den privaten Schlüssel zu erhalten. - Ryan Shillington
Die Lösung von @jous ist viel schöner, da Sie keinen privaten Schlüssel benötigen, um einen öffentlichen Schlüssel zu konvertieren + Sie müssen Kitt nicht installieren - Tobi
Ich musste diesen Schlüssel zu meinem hinzufügen ./ssh/config Datei Host mysite.com Hostname mysite.com IdentityFile ~/.ssh/id_dsa IdentitiesOnly yes - vladkras
Einige elliptische Kurvenformate (ECDS usw.) sind nur in den Beta-Putty-Tools verfügbar. - DanFromGermany


ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub
  • -i Flag wird aus einem anderen Format als openssh importiert
  • -f-Flag bedeutet Lesen aus der Eingabedatei

Quelle: a Blogeintrag bei burnz.wordpress.com


34
2018-03-06 14:53



.ppk-Dateien sind die vollständigen Schlüsselpaare, ich glaube nicht, dass der obige Befehl oder der Blog-Eintrag darauf angewendet werden. - Peter Becker
Ich denke, ich meinte, dass es funktioniert, wenn Sie die Schaltfläche "öffentlichen Schlüssel speichern" von Puttygen verwenden. ssh-keygen versteht echte .ppk-Dateien nicht, weil ihnen die Markierungen "---- BEGIN SSH2 PUBLIC KEY ----" fehlen. Sie können den öffentlichen Schlüssel jedoch in der .ppk-Datei zwischen den Zeilen "Public-Lines: .." und "Private-Lines: .." finden. - jous
Dies funktionierte für mich mit einer Public-Key-Datei - Puttygen scheint einen privaten Schlüssel zu benötigen. Es scheint, dass alles, was es getan hat, war, den 64er Base Teil in eine einzige Linie umzuordnen - Jasen
Dies scheint private Schlüssel nicht zu umfassen, weshalb ich die Konvertierung durchführen möchte, ich habe bereits einen öffentlichen Schlüssel irgendwo gespeichert ... - Gert van den Berg


Erhalte den privaten Schlüssel:

Öffnen Sie die .ppk-Datei in Puttygen:

puttygen ~/.ssh/id_dsa.ppk

Export als openssh:

Konvertierungen → Export OpenSSH-Schlüssel

Erhalte den öffentlichen Schlüssel:

offen wie vor dem Privat Schlüssel mit Puttygen ist der öffentliche Schlüssel unter Öffentlicher Schlüssel zum Einfügen in die OpenSSH-Datei authorized_keys


5
2017-10-15 08:47





Ich habe einen Docker-Container vorbereitet, um das Leben einfacher zu machen:

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

Woher:

  • /path/to/file.ppk - lokaler Pfad zu Ihrer PPK-Datei
  • /path/to/output - Lokaler Pfad zu dem Ort, an dem der private und der öffentliche Schlüssel platziert werden sollen

3
2018-03-07 11:43



groß. Danke für das Bild! aber mittlerweile ist es --volume=/path/to/file.ppk:/tmp/id.ppk und nicht id_dsa.ppk - pHiL