Abilitare il pinentry del minibuffer con Emacs 25 e GnuPG 2.1 su Ubuntu Xenial


14

Ho dovuto fare un po 'di immersioni e caccia attraverso documentazione e forum, quindi ho pensato che avrei potuto fare una domanda e risposta qui per altri:

Come abilito il prompt della passphrase di GnuPG nel minibuffer? Il log delle modifiche di Emacs 25.1 dice:

** pinentry.el consente di richiedere la passphrase di GnuPG tramite il minibuffer anziché una finestra di dialogo grafica, a seconda che il comando gpg sia chiamato da Emacs (ovvero, è impostata la variabile d'ambiente INSIDE_EMACS). Questa funzione richiede versioni più recenti di GnuPG (2.1.5 o successive) e Pinentry (0.9.5 o successive). Per utilizzare questa funzione, aggiungere "allow-emacs-pinentry" a "~ / .gnupg / gpg-agent.conf" e ricaricare la configurazione con "gpgconf - ricaricare gpg-agent".

Facendo proprio questo, ricevo solo un messaggio di errore ora e nemmeno il prompt grafico della passphrase.

Questo è GNU Emacs 25.2.2 su Lubuntu (Ubuntu Xenial) con GnuPG 2.1.11.

Risposte:


15

Devi anche

  1. Abilita esplicitamente la modalità loopback per il pinentry nel tuo gpg-agent.conf.
  2. Configurare epa per utilizzare il loopback per il pinentry.
  3. Avvia il server pinentry in emacs,

1. Abilitare la modalità pinentry e loopback di Emacs per gpg-agent

Inserisci questo nel tuo ~ / .gnupg / gpg-agent.conf:

allow-emacs-pinentry
allow-loopback-pinentry

Quindi dì a gpg-agent di caricare questa configurazione con gpgconfin una shell:

gpgconf --reload gpg-agent

2. Configurare EasyPG Assistant per utilizzare il loopback per il pinentry

In Emacs, o fare

M-x customize-group RET epa RET

Quindi impostare "Epa Pinentry Mode" su "loopback" e applicare.

O inseriscilo nel tuo file ~ / .emacs:

(setq epa-pinentry-mode 'loopback)

3. Avviare il server pinentry in Emacs.

In Emacs, fallo

M-x pinentry-start RET

Questo avvia il server per la sessione corrente. Per avviarlo in ogni nuova istanza di Emacs, inseriscilo nel tuo .emacs:

(pinentry-start)

Ho implementato questo approccio e mentre funziona usando pass dall'interno di emacs non posso più eseguire pass dalla riga di comando. È questo il caso per te?
Orione,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.