Activer le pinentry du mini-tampon avec Emacs 25 et GnuPG 2.1 sur Ubuntu Xenial

14

J'ai dû faire de la plongée et de la chasse à travers la documentation et les forums, alors je me suis dit que je pourrais aussi bien faire un Q&A ici pour les autres:

Comment activer l'invite de phrase de passe GnuPG dans le mini-tampon? Le changelog Emacs 25.1 dit:

** pinentry.el permet à la phrase secrète GnuPG d'être invitée via le mini-tampon au lieu d'une boîte de dialogue graphique, selon que la commande gpg est appelée depuis Emacs (c'est-à-dire que la variable d'environnement INSIDE_EMACS est définie). Cette fonctionnalité nécessite des versions plus récentes de GnuPG (2.1.5 ou ultérieur) et Pinentry (0.9.5 ou ultérieur). Pour utiliser cette fonctionnalité, ajoutez "allow-emacs-pinentry" à "~ / .gnupg / gpg-agent.conf" et rechargez la configuration avec "gpgconf --reload gpg-agent".

Ce faisant, je reçois maintenant un message d'erreur et même pas l'invite de phrase de passe graphique.

Il s'agit de GNU Emacs 25.2.2 sur Lubuntu (Ubuntu Xenial) avec GnuPG 2.1.11.

Oliver Scholz
la source

Réponses:

15

Vous devez également

  1. Activez explicitement le mode de bouclage pour pinentry dans votre gpg-agent.conf.
  2. Configurez epa pour utiliser le bouclage pour le pinentry.
  3. Démarrez le serveur Pinentry dans emacs,

1. Activer le mode de pinentry et de bouclage Emacs pour gpg-agent

Mettez ceci dans votre ~ / .gnupg / gpg-agent.conf:

allow-emacs-pinentry
allow-loopback-pinentry

Dites ensuite à gpg-agent de charger cette configuration gpgconfdans un shell:

gpgconf --reload gpg-agent

2. Configurer l'assistant EasyPG pour utiliser le bouclage pour le pinentry

Dans emacs, soit faire

M-x customize-group RET epa RET

Réglez ensuite «Epa Pinentry Mode» sur «loopback» et appliquez.

Ou mettez-le dans votre fichier ~ / .emacs:

(setq epa-pinentry-mode 'loopback)

3. Démarrez le serveur Pinentry dans Emacs.

Dans Emacs, faites

M-x pinentry-start RET

Cela démarre le serveur pour la session en cours. Pour le démarrer dans chaque nouvelle instance d'Emacs, mettez ceci dans votre .emacs:

(pinentry-start)
Oliver Scholz
la source
J'ai implémenté cette approche et bien qu'elle fonctionne en utilisant pass depuis emacs, je ne peux plus exécuter pass depuis la ligne de commande. Est-ce le cas pour vous?
orion