Atualmente, tenho uma chave SSH que utilizo há algum tempo e gostaria de começar a usar o GnuPG com um novo chaveiro. No entanto, como usei minha chave por muito tempo, eu ainda gostaria de usá-la no GPG como chave principal / principal. Tentei importar a chave através destas instruções .
Mas, acabo com o que é considerado uma "subchave". Além disso, se eu tentar importá-lo sem criar uma chave GPG padrão, o GPG nem verá essa subchave. (Suponho que a subchave precise ser assinada pela chave principal primeiro.)
Como uso essa chave como chave principal em secring.gpg?
Respostas:
A resposta simples é: você não.
As chaves SSH e GnuPG (na verdade, OpenPGP) são completamente diferentes, mesmo que os dois protocolos possam usar pares de chaves RSA.
Além disso, por que você quer fazer isso? Mesmo se você usar o mesmo material de chave para compor sua chave PGP, ainda precisará distribuir sua chave como uma chave PGP. Você provavelmente não distribuiu sua chave pública SSH para as pessoas com as quais se corresponde, portanto, do ponto de vista da distribuição de chaves, não há diferença: elas precisarão receber uma chave pública de você. E mesmo que você tenha distribuído sua chave pública SSH para outras pessoas, elas precisariam executar algumas etapas adicionais para poder importá-la para a implementação do OpenPGP, o que pode ou não ser fácil.
Como kasperd bem apontou, deve haver apenas uma maneira de interpretar (particularmente) uma assinatura. Se você usasse a mesma chave para PGP e SSH, se alguém pudesse induzi-lo a assinar uma mensagem especialmente criada (que é um recurso assumido em certos ataques de sistema de assinatura) em uma, então mesmo que ambos os sistemas estejam seguros isoladamente, pode ser possível criar essa mensagem de uma maneira que tenha um significado em um dos sistemas, mas um significado diferente no outro. Isso, por si só, seria uma vulnerabilidade. (Explorável? Quem sabe. Mas por que arriscar?)
Os pares de chaves PGP e SSH são chaves de longo prazo, usadas para proteger chaves simétricas efêmeras (mensagem e sessão) e também para verificar a autenticidade de uma parte remota. Isso torna a chave privada PGP ou SSH um destino de valor muito mais alto para um invasor do que a chave simétrica correspondente. Se você usar o mesmo material de chave para ambos, e um invasor conseguir perceber isso, isso apenas aumentará o valor de um ataque bem-sucedido nesse par de chaves.
Sem examinar cada um dos protocolos em detalhes, imagino que reconhecer que o mesmo material chave está sendo usado em ambos provavelmente seria bastante trivial, já que a chave pública é basicamente transmitida de forma clara.
Apenas gere uma nova chave PGP. Se desejar, torne-o RSA e do mesmo comprimento que sua chave SSH. (Nenhuma pessoa sã vai olhar muito mais de perto do que verificar a impressão digital de qualquer maneira.) Em seguida, distribua a chave pública para as pessoas com quem você deseja se corresponder, como uma chave PGP. Será muito mais fácil para todos, e muito provavelmente mais seguro, ao custo de uma pequena quantidade de entropia do pool de entropia aleatória do sistema, que deve ser rapidamente reabastecida de qualquer maneira.
Se você possui várias chaves no seu chaveiro secreto e deseja especificar qual delas deve ser usada por padrão, use as diretivas
default-key
e possivelmentedefault-recipient{,-self}
em seu ~ / .gnupg / gnupg.conf.fonte
Você pode converter uma chave SSH em uma chave OpenPGP com a ferramenta
pem2openpgp
do projeto monkeysphere . Essa chave pode ser importada pelo gnupg como um par de chaves públicas / privadas comuns. Como a outra resposta menciona, isso geralmente não é uma boa ideia, porque o ssh não tem conceito de certificados; portanto, você está efetivamente adicionando um recurso a uma chave existente que ela não poderia ter antes. Isso geralmente não é permitido na criptografia.Fiz de qualquer maneira com uma das minhas chaves ssh, mas adicionei o par de chaves à minha outra chave do OpenPGP como uma subchave que possui apenas um sinalizador de capacidade: autenticação. Esse sinalizador é destinado a situações como esta, nas quais você não deseja assinar ou criptografar nada com um par de chaves (significado
--encrypt
e--sign
opções para o gnupg), mas deseja que ele esteja na sua caixa de chaves para autenticação com o OpenSSH e o gnupg-agent.Para mais detalhes, consulte a documentação da monkeysphere.
fonte
Pode haver bons motivos para converter uma chave no formato PKCS normal para importação em gpg.
Por exemplo, se você deseja colocá-lo em um cartão inteligente. As facilidades que o gpg fornece com seus comandos de informação e edição de cartão são muito úteis para esse fim, então por que não usá-lo como uma ferramenta? O único obstáculo que você precisa superar é ... exatamente: importar a chave do formato PKCS # 8 padrão (ou formato "bruto" RSA PKCS # 1)) para o armazenamento de chaves gpg para processamento adicional.
Portanto - observe minha objeção à resposta aprovada! :)
Uma resposta realmente útil para esse tipo de pergunta é encontrada aqui: /unix/276317/how-can-i-import-a-key-in-pem-format-not-openpgp-into -gpg
fonte
Use isso no Ubuntu 16.04 ou Windows WSL.
Cartão de importação. Pode ser feito no Windows ou Linux.
Mover para cartão
Encontre o identificador de assinatura de chave.
Mover chave de autenticação para o cartão
Selecione um número para o slot de autenticação.
Você terminou aqui.
Lembre-se de excluir a chave do chaveiro gpg se estiver usando um cartão. Use o identificador de chave acima.
Diversos
Não é necessário, mas pode ser útil para obter uma chave no formato pgp baseado em texto.
fonte