Existe uma maneira de criar um arquivo id_ed25519 (não id_ed25519.pub) de um par de chaves ed25519 armazenado no GnuPG?
Eu 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 opção --export-ssh-key
no GnuPG disponível desde 2.1. Isso funciona para as chaves RSA e 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 privada do RSA, 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 que uso:
$ ssh-keygen -p -f id_rsa
Na estação de trabalho do Windows, converto a chave em algo que o PuTTY pode entender com o PuTTYGen.
Isso se desfaz com as chaves ed25519 porque openpgp2ssh
não manipula chaves ed25519.
Pelo que posso dizer, algumas pessoas estão usando suas chaves GPG diretamente com o SSH, mas isso não funciona para mim. Eu preciso da chave privada separada para usar com o PuTTY no Windows.