Por que o gpg pede senha, mesmo com o gpg-agent?

2

Eu iniciei o gpg-agent da seguinte forma:

eval 'gpg-agent --daemon --preset'

e nesta janela de terminal, use o comando gpg-preset-passphrase conforme recomendado:

echo secretpassword | /usr/libexec/gpg-preset-passphrase --preset KEYGRIPID

Em seguida, usei esta resposta para verificar se a senha foi armazenada corretamente em cache:

echo 'GET_PASSPHRASE --no-ask KEYGRIPID Err Pmt Des'|gpg-connect-agent |
  perl -pe 's/([0-9a-fA-F]{2})/chr(hex $1)/eg'

Quando executo o gpg para assinar ou criptografar algo, sou solicitado a fornecer uma senha. Isso não deveria acontecer.

gpg -u KEYGRIPID --clearsign --batch somefile.txt

<curses-based prompt>

Depois de inserir a senha corretamente e executar novamente o comando gpg-sign, eu não recebo uma solicitação. Isso indica que a senha está em cache, embora de maneira diferente.

gpg versão 2.0.14

    
por Otheus 19.09.2016 / 19:16

1 resposta

1

Não é o keygripid , mas a impressão digital da chave. Aqui está a referência . Aqui está um script Perl fugly para ajudá-lo a extrair os valores necessários:

gpg -K --fingerprint | 
perl -lne '$/="\n\n"' \
 -e if ( ($len,$grip,$fp)=/^sec\s+(\w+)\/([0-9A-Z]+).* fingerprint = (.*?)\s+uid\s/ms)' \
 -e { $fp =~ s/\s*//g; print "$grip $fp";}'

saídas:

EF2141BE 24C5202D6905CB0A5C94AB36134E3618EF6141B8
1BA3D65B 484EE4F3DC2595FAF91F51A9731342954BAFD753

Copie a segunda coluna e passe-a para o comando predefinido

echo secretpassword | /usr/libexec/gpg-preset-passphrase --preset 
    
por 19.09.2016 / 21:02

Tags