
Gibt es eine Möglichkeit, aus einem in GnuPG gespeicherten ed25519-Schlüsselpaar eine id_ed25519-Datei (nicht id_ed25519.pub) zu erstellen?
Ich habe begonnen, meine SSH-Schlüssel in GPG zu verfolgen:
sec rsa3072 2017-12-12 [C]
DDD8CEFDE281D48CBBF0C56FE2AA8C94C8A7C456
uid [ultimate] Dave <[email protected]>
ssb rsa3072 2017-12-12 [S]
ssb rsa3072 2017-12-12 [E]
ssb rsa3072 2017-12-12 [A]
ssb ed25519 2017-12-12 [A]
Um meine öffentlichen Schlüssel für die Verwendung per SSH zu exportieren, verwende ich die --export-ssh-key
seit 2.1 verfügbare Option in GnuPG. Dies funktioniert sowohl für den RSA- als auch für den ed25519-Schlüssel.
$ gpg -o id_rsa.pub --export-ssh-key 5D61D0F9!
$ gpg -o id_ed25519.pub --export-ssh-key 0A072B72!
(Das ! zwingt GnuPG, den angegebenen Unterschlüssel und nicht den ersten verfügbaren Authentifizierungsschlüssel zu verwenden.)
Zum Exportieren des privaten RSA-Schlüssels habe ich einen Workflow wie diesen verwendet:
$ gpg --export-secret-subkeys \
--export-options export-reset-subkey-passwd 0A072B72! | \
openpgp2ssh 0A072B72 > id_rsa
Dadurch wird ein privater RSA-Schlüssel erstellt, den SSH verstehen kann, jedoch ohne Passphrase.
Um eine Passphrase erneut hinzuzufügen, verwende ich:
$ ssh-keygen -p -f id_rsa
Auf meiner Windows-Arbeitsstation konvertiere ich den Schlüssel mit PuTTYGen in etwas, das PuTTY verstehen kann.
Dies schlägt bei ed25519-Schlüsseln fehl, da openpgp2ssh
ed25519-Schlüssel nicht verarbeitet werden.
Soweit ich weiß, verwenden manche Leute ihre GPG-Schlüsselbunde direkt mit SSH, aber das funktioniert bei mir nicht. Ich brauche den privaten Schlüssel separat, um ihn mit PuTTY unter Windows verwenden zu können.