Exportar clave privada ed25519 desde GnuPG para usar en SSH

Exportar clave privada ed25519 desde GnuPG para usar en SSH

¿Hay alguna manera de crear un archivo id_ed25519 (no id_ed25519.pub) a partir de un par de claves ed25519 almacenado en GnuPG?

Empecé a realizar un seguimiento de mis claves SSH en GPG:

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]

Para exportar mis claves públicas para usarlas en SSH, estoy usando la --export-ssh-keyopción en GnuPG que ha estado disponible desde 2.1. Esto funciona tanto para las claves RSA como para las ed25519.

$ gpg -o id_rsa.pub --export-ssh-key 5D61D0F9!
$ gpg -o id_ed25519.pub --export-ssh-key 0A072B72!

(! Obliga a GnuPG a utilizar la subclave especificada y no la primera clave de autenticación disponible).

Para exportar la clave RSA privada, he utilizado un flujo de trabajo como este:

$ gpg --export-secret-subkeys \
--export-options export-reset-subkey-passwd 0A072B72! | \
openpgp2ssh 0A072B72 > id_rsa

Esto crea una clave privada RSA que SSH puede entender, pero sin frase de contraseña.

Para volver a agregar una frase de contraseña uso:

$ ssh-keygen -p -f id_rsa

En mi estación de trabajo Windows convierto la clave en algo que PuTTY pueda entender con PuTTYGen.

Esto se desmorona con las claves ed25519 porque openpgp2sshno maneja las claves ed25519.

Por lo que puedo decir, algunas personas están usando sus llaveros GPG con SSH directamente, pero eso no funcionará para mí. Necesito separar la clave privada para usarla con PuTTY en Windows.

información relacionada