Mantenga las credenciales de GnuPG en caché para toda la sesión del usuario

53

GnuPG puede, con gpg-agent, acceder a la caché de una clave privada. ¿Cómo puedo mantener esa caché activa para toda la sesión de usuario ?

Cuando desbloqueo la clave gpg-agent, solo permanece en caché durante un tiempo limitado. Con el agente de SSH, ingreso la frase de contraseña una vez y permanece en caché durante toda la sesión. Quiero el mismo comportamiento de gpg-agent.

Por lo tanto, ssh-agentno sufre una vida útil de caché limitada. Pero gpg-agentlimita la vida útil de la memoria caché, al menos por defecto. ¿Cómo puedo eliminar el límite de tiempo de caché de gpg-agent?

nariz grande
fuente

Respuestas:

69

Hasta GnuPG 2

La configuración de usuario (in ~/.gnupg/gpg-agent.conf) solo puede definir la duración de almacenamiento en caché predeterminada y máxima; No se puede deshabilitar.

La default-cache-ttlopción establece el tiempo de espera (en segundos) después de la última actividad de GnuPG (por lo que se restablece si lo usa), la maximum-cache-ttlopción establece el intervalo de tiempo (en segundos) que se almacena en caché después de ingresar su contraseña. El valor predeterminado es 600 segundos (10 minutos) para default-cache-ttly 7200 segundos (2 horas) para maximum-cache-ttl.

Ajústelo a un año más o menos, por ejemplo, 34560000 segundos (400 días), y debería estar bien:

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

Pero para que este cambio surta efecto, debe finalizar la sesión reiniciando gpg-agent.

Si quieres limitar la duración de tu sesión, deberías matar al demonio al cerrar sesión. Esto es muy diferente entre los sistemas operativos, así que me refiero a otra pregunta / respuesta que contiene sugerencias para diferentes sistemas .

También puede reiniciar gpg-agentdurante el inicio de sesión, pero esto no limita el tiempo de almacenamiento en caché a la duración de la sesión, sino los inicios de sesión de un usuario. Decide si este es un problema en tu caso.

GnuPG 2.1 y superior

En GnuPG 2.1 y superior, la maximum-cache-ttlopción fue renombrada max-cache-ttlsin más cambios.

Jens Erat
fuente
¿Es esta una respuesta de "no puedes hacer lo que estás pidiendo"? No está claro, ya que está hablando de limitar la duración de la sesión o limitar el tiempo de almacenamiento en caché. Quiero exactamente lo contrario de eso: sin límite arbitrario en el tiempo de caché o la duración de la sesión.
bignose
Algo así, solo puede solucionarlo configurando un ttl bastante grande. Ajústelo a un año más o menos y debería estar bien, pero debe finalizar la sesión reiniciando gpg-agent.
Jens Erat
Tenga en cuenta que en las últimas versiones (al menos gnupg 2.1), la maximum-cache-ttlopción no existe. Para ver las opciones correctas, consulte la documentación oficial: gnupg.org/documentation/manuals/gnupg/…
Pablo Olmos de Aguilera C.
3
Al menos en GnuPG 2.1, el valor predeterminado default-cache-ttles 600 segundos (10 minutos), no dos horas.
jlh
@jlh Mirando las páginas del manual para diferentes versiones de gpg-agent, el valor correcto parece ser de 10 minutos para todas las versiones. Edité la respuesta, gracias por señalar esto.
Jens Erat el
7

Para ventanas

El archivo que necesita editar debe colocarse en: $env:AppData\gnupg

Si ejecuta eso en una ventana de PowerShell, se abrirá: C:\Users\<UserName>\AppData\Roaming\gnupg

Simplemente coloque el gpg-agent.confarchivo allí con los valores que desee.

Puede verificar que tomó ejecutando:

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

También puedes usar este forro: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"

CubanX
fuente
Si una segunda respuesta aquí no es apropiada, podemos moverla a su propia pregunta, etiquetada con Windows. No estoy seguro de lo que es correcto :)
CubanX
Gracias y mantenlo aquí. Es bueno tener toda la información en un solo lugar. 👍
barfuin
5

Asegúrese de volver a cargar su agente gpg gpg-connect-agent reloadagent /byedespués de cambiar la configuración.

SuperSandro2000
fuente