web-dev-qa-db-fra.com

Conserver les informations d'identification GnuPG en mémoire cache pour toute la session utilisateur

GnuPG peut, avec gpg-agent, mettre en cache l’accès à une clé privée. Comment puis-je garder ce cache actif pour toute la session utilisateur ?

Lorsque je déverrouille la clé pour gpg-agent, elle ne reste en cache que pendant un temps limité. Avec l'agent SSH, je saisis la phrase secrète une fois et celle-ci reste en cache pendant toute la session. Je veux le même comportement de gpg-agent.

Donc, ssh-agent ne souffre pas d'une durée de vie limitée du cache. Mais gpg-agent limite la durée de vie du cache, au moins par défaut. Comment puis-je éliminer la limite de temps de cache de gpg-agent?

45
bignose

Jusqu'à GnuPG 2

La configuration utilisateur (dans ~/.gnupg/gpg-agent.conf) peut uniquement définir la durée de mise en cache par défaut et maximale; il ne peut pas être désactivé.

L'option default-cache-ttl définit le délai d'attente (en secondes) après la dernière activité de GnuPG (afin qu'elle se réinitialise si vous l'utilisez), l'option maximum-cache-ttl définit la durée (en secondes) qu'il met en cache après la saisie de votre mot de passe. La valeur par défaut est 600 secondes (10 minutes) pour default-cache-ttl et 7200 secondes (2 heures) pour maximum-cache-ttl.

Définissez-le à environ un an - disons, 34560000 secondes (400 jours) - et ça devrait aller:

default-cache-ttl 34560000
maximum-cache-ttl 34560000

Mais pour que cette modification prenne effet, vous devez terminer la session en redémarrant gpg-agent.

Si vous souhaitez limiter la durée de votre session, vous devez tuer le démon lors de la déconnexion. Ceci est très différent entre les systèmes d'exploitation, je me réfère donc à une autre question/réponse contenant des astuces pour différents systèmes .

Vous pouvez également redémarrer le gpg-agent lors de la connexion, mais cela ne limite pas la durée de la mise en cache à la longueur de la session, mais les connexions d'un utilisateur. Décidez vous-même s'il s'agit d'un problème dans votre cas.

GnuPG 2.1 et supérieur

Dans GnuPG 2.1 et supérieur, l'option maximum-cache-ttl a été renommée en max-cache-ttl sans autre modification.

54
Jens Erat

Pour les fenêtres

Le fichier que vous devez modifier doit être placé à: $env:AppData\gnupg

Si vous l'exécutez dans une fenêtre PowerShell, celui-ci s'ouvrira: C:\Users\<UserName>\AppData\Roaming\gnupg

Il suffit de placer le fichier gpg-agent.conf avec les valeurs de votre choix.

Vous pouvez le vérifier en exécutant:

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

Vous pouvez également utiliser cette doublure: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"

1
CubanX

Assurez-vous de recharger votre agent gpg avec gpg-connect-agent reloadagent /bye après avoir modifié la configuration.

0
SuperSandro2000