Wie konvertiert man einen PPK in einen privaten openSSH-Schlüssel, der mit einer Passphrase verschlüsselt ist?

6079
B T

Als ich meinen privaten Schlüssel in PuttyGen exportierte, ging ich davon aus, dass die von mir eingestellte Passphrase auch für die openSSH-Version verwendet wurde. Ich finde, dass die von mir eingegebene Passphrase nicht funktioniert. Wie kann ich meinen privaten Schlüssel mit einer Passphrase richtig im openSSH-Format exportieren?

Um den exportierten ssh-Schlüssel nach Linux zu übertragen, habe ich ihn einfach in nano eingefügt und versucht, ihn mit ssh-add hinzuzufügen. Es fordert mich zur Eingabe einer Passphrase auf, akzeptiert jedoch nicht die von mir angegebene. PuttyGen importiert es mit dieser Passphrase gut ..

4
Versuchen Sie, Ihre Frage unter Verwendung der Begriffe "Kennwort" und "Passphrase" korrekt zu formulieren. Sie scheinen einen Fehler für einen anderen zu haben, wodurch Ihre Frage schwer zu folgen ist. Martin Prikryl vor 9 Jahren 0

1 Antwort auf die Frage

1
grawity

The Windows PuTTYgen's "Export OpenSSH key" does encrypt the key with 3DES-CBC. If the passphrase is non-empty, the output file says so:

-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,157A04D5AE43F45B NiGUXnTOhATzg4dGvyXs8rzetF7KpplJJIKrZvQunXuVcZhVS+NTpnTgwJb+zOCm ... 

I've tested this on various versions over the past 4 years. If the passphrase is empty, I even get an "Are you sure?" prompt.

The Linux puttygen also always uses the same passphrase when converting.


For RSA & DSA keys, OpenSSH uses the same 'raw' key format as OpenSSL. So if 3DES-CBC is not sufficient, you can use the openssl command-line tool to reencrypt them:

openssl rsa -aes-128-cbc < old.key > new.key 

On Unix of course OpenSSH's own ssh-keygen is better:

ssh-keygen -p -f old.key 
Das Seltsame ist, dass wenn ich den Schlüssel exportiere, ihn auf einen Centos-Rechner kopiere und ein ssh-add mache, er nach der Passphrase frage und wenn ich ihn stecke, wird mir gesagt, dass er falsch ist. Wenn ich die Eingabetaste drücke, wenn es mich dazu auffordert, wird es ohne Kommentar beendet - was ich als passwortlosen Eintrag betrachtete. Ich kann über ssh-add -l sehen, dass keine Schlüssel geladen wurden. Warum funktioniert das Kennwort meines Schlüssels nicht? B T vor 9 Jahren 0
Ist Whitespace vor oder nach den Teilen des "privaten / privaten RSA-Schlüssels" wichtig? Die Art und Weise, wie ich meinen Schlüssel erstellt habe, bestand darin, ihn in Nano einzufügen. B T vor 9 Jahren 0
@ BT: Ja; Sie können leere Zeilen und Sachen um den gesamten Schlüssel herum haben, jedoch nicht innerhalb des Schlüssels. grawity vor 9 Jahren 0
Hm, das dachte ich mir. Sehr eigenartig.. B T vor 9 Jahren 0
@BT Insbesondere alle Zeilenumbrüche innerhalb des Bindestrich-BEGIN in Bindestrich-END-Block müssen gleich bleiben, einschließlich genau einer Leerzeile zwischen DEK-Info und der ersten base64. Hat `openssl rsa dave_thompson_085 vor 9 Jahren 0