¿Cómo hacer que gpg-agent guarde en caché las frases de contraseña que ingreso al leer / guardar archivos * .gpg?

9

Quiero trabajar con gpgarchivos cifrados con Emacs, y me gustaría poder ingresar la frase de contraseña para cada archivo cifrado solo una vez por sesión de Emacs.

Solía ​​poder hacer esto configurando la variable epa-file-cache-passphrase-for-symmetric-encryptionen t, pero esto ya no funciona. La explicación se puede encontrar en la última línea de la documentación para la variable epa-file-cache-passphrase-for-symmetric-encryption:

(defcustom epa-file-cache-passphrase-for-symmetric-encryption nil
  "If non-nil, cache passphrase for symmetric encryption.

For security reasons, this option is turned off by default and
not recommended to use.  Instead, consider using gpg-agent which
does the same job in a safer way.  See Info node `(epa) Caching
Passphrases' for more information.

Note that this option has no effect if you use GnuPG 2.0."
  :type 'boolean
  :group 'epa-file)

Después de una actualización reciente del sistema, la gpgversión 2.1.8 de mi sistema ahora es epa-file-cache-passphrase-for-symmetric-encryptionineficaz.

Las referencias mencionadas en la documentación anterior conducen a una página que simplemente le dice, nuevamente, que use gpg-agent, pero no dice nada sobre cómo hacerlo. No he podido encontrar instrucciones claras sobre cómo configurar gpg-agentel caso de uso que describí al principio de esta publicación. Cualquier ayuda sería apreciada.

FWIW, psme dice que de /usr/bin/gpg-agent --supervisedhecho se está ejecutando. ¿Qué más debo hacer para que guarde en caché las frases de contraseña que ingreso cuando trabajo con *.gpgarchivos?

Además, el valor de mi epg-gpg-programvariable es /usr/bin/gpg, que se refiere a la versión instalada de la versión 2.1.8 gpgmencionada anteriormente.

Las versiones de Emacs que estoy usando son 26.0.50 y 27.0.50. Para ambos casos, la versión del epapaquete es 23.1.

kjo
fuente
Puede usar el pinentrypaquete según esta respuesta :
Felipe Lema
@FelipeLema: Para mí, al usar pinentry cambiado, las contraseñas se guardan para descifrarlas al abrir el archivo, pero aún tengo que ingresarlas dos veces para cifrarlas mientras las guardo. :-(
Weidenrinde

Respuestas:

4

https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options

En esta documentación, las opciones que le pueden interesar

  • default-cache-ttl n, establece el tiempo que una entrada de caché es válida en n segundos. El valor predeterminado es 600 segundos. Cada vez que se accede a una entrada de caché, el temporizador de la entrada se restablece. Para establecer la vida útil máxima de una entrada, use max-cache-ttl. Tenga en cuenta que una frase de contraseña en caché puede no ser expulsada inmediatamente de la memoria si ningún cliente solicita una operación de caché. Esto se debe a una función interna de limpieza que solo se ejecuta cada pocos segundos.
  • max-cache-ttl n Establece el tiempo máximo que una entrada de caché es válida en n segundos. Después de este tiempo, una entrada de caché caducará incluso si se accedió recientemente o si se configuró usando gpg-preset-passphrase. El valor predeterminado es 2 horas (7200 segundos).

puede configurar esto en el archivo de configuración ~ / .gnupg / gpg-agent.conf

p.ej: default-cache-ttl 86400

Parece que gpg-agent no admite contraseñas de almacenamiento en caché para toda la sesión

junnu
fuente
Gracias, pero esto no funciona para mí. Incluso después de reconfigurar (con largos tiempos de caché) y reiniciar gpg-agent, todavía me solicitan mi frase de contraseña ( dos veces ) cada vez que intento guardar un *.gpgarchivo.
kjo
¿podría confirmar si el almacenamiento en caché funciona al descifrar en la terminal?
junnu
El almacenamiento en caché funciona al descifrar , tanto desde Emacs como desde el terminal. El problema surge cuando intento guardar un *.gpgarchivo (después de hacerle algunos cambios). Entonces siempre me solicitan mi frase de contraseña, dos veces . (Por cierto, este es un comportamiento relativamente nuevo. Solía ​​ser el caso de que el almacenamiento en caché funcionó tanto para descifrar como para cifrar desde Emacs). Del mismo modo, el almacenamiento en caché no funciona cuando intento cifrar cosas --symmetricdesde el terminal.
kjo
Soy reacio a otorgar la recompensa aquí, ya que su respuesta no resolvió mi problema y, en cualquier caso, no fue tan detallado como esperaba.
kjo
está bien ... no hay problemas ... no encontré ninguna documentación que mencionara gpg-agent para usar la contraseña almacenada en caché para el cifrado simétrico ... y aquí reddit.com/r/emacs/comments/5skzsu/ ... se menciona que "GnuPG 2 intencionalmente (por sus desarrolladores y por el desarrollador de EPA / EPG) no admite frases de contraseña de almacenamiento en caché. Instale GnuPG 1. No está relacionado con la versión de Emacs ". pero no hay manual de referencia mencionada aquí .. si es posible que usted podría intentar otras soluciones que impliquen el almacenamiento en caché de un lado emacs ..
Junnu