
Existe uma maneira de criar um arquivo id_ed25519 (não id_ed25519.pub) a partir de um par de chaves ed25519 armazenado no GnuPG?
Comecei a acompanhar minhas chaves SSH no 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 minhas chaves públicas para uso por SSH, estou usando a --export-ssh-key
opção no GnuPG que está disponível desde 2.1. Isso funciona tanto para as chaves RSA quanto para as chaves ed25519.
$ gpg -o id_rsa.pub --export-ssh-key 5D61D0F9!
$ gpg -o id_ed25519.pub --export-ssh-key 0A072B72!
(O ! força o GnuPG a usar a subchave especificada e não a primeira chave de autenticação disponível.)
Para exportar a chave RSA privada, usei um fluxo de trabalho como este:
$ gpg --export-secret-subkeys \
--export-options export-reset-subkey-passwd 0A072B72! | \
openpgp2ssh 0A072B72 > id_rsa
Isso cria uma chave privada RSA que o SSH pode entender, mas sem senha.
Para adicionar novamente uma senha eu uso:
$ ssh-keygen -p -f id_rsa
Na minha estação de trabalho Windows, converto a chave em algo que o PuTTY possa entender com o PuTTYGen.
Isso desmorona com as chaves ed25519 porque openpgp2ssh
não suporta chaves ed25519.
Pelo que sei, algumas pessoas estão usando seus chaveiros GPG diretamente com SSH, mas isso não funciona para mim. Preciso separar a chave privada para usar com o PuTTY no Windows.