Экспортировать закрытый ключ ed25519 из GnuPG для использования в SSH

Экспортировать закрытый ключ ed25519 из GnuPG для использования в SSH

Есть ли способ создать файл id_ed25519 (не id_ed25519.pub) из пары ключей ed25519, хранящейся в GnuPG?

Я начал отслеживать свои SSH-ключи в 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]

Чтобы экспортировать мои открытые ключи для использования по SSH, я использую опцию --export-ssh-keyв GnuPG, которая доступна с версии 2.1. Это работает как для ключей RSA, так и для ключей ed25519.

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

(Значок ! заставляет GnuPG использовать указанный подключаемый ключ, а не первый доступный ключ аутентификации.)

Для экспорта закрытого ключа RSA я использовал следующий рабочий процесс:

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

Это создает закрытый ключ RSA, который может понять SSH, но без парольной фразы.

Чтобы повторно добавить парольную фразу, я использую:

$ ssh-keygen -p -f id_rsa

На своей рабочей станции Windows я преобразую ключ в то, что PuTTY понимает, с помощью PuTTYGen.

Это не работает с ключами ed25519, поскольку openpgp2sshне обрабатывает ключи ed25519.

Насколько я могу судить, некоторые люди используют свои связки ключей GPG с SSH напрямую, но мне это не подойдет. Мне нужно, чтобы закрытый ключ был отделен для использования с PuTTY в Windows.

Связанный контент