Вопрос Как предотвратить всплывающее окно с паролем при использовании GnuPG с mutt?


Мой почтовый пользовательский агент является mutt, и я подписываю свою почту с помощью GnuPG. Чтобы они работали вместе, у меня есть set crypt_use_gpgme=yes в .muttrc,

Читая почту, меня просят ввести кодовую фразу ключа OpenPGP, которая является ожидаемым поведением. Но вместо того, чтобы вводить его в строке подсказки mutt, появляется всплывающее окно GUI. Конечно, это не работает без X.

Есть ли хороший способ не имея это всплывающее окно, но вместо этого вводить пароль внутри mutt?


5
2017-10-24 11:20


происхождения




ответы:


При использовании с gpg-agent, GnuPG использует утилиту «pinentry» для запроса кодовой фразы. Существуют разные варианты pinentry; кажется, вы используете один из графических.

В качестве альтернативы, я бы предложил вам попробовать два варианта командной строки на основе командной строки, один из которых использует проклятия, другие простые запросы в командной строке:

$ apt-cache search 'pinentry-(curses|tty)'
pinentry-curses - curses-based PIN or pass-phrase entry dialog for GnuPG
pinentry-tty - minimal dumb-terminal PIN or pass-phrase entry for GnuPG

Они также должны быть доступны для дистрибутивов на основе не-Debian и подобных им имен. После их установки также настройте gpg-agent использовать их (от man gpg-agent):

Пожалуйста, убедитесь, что pinentry программа была установлена ​​под именем файла по умолчанию (который зависит от системы) или использует параметр pinentry-program для указания полного имени этой программы. Часто бывает полезно установить символическую ссылку из фактического использованного pinentry (например. /usr/bin/pinentry-gtk) до ожидаемого (например, /usr/bin/pinentry).

Если вы предпочитаете параметр файла конфигурации, отредактируйте ~/.gnupg/gpg-agent.conf,


6
2017-10-24 12:10



Спасибо, мне нужно было указать в этом направлении;) В Archlinux, pinentry-curses устанавливается с пакетом pinentry как часть группы базовых пакетов. pinentry-tty можно установить из AUR. Конфигурация проста: в ~ / .bashrc поставьте «export GPG_TTY = $ (tty)», а в ~ / .gnupg / gpg-agent.conf введите «pinentry-program / usr / bin / pinentry-curses», затем перезапустите agent: «echo RELOADAGENT | gpg-connect-agent». Он работает на моей системе. Я также попробовал pinentry-tty, но для меня это не сработало, так как появляется подсказка пароля, но потом сбой. - Philipp
Вероятно, сбой произошел, поскольку mutt управляет консольным вводом-выводом, каким-то образом не совместимым с pinentry-tty. Я думаю, что mutt использует (n) проклятия, во всяком случае. - Jens Erat