6

Я использую gpg-agent 2.0.17 с gpg 1.4.11 в Ubuntu 12.04 и аддон Enigmail для Thunderbird. При открытии зашифрованной электронной почты Enigmail вызывает gpg-agent со связанной программой pinentry и запрашивает пароль. Затем у меня есть возможность установить время жизни для кэшированного пароля, обычно устанавливаемого в конец сеанса.

Поскольку я редко закрываю сеанс или выход из него, я хотел бы заставить gpg-agent забыть все кэшированные пароли при блокировке сеанса. Я искал способ сделать это, и man-страница gpg-agent утверждает, что -SIGHUP сбрасывает все пароли, однако, в отличие от man-страницы, кэшированные пароли не забываются.

Есть идеи как заставить gpg-agent забыть пароли?

4 ответа4

6

gpgconf --reload gpg-agent - это один из способов заставить агента забыть пароли, которые он кэшировал в памяти. В настоящее время (gpg 2.0-2.1) это [почти] эквивалентно pkill -HUP gpg-agent . Я говорю "почти эквивалентно", поскольку теоретически у вас может быть запущено несколько агентов, и pkill попытается доставить SIGHUP им всем.

2

Я использую простое:

echo RELOADAGENT | gpg-connect-agent

Работа как шарм.

2

TTL для паролей кеша контролируется параметрами 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).

Согласно способу управления этим по требованию, если вы можете вызвать команду при блокировке экрана, для выполнения можно использовать цепочку ключей для обработки gpg-agent

keychain --clear --agents gpg

который убил бы все управляемые экземпляры gpg-agent. Но тогда у вас должен быть способ выполнить keychain --agents gpg --eval $gpg после разблокировки экрана. Может быть, слишком много хлопот.

0

Вот что помогло мне очистить один пароль (т.е. пароль) - запустить с терминала - если вы хотите очистить их все, тогда https://superuser.com/a/1269901/457084 работает:

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

где <cacheid> , скорее всего, является доступной клавиатурной ручкой, если вы выполните:gpg --list-keys --with-keygrip:

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

С небольшой помощью https://web.archive.org/web/20180528210236/https://demu.red/blog/2016/06/how-to-check-if-your-gpg-key-is- в-кэш /

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .