Estou solucionando problemas de acesso ao servidor SSH (servidor do fornecedor, não meu). Tenho uma chave GPG rsa4096 com frase-senha e com subchave Authentication. Exportei a chave ssh para a subchave, verifiquei duas vezes se é a correta e enviei, mas não consigo acessar o servidor.
Adicionei o keygrip de autenticação a ~/.gnupg/sshcontrol, adicionei enable-ssh-support
a ~/.gnupg/gpg-agent.conf e use-agent
a ~/.gnupg/gpg.conf. Também adicionei o seguinte ao meu .bashrc
export GPG_TTY="$(tty)"
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent
Para solução de problemas, usei a opção verbose e notei que todas as minhas chaves de autenticação adicionadas e as chaves ./.ssh/id_* inexistentes são tentadas. Eu queria especificar qual chave seria usada para autenticação especificando as opções IdentitiesOnly e IdentityFile em ~/.ssh/config para seu host. Então, tentei duas coisas:
- Exporte a subchave privada usando gpg e adicione seu caminho como IdentiyFile. Isso não funcionou com "erro em libcrypto". Li que tem algo a ver com formatação, onde gpg não é imediatamente compatível com chaves ssh.
- Exporte a chave pública (tentei tanto armored quanto unaromored) usando gpg e adicione seu caminho como IdentiyFile. Isso também não funcionou e os logs mostram o mesmo "erro em libcrypto". Estranhamente, eles indicam que está sendo tentado como uma chave privada.
debug1: Trying private key: /home/me/.ssh/gpg.pub
Não posso descartar que o fornecedor cometeu um erro ao registrar minhas chaves, mas também não posso descartar que eu não tenha feito nada errado. Alguma ideia?
Eu uso gpg 2.2.27