Je cherche à mettre en cache les mots de passe pour une utilisation sur une machine sans surveillance. Comme cela pose un certain risque, je préférerais choisir les phrases secrètes à mettre en cache et éviter de définir les deux default-cache-ttl
et max-cache-ttl
des valeurs odieusement élevées ainsi que d'éviter d'avoir à effacer gpg-agent
le cache entier de façon périodique - c'est pourquoi je cherche une solution avec gpg-preset-passphrase
. Certaines des informations que j'ai trouvées lors du dépannage se réfèrent à des versions plus anciennes de GnuPG, donc je ne sais pas si j'ai suffisamment pris en compte toutes les différences.
Tout d'abord, comme prescrit par man 1 gpg-agent
, j'ai export GPG_TTY=$(tty)
dans mon .bashrc.
Supposons maintenant que je cours eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)
pour démarrer gpg-agent, notant que gpg-preset-passphrase honore toujours --max-cache-ttl (par défaut 2 heures).
J'obtiens ensuite le clavier $KEYGRIP
de la sous-clé secrète souhaitée avec gpg --with-keygrip -K
.
Avec ça j'essaye /path/to/gpg-preset-passphrase -c $KEYGRIP
. Au retour, ceci imprime:
gpg-preset-passphrase: caching passphrase failed: Not implemented
Tentant à nouveau d'ajouter --verbose --debug 6 --log-file /path/to/gpg-agent.log
à gpg-agent
, mon journal est accompagné de
gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent
gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started
gpg-agent[4207] command PRESET_PASSPHRASE failed: Not implemented
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 terminated
Je ne sais pas où procéder en dehors de plonger plus profondément dans la source, alors je me demande si quelqu'un peut d'abord corriger les étapes que je prends.
gpg-preset-passphrase
, ma première piste concrète à partir de cette liste de diffusion lists.gnupg.org/pipermail/gnupg-users/2010-January/037876.html