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?

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.


¿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"


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.