Включение буферизации минибуфера в Emacs 25 и GnuPG 2.1 в Ubuntu Xenial

14

Мне приходилось заниматься дайвингом и охотой, просматривая документацию и форумы, поэтому я решил, что с таким же успехом я могу сделать здесь вопросы и ответы для других:

Как включить запрос парольной фразы GnuPG в минибуфере? В журнале изменений Emacs 25.1 говорится:

** pinentry.el позволяет вводить парольную фразу GnuPG через минибуфер вместо графического диалога, в зависимости от того, вызывается ли команда gpg из Emacs (т. е. установлена ​​переменная окружения INSIDE_EMACS). Для этой функции требуются более новые версии GnuPG (2.1.5 или более поздняя версия) и Pinentry (0.9.5 или более поздняя версия). Чтобы использовать эту функцию, добавьте «allow-emacs-pinentry» в «~ / .gnupg / gpg-agent.conf» и перезагрузите конфигурацию с помощью «gpgconf --reload gpg-agent».

Делая это, я просто получаю сообщение об ошибке сейчас, и даже не графическое приглашение пароля.

Это GNU Emacs 25.2.2 на Lubuntu (Ubuntu Xenial) с GnuPG 2.1.11.

Оливер Шольц
источник

Ответы:

15

Вы также должны

  1. Точно включите режим обратной петли для pinentry в вашем gpg-agent.conf.
  2. Настройте epa для использования loopback для pinentry.
  3. Запустите сервер pinentry в Emacs,

1. Включите Emacs pinentry и loopback mode для gpg-agent

Поместите это в ваш ~ / .gnupg / gpg-agent.conf:

allow-emacs-pinentry
allow-loopback-pinentry

Затем скажите gpg-agent загрузить эту конфигурацию gpgconfв оболочку:

gpgconf --reload gpg-agent

2. Настройте EasyPG Assistant для использования обратной связи для ввода

В Emacs либо делай

M-x customize-group RET epa RET

Затем установите «Epa Pinentry Mode» на «loopback» и примените.

Или поместите это в ваш файл ~ / .emacs:

(setq epa-pinentry-mode 'loopback)

3. Запустите сервер pinentry в Emacs.

В Emacs, сделать

M-x pinentry-start RET

Это запускает сервер для текущего сеанса. Чтобы запустить его в каждом новом экземпляре Emacs, поместите его в свой .emacs:

(pinentry-start)
Оливер Шольц
источник
Я реализовал этот подход, и хотя он работает с использованием pass изнутри emacs, я больше не могу запускать pass из командной строки. Это случай для вас?
Орион