Может ли emacs использовать gpg-agent в терминале вообще?

Я понимаю, что есть проблемы с получением pinentry-curses для работы с emacs (см. Некоторые комментарии на http://emacswiki.org/emacs/EasyPG ), и поэтому использование emacs в терминале несовместимо с gpg-agent из-за этого.

В этом случае я не могу использовать графический инструмент pinentry, поскольку это связано с подключением ssh к удаленной машине.

Однако возможно ли заранее дополнить gpg-agent кодовой фразой, а затем использовать emacs, но не запрашивать парольную фразу, если агент еще не имеет этой информации?

Какие настройки позволят это работать с notmuch.el и EasyPG ?

Или существуют альтернативные методы кэширования кодовой фразы, которые бы достигли такого же эффекта, но могут иметь проблемы с безопасностью (что является причиной того, что gpg-agent существует в первую очередь)?

2 Solutions collect form web for “Может ли emacs использовать gpg-agent в терминале вообще?”

Альтернативой, если у вас есть довольно недавний pinentry / gpg2 (протестированный с 0.9.7 и 2.1.11 соответственно в Arch Linux), заключается в использовании http://elpa.gnu.org/packages/pinentry.html .

Установите pinentry из Mx list-packages , затем поставьте

 allow-emacs-pinentry 

в вашем .gnupg/gpg-agent.conf и поставьте

 (setenv "INSIDE_EMACS" (format "%s,comint" emacs-version)) (pinentry-start) 

в вашем .emacs.d/init.el Я должен был установить setenv там, потому что, хотя INSIDE_EMACS установлен при запуске Mx shell , он не устанавливается при простом открытии файла .gpg .

Теперь gpg-agent использует обычную версию curses из терминала, а из Emacs использует read-passwd (который скрывает символы из приглашения и из view-lossage ).


EDIT: Кажется, у пакета Debian есть исправление для удаления поддержки Emacs, поэтому на данный момент это решение работает только для других дистрибутивов / людей, готовых скомпилировать pinentry.

ЭТО! -> https://github.com/ecraven/pinentry-emacs

Вам нужно будет сделать некоторые издевательства, но использование этой вещи сработало для меня. поместите скрипт в каталог в PATH а затем добавьте следующую запись в ~/.gnupg/gpg-agent.conf :

pinentry-program <path-to-pinentry-emacs>/pinentry-emacs

Затем перезагрузите агента:

$ echo RELOADAGENT | gpg-connect-agent

Работает как сон для меня 🙂

  • Файл bad known_hosts при подключении к балансируемому домену
  • Как изменить заголовок активного терминала после SSH
  • Конфигурация iptables - соединение ssh только из удаленной сети
  • echo $ 1 = некотируемая разнесенная строка?
  • сценарий входа в систему и блок доступа root ssh
  • Убить tcpdump процесс, порожденный ssh, когда ssh умирает
  • Сервер SSH на Ubuntu не работает
  • Как диагностировать тайм-аут соединения SSH?
  • Запустить команду при подключении к хосту
  • Как я могу запустить startx и запустить сценарий удаленно через SSH?
  • Как выполнить сухую работу с использованием rsync over ssh?
  • Linux и Unix - лучшая ОС в мире.