Установка max-cache-ttl 0
в вашем .gnupg/gpg-agent.conf
кажется хорошим решением. Тем более, что это работает.
Есть также опция gpg-agent --no-allow-external-cache
которая должна:
Скажите Pinentry не включать функции, которые используют внешний кеш для парольных фраз.
Некоторые среды рабочего стола предпочитают разблокировать все учетные данные одним главным паролем и могут установить Pinentry, который использует дополнительный внешний кэш для реализации такой политики. Используя эту опцию, Pinentry рекомендуется не использовать такой кеш, а вместо этого всегда запрашивать у пользователя запрошенную фразу-пароль.
Звучит так, будто всегда нужно запрашивать пароль, но, похоже, это не так. Или он всегда спрашивает, когда существует внешний кеш.
Или вы можете разрешить парольным фразам кэша gpg-agent, но по требованию очистить их, отправив сигнал SIGHUP
(с kill
, killall
, pkill
и т.д.):
Этот сигнал сбрасывает все кэшированные парольные фразы, и если программа была запущена с файлом конфигурации, файл конфигурации снова считывается. Учитываются только определенные параметры: тихий, подробный, отладочный, отладочный-все, уровень отладки, отладочный-пин-попытка, отсутствие захвата, пинентри-программа, пинентри-невидимый-char, default-cache-ttl, max-cache- ttl, ignore-cache-for-signature, no-allow-external-cache, allow-emacs-pinen-try, no-allow-mark-trust, disable-scdaemon и disable-check-own-socket.
scdaemon-program также поддерживается, но из-за текущей реализации, которая вызывает scdaemon только один раз, она бесполезна, если вы вручную не убьете scdaemon