3

Я пытаюсь использовать Enigmail с Thunderbird в Linux. Сам GPG настроен, ключи импортированы, и я уже могу использовать функции управления ключами (включая подписание ключей) из kgpg.

Но шифрование почты по-прежнему не удается, потому что, по-видимому, gpg-agent висит на записи ключевой фразы.

Согласно консоли Enigmail, она не использует gpg-agent (как это делает kgpg), но снова дает сбой, потому что gpg не позволяет вводить фразу-пароль в пакетном режиме, который использует Enigmail.

error - signature verification failed

gpg command line and output:
gpg: /usr/bin/gpg --charset utf-8 --display-charset utf-8 --batch --no-tty --status-fd 2 --decrypt --use-agent
gpg: problem with the agent - disabling agent use
gpg: can't query passphrase in batch mode
gpg: Invalid passphrase; please try again ...

При повторении команды, отправленной Enigmail в командной строке, я получаю более подробное сообщение об ошибке от gpg:

usr/bin/gpg --charset utf-8 --display-charset utf-8 --batch --no-tty --status-fd 2 --decrypt --use-agent test.txt
[GNUPG:] ENC_TO ...
[GNUPG:] USERID_HINT ...
[GNUPG:] NEED_PASSPHRASE 058D6157A587CB0E 7CE559F6FF6E7567 1 0
gpg-agent[12712]: handler 0x7f6d725bf6c0 for fd 6 started
gpg-agent[12712]: starting a new PIN Entry
gpg-agent[12712]: command get_passphrase failed: End of file
gpg: problem with the agent - disabling agent use
gpg: can't query passphrase in batch mode
[GNUPG:] MISSING_PASSPHRASE
gpg-agent[12712]: handler 0x7f6d725bf6c0 for fd 6 terminated
[GNUPG:] BAD_PASSPHRASE 058D6157A587CB0E
gpg: Invalid passphrase; please try again ...

Я уже пробовал использовать gpg2 вместо gpg, с очисткой и переустановкой gpg-agent, с указанием pinentry-program "/usr/bin/pinentry-qt4" в gpg-agent.conf (также с другими вариантами, такими как pinentry-X11), с удалением use-agent в gpg.conf и опций enigmail (дает gpg: can't query passphrase in batch mode).

Я пытался запустить pinentry из командной строки, но я не знаю синтаксис его команд.

Я нашел только отчеты об ошибках для Mac в сети, которые в основном решались путем установки более новых версий их метапакетов.

Обновление: после переключения на gpg2, остановки gpg-agent и добавления --no-batch в опции пользовательских команд enigmail я смог зашифровать почту. Похоже, без gpg-agent, pinentry(-qt4) работает нормально. Глядя на исходный код gpg-agent, я могу только предположить, что у него есть проблемы с запросом кеша для пароля. Но архитектура кэширования gpg-agent мне кажется нетривиальной.

0