J'essaie d'utiliser GPG pour signer des fichiers, mais quelque chose me déroute: si j'entre dans le terminal (le fichier que je veux signer s'appelle "checksums"), il est écrit:
$ gpg -s checksums
You need a passphrase to unlock the secret key for
user: "[my name] <[my email prefix]@gmail.com>"
4096-bit RSA key, ID C457C71D, created 2015-01-16
Cependant, il ne me demande pas de saisir mon mot de passe mais effectue simplement le processus de signature. Pourquoi donc?
GnuPG utilise gpg-agent
pour mettre en cache votre phrase secrète. Cela nécessite nécessite la phrase secrète pour la signature (il s'agit d'une opération de clé privée) et imprime donc le message, mais il n'est pas nécessaire de vous demander, car la phrase secrète était toujours en cache. Si et combien de temps le cache fonctionne peut être configuré.
gpg
vérifie s'il existe un gpg-agent
en cours (ou, dans les versions plus récentes, en commence nécessairement un). gpg-agent
met (entre autres choses) en cache votre phrase secrète pour un temps donné.
Ce laps de temps peut être configuré dans ~/.gnupg/gpg-agent.conf
, qui dans mon cas contient une ligne
default-cache-ttl 600
pour définir le temps de cache sur dix minutes (10 * 60 secondes). Des options supplémentaires sont décrites dans man gpg-agent
; la plupart des options peuvent également être utilisées dans gpg-agent.conf
en omettant le --
initial.
Comme il existe un agent gpg qui met votre mot de passe en cache pendant un certain temps, si vous utilisez plusieurs fois gpg, vous ne devez entrer votre mot de passe que la première fois. Il sera ensuite mémorisé et utilisé automatiquement lors des exécutions suivantes.