Habilitación de minibúfer pinentry con Emacs 25 y GnuPG 2.1 en Ubuntu Xenial

14

Tuve que bucear y buscar bastante en la documentación y los foros, así que pensé que también podría hacer un Q&A aquí para otros:

¿Cómo habilito la solicitud de frase de contraseña GnuPG en el minibúfer? El registro de cambios de Emacs 25.1 dice:

** pinentry.el permite que se solicite la frase de contraseña GnuPG a través del minibúfer en lugar de un cuadro de diálogo gráfico, dependiendo de si el comando gpg se llama desde Emacs (es decir, se establece la variable de entorno INSIDE_EMACS). Esta función requiere versiones más recientes de GnuPG (2.1.5 o posterior) y Pinentry (0.9.5 o posterior). Para usar esta función, agregue "allow-emacs-pinentry" a "~ / .gnupg / gpg-agent.conf" y vuelva a cargar la configuración con "gpgconf --reload gpg-agent".

Al hacer eso, recibo un mensaje de error ahora y ni siquiera la frase gráfica de contraseña.

Esto es GNU Emacs 25.2.2 en Lubuntu (Ubuntu Xenial) con GnuPG 2.1.11.

Oliver Scholz
fuente

Respuestas:

15

También tienes que

  1. Habilite explícitamente el modo loopback para pinentry en su gpg-agent.conf.
  2. Configure epa para usar loopback para pinentry.
  3. Inicie el servidor de pinentry en emacs,

1. Habilite la pinentry de Emacs y el modo loopback para gpg-agent

Ponga esto en su ~ / .gnupg / gpg-agent.conf:

allow-emacs-pinentry
allow-loopback-pinentry

Luego dígale a gpg-agent que cargue esta configuración gpgconfen un shell:

gpgconf --reload gpg-agent

2. Configure EasyPG Assistant para usar loopback para pinentry

En emacs, o bien hacer

M-x customize-group RET epa RET

Luego configure el "Modo de Pinentry de Epa" en 'loopback' y aplique.

O ponga esto en su archivo ~ / .emacs:

(setq epa-pinentry-mode 'loopback)

3. Inicie el servidor de pinentry en Emacs.

En Emacs, haz

M-x pinentry-start RET

Esto inicia el servidor para la sesión actual. Para iniciarlo en cada nueva instancia de Emacs, ponga esto en su .emacs:

(pinentry-start)
Oliver Scholz
fuente
He implementado este enfoque y, aunque funciona utilizando pass desde dentro de emacs, ya no puedo ejecutar pass desde la línea de comandos. ¿Es este el caso para ti?
orion