Criptografar e assinar com chave secreta específica

20

Eu tenho uma chave de cartão inteligente OpenPGP (YubiKey NEO), bem como uma chave secreta local instalada no meu chaveiro GnuPG.

Gostaria de criptografar e assinar um arquivo com a chave do meu cartão, não a chave do meu chaveiro. Como posso especificar com qual chave gostaria de assinar?

Se meu ID de chave secreta do sistema de arquivos for DEADBEEFe minha chave de cartão inteligente DEADBEE5, como faço para assinar com essa chave?

Naftuli Kay
fonte

Respostas:

11

Você deve especificar --default-key:

gpg -s --default-key DEADBEE5 input > output

e depois verifique com

gpg -d < output | head -1

Na gpg manpágina ( --signseção):

A chave a ser usada para assinatura é escolhida por padrão ou pode ser configurada com as opções --local-user e --default-key.

Anthon
fonte
gpg: conflicting commandsquando tento criptografar e assinar.
Naftuli Kay
@NaftuliTzviKay Desculpe --sign-key é para assinar outras chaves com uma chave específica. Atualizei a resposta (e testei de antemão dessa vez).
Anthon
--default-*faz pouco sentido na linha de comando. Essas opções são para o arquivo de configuração.
Hauke ​​Laging
1
A diferença entre --local-usere --default-keyé que --local-userdará um erro se você especificar uma chave inexistente. Com --default-key, ele ignorará uma chave inexistente e usará a primeira no chaveiro.
wisbucky 3/12
15

A chave de assinatura é selecionada com -u/ --local-user:

gpg --local-user 0xDEADBEE5 --sign file

Esta opção pode ser dada várias vezes para combinar assinaturas de várias chaves:

gpg --local-user 0xDEADBEE5 --local-user 0x12345678 --sign file
Hauke ​​Laging
fonte
De acordo com a página do manual, usar --local-useré o mesmo que usar --default-userna minha resposta
Anthon
1
@Anthon Isso leva ao mesmo resultado. Isso não significa que --default-*deve ser recomendado para esse uso. Estou na lista de discussão do GnuPG há anos. Eu nunca vi algo assim antes.
Hauke ​​Laging
Bem, sim, parece que o problema surgiu uma vez nos usuários do gnupg e que você foi quem forneceu a resposta com a leitura da página de manual ;-). Para mim, especificar uma opção com -keyo nome parece muito mais apropriado quando quero usar uma chave específica do que especificar algo com o -userYMMV.
Anthon
4
Acho que @Anthon quis dizer --default-keyem seu comentário acima. Correndo com isso, uma diferença entre --local-usere --default-keyna minha experiência, é que a primeira falha se uma chave correspondente não estiver presente, enquanto a segunda retornará a outras chaves. Por esse motivo, eu ficaria muito cauteloso ao inserir --default-keyscripts.
Jack O'Connor
Testei e confirmei o comentário de @ JackO'Connor com o gpg 2.2.4. O homem para --default-keydizIf there is no secret key available for any of the specified values, GnuPG will not emit an error message but continue as if this option wasn't given.
wisbucky