Есть ли способ создать файл id_ed25519 (не id_ed25519.pub) из пары ключей ed25519, хранящейся в GnuPG?
Я начал отслеживать свои SSH-ключи в GPG:
sec rsa3072 2017-12-12 [C]
DDD8CEFDE281D48CBBF0C56FE2AA8C94C8A7C456
uid [ultimate] Dave <dave@example.com>
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.