Wie konvertiert man einen .ppk-Schlüssel in einen OpenSSH-Schlüssel unter Linux?

235353
marioosh

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

163

4 Antworten auf die Frage

241
Stanley Williams

Mach es mit Putty.

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

    • Ubuntu sudo apt-get install putty-tools
    • Debian-like apt-get install putty-tools
    • RPM basiert yum install putty
    • Gentoo emerge putty
    • Archlinux sudo pacman -S putty
    • usw.
  • OS X: Homebrew installieren, dann ausführenbrew install putty

Legen Sie Ihre Schlüssel in einem Verzeichnis ab, z. B. in Ihrem Home-Ordner. Wandeln Sie nun die PPK-Schlüssel in SSH-Schlüsselpaare um: Cache-Suche

So generieren Sie den privaten Schlüssel:

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

und um den öffentlichen Schlüssel zu generieren :

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

Verschieben Sie diese Schlüssel auf ~/.sshund stellen Sie sicher, dass die Berechtigungen für Ihren privaten Schlüssel auf privat gesetzt 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 clone' -Operation auszuführen, müssen Sie dies möglicherweise auch tun

chmod 666 ~/.ssh/known_hosts 
Hallo, ich habe bereits ein .pub, dann muss der öffentliche Schlüssel erneut erstellt werden Amit Bera vor 9 Jahren 0
Wenn Sie hierher gesucht haben, wie es in Windows zu tun ist, führen Sie "puttygen yourkey.ppk" aus und wählen Sie dann im Menü "Conversions" die Option "OpenSSH-Schlüssel exportieren", um den privaten Schlüssel zu erhalten. Ryan Shillington vor 9 Jahren 1
Die Lösung von @jous ist viel netter, da Sie keinen privaten Schlüssel zum Konvertieren eines öffentlichen Schlüssels benötigen. + Sie müssen keinen Kitt installieren Tobi vor 8 Jahren 1
Ich musste diesen Schlüssel zu meiner `. / Ssh / config`-Datei hinzufügen.` Host mysite.com Hostname mysite.com IdentityFile ~ / .ssh / id_dsa IdentitiesOnly yes` vladkras vor 8 Jahren 0
Einige elliptische Kurvenformate (ECDS usw.) sind nur in den Beta-Kitt-Werkzeugen verfügbar. DanFromGermany vor 8 Jahren 0
36
jous
ssh-keygen -i -f id_dsa_1024_a.pub > id_dsa_1024_a_openssh.pub 
  • -i flag is import from other than openssh format
  • -f flag means read from input file

Source: a blogpost at burnz.wordpress.com

PPK-Dateien sind die vollständigen Schlüsselpaare. Ich denke nicht, dass der obige Befehl oder der Blog-Post darauf zutreffen. Peter Becker vor 11 Jahren 16
I think I meant that it works if you use puttygen's "Save public key" button. ssh-keygen do not understand true .ppk files because they lack those '---- BEGIN SSH2 PUBLIC KEY ----' markers. You can find the public key in the .ppk file between lines "Public-Lines:.." and "Private-Lines:.." though. jous vor 10 Jahren 2
Dies funktionierte für mich mit einer Datei mit öffentlichen Schlüsseln - Puttygen scheint einen privaten Schlüssel zu benötigen. Es scheint, dass alles, was es getan hat, war, den Basis-64-Teil in eine einzige Zeile umzuordnen Jasen vor 9 Jahren 1
Dies scheint private Schlüssel nicht zu erfassen, weshalb ich die Konvertierung durchführen möchte. Ich habe bereits irgendwo einen öffentlichen Schlüssel gespeichert ... Gert van den Berg vor 8 Jahren 1
5
Bar Horing

Holen Sie sich den privaten Schlüssel:

Öffnen Sie die PPK-Datei in Puttygen:

puttygen ~/.ssh/id_dsa.ppk 

als openssh exportieren:

Konvertierungen → OpenSSH-Schlüssel exportieren

Holen Sie sich den öffentlichen Schlüssel:

Wie vor dem privaten Schlüssel mit puttygen geöffnet, befindet sich der öffentliche Schlüssel unter dem öffentlichen Schlüssel zum Einfügen in die OpenSSH-Datei authorized_keys

4
czerasz

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

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 der private und der öffentliche Schlüssel platziert werden sollen
großartig. Danke für das Bild! In der Zwischenzeit ist es jedoch `--volume = / path / to / file.ppk: / tmp / id.ppk` und nicht` id_dsa.ppk` pHiL vor 7 Jahren 1