Quero gerar uma RSA
chave GPG
e usá-la no SSH
login. Isso é possível? Se sim, como?
edit: veja a resposta da @ wwerner, não tentei, mas parece ser a solução atual (a partir de 2018)
ssh
gnupg
public-key
private-key
destan
fonte
fonte
Estou pesquisando sobre esse tópico e posso dar algumas dicas, mas ainda não encontrei uma maneira de fazê-lo funcionar.
Monkeysphere
O Monkeysphere parece um projeto muito interessante, mas não consegui compilá-lo no Mac OS X sem obstruir meu pequeno espaço livre em disco com o MacPorts.
Usando gpgkey2ssh
A primeira maneira que sugiro que você tente é gerar uma entrada compatible_keys compatível a partir do seu ID de chave (por exemplo, BFB2E5E3) com
Aqui eu o adicionei ao meu host local desde que executei um servidor ssh para fins de teste, mas é claro que você deve adicioná-lo ao host de destino
~/.ssh/authorized_keys
. Em seguida, você precisa dizer ao SSH para usar a parte privada dessa chave durante a autenticação, mas simplesmente exportar uma versão blindada ASCII do par de chaves não funciona:Usando gpg-agent
gpg-agent
tem a opção--enable-ssh-support
que permite usá-lo como um substituto para o bem conhecidossh-agent
. Eu li algumas pessoas tentando adicionar por meio dassh-add
chave GPG após o lançamentogpg-agent
desta maneira:Mas acho que isso nunca funcionará. A página de manual do gpg-agent diz:
Portanto, parece que
gpg-agent
deve ser usado como uma medida adicional para proteger suas chaves SSH com uma criptografia GPG.Convertendo uma chave GPG para OpenSSH
Jérôme Pouiller em seu blog escreve que o utilitário Gpgsm pode exportar chaves e certificados no PCSC12; eles podem ser usados pelo OpenSSH:
Mas não encontrei uma maneira de
gpgsm
aceitar meus pares de chaves gpg.Outras coisas que você pode tentar
O SSH tem uma
-I
opção para especificar que a biblioteca compartilhada PKCS # 11ssh
deve usar para se comunicar com um token PKCS # 11, fornecendo a chave RSA privada do usuário.ssh-keygen
pode usar a chave pública ou privada RFC4716 / SSH2, chaves públicas PEM PKCS8 e chaves públicas PEM para gerar uma chave privada (ou pública) compatível com OpenSSH usando as opções-i
e-m
.Ainda não consigo encontrar uma maneira de juntar tudo.
fonte
gpgkey2ssh
foi substituído pela--export-ssh-key
versão 2.1.11 (26-01-16 2016). Levei um tempo para perceber isso. O uso égpg --export-ssh-key BFB2E5E3
.Não, eles não são intercambiáveis. Sim, é possível usar chaves GPG para autenticação - o pacote Monkeysphere possui ferramentas para extrair o par de chaves bruto RSA do seu certificado GPG.
Seu certificado GPG precisará de uma subchave com o sinalizador de capacidade "autenticação". Para criar essa subchave, execute uma vez:
Agora adicione suas subchaves de autenticação ao ssh-agent :
Um pouco relevante: esse tópico do gnupg-users .
fonte
Com as informações das respostas desta pergunta e a ajuda da lista de discussão gnupg-users, consegui descobrir como usar minha chave GPG para autenticação SSH. Como já mencionado por Claudio Floreani em sua resposta, existem alguns métodos possíveis para fazer isso.
Eu escrevi um post no blog sobre algumas soluções possíveis: http://budts.be/weblog/2012/08/ssh-authentication-with-your-pgp-key
Para resumir: Você pode usar o GnuPG 2.1, que está atualmente na versão beta. Ao usar esta versão, você pode simplesmente iniciar o gpg-agent com a opção --enable-ssh-support e adicionar o keygrip da sua chave GPG (ou subchave) em ~ / .gnupg / sshcontrol.
Quando você estiver usando a versão estável atual do GnuPG (2.0.x), poderá usar o monkeysphere para adicionar sua chave ao gpg-agent (novamente, depois de iniciar o gpg-agent com a opção --enable-ssh-support).
Também é possível usar o chaveiro GNOME (ou mesmo o agente ssh comum) com a ajuda do monkeysphere. O único problema nesse caso é que você precisará adicionar novamente sua chave ao fazer logon novamente (no Gnome ou no XFCE). Para resolver isso, você pode exportar manualmente sua chave e convertê-la.
fonte