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:
gpgkey2ssh BFB2E5E3 | tee -a ~/.ssh/authorized_keys
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:
gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
gpg --armor --export BFB2E5E3! | tee ~/.ssh/id_rsa.pub
chmod 400 ~/.ssh/id_rsa
ssh localhost
Usando gpg-agent
gpg-agent
tem a opção --enable-ssh-support
que permite usá-lo como um substituto para o conhecido ssh-agent
. Eu li algumas pessoas tentando adicionar por meio da ssh-add
chave GPG após o lançamento gpg-agent
desta maneira:
gpg-agent --enable-ssh-support --daemon
gpg --armor --export-secret-key BFB2E5E3! | tee ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
ssh-add ~/.gnupg/exported-keys/BFB2E5E3_sec.asc
Mas acho que isso nunca funcionará. A página de manual do gpg-agent diz:
As chaves SSH, que devem ser usadas por meio do agente, precisam ser adicionadas ao gpg-agent inicialmente por meio do utilitário ssh-add. Quando uma chave é adicionada, o ssh-add solicita a senha do arquivo de chaves fornecido e envia o material da chave não protegido ao agente; isso faz com que o gpg-agent solicite uma senha, que deve ser usada para criptografar a chave recém-recebida e armazená-la em um diretório específico do gpg-agent.
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:
gpgsm -o secret-gpg-key.p12 --export-secret-key-p12 0xXXXXXXXX
openssl pkcs12 -in secret-gpg-key.p12 -nocerts -out gpg-key.pem
chmod 600 gpg-key.pem
cp gpg-key.pem ~/.ssh/id_rsa
ssh-keygen -y -f gpg-key.pem > ~/.ssh/id_rsa.pub
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 # 11 ssh
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.
flag
link abaixo da pergunta), em vez de postar a mesma resposta duas vezes. Obrigado pela resposta detalhada!gpg --armor --export-secret-key BFB2E5E3! |tee ~/.ssh/id_rsa
. Você está usandotee
apenas para ver a saída? A saída deste comando não é adequada para uso porssh-add
; o geradoid_rsa
arquivo não pode ser carregado em qualquerssh-agent
ougpg-agent
, nem pode ser utilizado directamente porssh
.Tecnicamente sim, as chaves PGP podem ser usadas para autenticação SSH. O que as pessoas chamam de "chave PGP" é mais um certificado , contendo RSA, ECDSA ou outros pares de chaves comuns (a chave primária e subchaves), juntamente com os metadados do certificado. De fato, existe até um sinalizador de uso "autenticação" definido.
Não é recomendável usar a mesma chave para várias finalidades; no entanto, isso é facilmente resolvido, pois você pode adicionar facilmente uma subchave somente de autenticação ao seu certificado PGP (via
gpg --expert --edit-key
). Você terá uma chave primária de assinatura / certificação, uma subchave de criptografia e uma subchave de autenticação.Na prática, porém, não consegui descobrir como autenticar usando uma chave PGP diretamente, embora tenha sido preguiçoso demais para experimentar várias idéias. O conjunto Monkeysphere possui uma ferramenta para adicionar suas subchaves de autenticação GPG ao ssh-agent, deve ser simples. Mas deve haver algumas postagens mais antigas do Superusuário sobre isso.
fonte
monkeysphere subkey-to-ssh-agent
para carregar sua chave no agente.