forçar gpg-agent a esquecer a senha

6

Estou usando o gpg-agent 2.0.17 com o gpg 1.4.11 no Ubuntu 12.04 e o Enigmail Addon para o Thunderbird. Ao abrir um e-mail criptografado, o Enigmail invoca o gpg-agent com o programa de pinagem associado e solicita a senha. Em seguida, tenho a opção de definir o tempo de vida da senha armazenada em cache, geralmente definida para o final da sessão.

Como raramente faço shutdown ou logout da minha sessão, eu gostaria de forçar o gpg-agent a esquecer todas as senhas armazenadas em cache ao bloquear a sessão. Eu procurei uma maneira de fazer isso e a página man do gpg-agent declara que a -SIGHUP irá liberar todas as senhas - no entanto, ao contrário da manpage, as senhas em cache não são esquecidas.

Alguma idéia de como forçar o gpg-agent a esquecer as senhas?

    
por Lars 24.04.2013 / 10:15

4 respostas

5

gpgconf --reload gpg-agent é uma maneira de forçar o agente a esquecer as senhas armazenadas na memória. Atualmente (gpg 2.0-2.1) isso é [quase] equivalente a pkill -HUP gpg-agent . Eu digo "quase equivalente", já que você poderia, em teoria, ter mais de um agente em execução e o pkill tentaria entregar o SIGHUP para todos eles.

    
por 10.03.2015 / 22:40
2

Eu uso um simples:

echo RELOADAGENT | gpg-connect-agent

Trabalhe como um encanto.

    
por 19.11.2017 / 20:56
2

O TTL para senhas de cache é controlado pelas opções de gpg-agent :

--default-cache-ttl n
  Set the time a cache entry is valid to n seconds.  The default is 600 seconds.

--max-cache-ttl n
  Set  the  maximum time a cache entry is valid to n seconds.  After
  this time a cache entry will be expired even if it has been accessed
  recently.  The default is 2 hours (7200 seconds).

Como uma forma de controlar isso sob demanda, se você conseguir acionar um comando ao bloquear sua tela, usando keychain para manipular gpg-agent pode ser usado para executar

keychain --clear --agents gpg

que mataria todas as instâncias gerenciadas do gpg-agent. Mas então, você deve ter uma maneira de executar keychain --agents gpg --eval $gpg ao desbloquear sua tela. Talvez muito trabalho.

    
por 24.04.2013 / 11:15
0

Isto é o que funcionou para mim na limpeza de uma única senha (ou seja, senha) - executado a partir do terminal - se você quiser limpá-los todos, então link funciona:

gpg-connect-agent "clear_passphrase --mode=normal <cacheid>" /bye

em que <cacheid> é provavelmente o keygrip disponível se você executar: gpg --list-keys --with-keygrip :

<path to pubring.kbx>
------------------------------------------------
pub   rsa2048 2017-12-11 [SC] [expires: 2019-12-11]
    <keyid>
    Keygrip = <keygrip>
uid          '<email>

Com um pouco de ajuda de

    
por 28.05.2018 / 22:47