J'utilise GPG-Agent 2.0.17 avec GPG 1.4.11 sur Ubuntu 12.04 et l'addon Enigmail pour Thunderbird. Lors de l'ouverture d'un courrier électronique crypté, Enigmail invoque GPG-Agent avec le programme de pignontry associé et demande le mot de passe. J'ai alors la possibilité de définir la durée de vie du mot de passe mis en cache, généralement définie sur la fin de la session.
Depuis que je ferme rarement ou déconnecte de ma séance, je souhaite forcer GPG-Agent d'oublier tous les mots de passe mis en cache lors de la verrouillage de la session. J'ai cherché un moyen de le faire et la page de l'homme de GPG-Agent States, que A -sighup rincez tous les mots de passe - cependant, contrairement au MANPAGE, les mots de passe mis en cache ne sont pas oubliés.
Des idées sur la manière de forcer GPG-Agent à oublier les mots de passe?
J'utilise un simple:
echo RELOADAGENT | gpg-connect-agent
Travailler comme charme.
-
Édité: testé avec Debian 10
, gpg 2.2.12
, libgcrypt 1.8.4
TTL pour le cache Motsworths est contrôlé par gpg-agent
Options:
--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).
Selon un moyen de contrôler cette demande à la demande, si vous êtes capable de déclencher une commande lors du verrouillage de votre écran, en utilisant Keychain pour gérer gpg-agent
pourrait être utilisé pour exécuter
keychain --clear --agents gpg
ce qui tuerait toutes les instances gérées de GPG-Agent. Mais alors, vous devriez avoir un moyen d'exécuter keychain --agents gpg --eval $gpg
Pour déverrouiller votre écran. Peut-être trop de tracas.
gpg-connect-agent reloadagent /bye
C'est ce qui a fonctionné pour moi dans le nettoyage d'un seul mot de passe (c'est-à-dire de la phrase secrète) - exécuté à partir du terminal - si vous souhaitez les effacer, alors https://superuser.com/a/1269901/457084 Travaux :
gpg-connect-agent "clear_passphrase --mode=normal <cacheid>" /bye
où <cacheid>
est probablement le keyngrip disponible si vous exécutez: gpg --list-keys --with-keygrip
:
<path to pubring.kbx>
------------------------------------------------
pub rsa2048 2017-12-11 [SC] [expires: 2019-12-11]
<keyid>
Keygrip = <keygrip>
uid `<email>
Avec un peu d'aide de https://web.archive.org/web/20180528210236/https://demu.red/blog/2016/06/how-a-check-if-your-gpg- clé-is-in-cache /
Aucune des autres réponses ne fonctionnerait pour moi sur GNUPG 2.2.19 (SOLUS 4.1, NITROKEY SMART, Jeton Gnuk pour le stockage). Je m'étais assuré qu'un seul gpg-agent
est en cours d'exécution et, le cas échéant, il répondrait avec OK
.
[.____] Ce que j'ai fini par faire est:
killall gpg-agent
Vous devriez toujours test, si ce qui précède a réellement effectué les mots de passe oubliés en décryptant un fichier crypté (gpg -d < somefile.gpg
)