Comment empêcher le délai d’expiration de gpg-agent lors de la collecte de la phrase secrète?

7

J'appelle gpg2dans un script CLI pour le chiffrement symétrique d'un fichier local. Il semble y avoir une gpg-agentinvite pour une phrase secrète via une interface utilisateur à base de texte, CLI. Tant que je reste dans la phrase secrète, tout se passe bien. Si je ne le suis pas, il échouera finalement avec ce message:

gpg-agent[15338]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: error creating passphrase: Operation cancelled
gpg: symmetric encryption of `XXXX.tar' failed: Operation cancelled

Existe-t-il un moyen de désactiver complètement ce délai?

Je voudrais que l'invite de phrase secrète reste indéfiniment à l'écran jusqu'à ce que j'entre quelque chose.

campbell
la source

Réponses:

1

Dans gpg-agent.conf (voir gpg-agent (1) ), essayez les options suivantes:

pinentry-timeout 0
pinentry-program /usr/bin/pinentry-curses --timeout 0

(Vous pourriez trouver pinentry-ttyun peu plus agréable d'utiliser cependant.)

Grawity
la source
gpg-agent[22779]: /Users/xxx/.gnupg/gpg-agent.conf:1: invalid option
rcampbell
GnuPG 2.0.x était installé sur mon ordinateur et gpg-agentne supportait pas ces options. Je suis passé à la version 2.1.x qui prend en charge ces options.
rcampbell
0

Ce qui a bien fonctionné pour moi (gpg 2.1.11) était simplement de définir l’ pinentry-timeoutoption sur une valeur importante (comme 24 heures), en ajoutant ce qui suit dans mon ~/.gnupg/gpg-agent.conffichier:

# time until pinentry closes in seconds
pinentry-timeout 86400
Justin Ludwig
la source