.ppk-Schlüssel in OpenSSH umwandeln und zurück

Führen Sie puttygen key.ppk -O private-openssh -o id_ed25519 aus. Das schreibt einen privaten OpenSSH-Schlüssel, den ssh verwenden kann, und behält dieselbe Passphrase. In die andere Richtung gehen Sie mit puttygen id_ed25519 -O private -o key.ppk. Unter Debian und Ubuntu liegt das Werkzeug im Paket putty-tools.

Nach der Umwandlung bewahrt Wardterm den Schlüssel in einem verschlüsselten Vault auf und trägt ihn für Sie auf Ihren Servern ein. Zeigen

Aktualisiert am . Alle Befehle liefen mit Version 0.83 des PPK-Werkzeugs unter Debian 13, mit ed25519- und RSA-3072-Schlüsseln, mit und ohne Passphrase.

Warum Sie umwandeln müssen

OpenSSH kann das PPK-Format nicht lesen. Wenn Sie ihm direkt eine .ppk-Datei geben, scheitert es. Auf unserem Testsystem lautete die Meldung wie unten, andere Versionen zeigen eine andere, etwa die unter invalid format:

Load key "key.ppk": error in libcrypto

Die Umwandlung ändert nur das Dateiformat. Der Schlüssel bleibt derselbe, Server, die ihn bereits akzeptieren, akzeptieren ihn also weiter.

Das Umwandlungswerkzeug installieren

# Debian and Ubuntu
sudo apt install putty-tools

# macOS with Homebrew
brew install putty

Von .ppk zu OpenSSH

puttygen key.ppk -O private-openssh -o ~/.ssh/id_ed25519
puttygen key.ppk -O public-openssh -o ~/.ssh/id_ed25519.pub

Hat der Schlüssel eine Passphrase, fragt puttygen danach. Die neue Datei behält dieselbe Passphrase. Prüfen Sie dann das Ergebnis:

ssh-keygen -lf ~/.ssh/id_ed25519.pub
puttygen key.ppk -O fingerprint

Beide geben denselben SHA256:-Fingerabdruck aus. Die Ausgabedatei wurde in unserem Test mit Modus 600 angelegt, was ssh verlangt. Beschwert sich ssh trotzdem, siehe unprotected private key file.

Wie Sie aus einem OpenSSH-Schlüssel nur die Zeile mit dem öffentlichen Schlüssel erhalten, steht unter öffentlichen Schlüssel aus dem privaten erzeugen.

RSA-Schlüssel: altes oder neues Format

Bei einem RSA-Schlüssel schreibt private-openssh das alte Format, mit BEGIN RSA PRIVATE KEY als erster Zeile. Bei ed25519 schreibt es immer das neue. Wollen Sie das neuere Format auch für RSA, nutzen Sie:

puttygen key.ppk -O private-openssh-new -o ~/.ssh/id_rsa

Aktuelles OpenSSH liest beide. Nehmen Sie das alte nur für ein Werkzeug, das BEGIN OPENSSH PRIVATE KEY nicht lesen kann.

Von OpenSSH zu .ppk

puttygen ~/.ssh/id_ed25519 -O private -o key.ppk

Prüfen Sie die erste Zeile der neuen Datei:

PuTTY-User-Key-File-3: ssh-ed25519

PPK Version 3 und ältere Werkzeuge

Diese 3 ist die Formatversion. Sie ist seit 2021 der Standard. Sie schützt Passphrasen mit Argon2, und Werkzeuge von vor 2021, die PPK-Dateien akzeptieren, können sie nicht lesen. Für diese schreiben Sie Version 2:

puttygen ~/.ssh/id_ed25519 -O private -o key.ppk --ppk-param version=2

Die erste Zeile lautet dann PuTTY-User-Key-File-2. Version 2 widersteht dem Raten der Passphrase schlechter, nehmen Sie sie also nur, wenn es sein muss, und aktualisieren Sie das Werkzeug, sobald Sie können.

Skriptgesteuert mit Passphrase

Diese Optionen lesen die Passphrase aus einer Datei, statt zu fragen. Legen Sie die Datei an einem privaten Ort ab und löschen Sie sie danach:

puttygen key.ppk --old-passphrase pass.txt -O private-openssh -o id_ed25519

Fügen Sie --new-passphrase newpass.txt hinzu, um eine andere zu setzen. Um die Passphrase zu entfernen, nehmen Sie eine leere Datei oder /dev/null. Tun Sie das nur, wenn Sie den Schlüssel wirklich ungeschützt lassen wollen.

Mit dem Fenster des Schlüsselgenerators unter Windows

  1. Klicken Sie auf Load und öffnen Sie die .ppk-Datei, oder nutzen Sie für einen OpenSSH-Schlüssel Conversions und dann Import.
  2. Um OpenSSH zu schreiben, nutzen Sie Conversions und dann Export OpenSSH key.
  3. Um PPK zu schreiben, klicken Sie auf Save private key.

Fragen

Kann OpenSSH eine .ppk-Datei verwenden?

Nein. ssh liest das PPK-Format nicht. Wandeln Sie den Schlüssel zuerst wie oben gezeigt um und verwenden Sie die neue Datei.

Ändert die Umwandlung einer .ppk-Datei den Schlüssel?

Nein. Nur das Dateiformat ändert sich, Server, die den Schlüssel akzeptieren, akzeptieren ihn also weiter. Der Fingerabdruck ist vorher und nachher gleich.

Kann ssh-keygen einen privaten .ppk-Schlüssel umwandeln?

Nein. ssh-keygen liest keine privaten PPK-Schlüssel. Verwenden Sie das oben gezeigte Umwandlungswerkzeug.

Quellen

Mehr zu Schlüssel und Anmeldung

Alle Anleitungen