更新资料
从Ubuntu 16.04开始,该插件将按预期工作,并且无需按照已接受的答案中的建议进行降级。这个问题适用于Ubuntu 15.04,也许适用于15.10。
原始帖子
我多年来一直在使用Thunderbird + Enigmail。我目前在工作PC(Ubuntu 15.04 64位,带有Gnome Shell)中使用Thunderbird 38.5.1,Enigmail 1.9版(20160223-1641)和GPG 2.0.26。
几天前,经过1年以上的运行,每当我尝试发送经过签名或加密的电子邮件时,Enigmail突然开始抱怨以下错误:
GnuPG报告了与gpg-agent(GnuPG的一个组成部分)的通讯错误。
这是系统设置或配置错误,导致Enigmail无法正常工作,无法自动修复。
强烈建议您访问我们的支持网站,网址为 https://enigmail.net/faq。
我浏览了“常见问题解答”页面并尝试了几种方法,但仍无法解决问题。
该pinentry
命令运行正常,并显示pinentry-qt4
窗口(即,不是基于文本的):
pinentry <<EOT
SETDESC Hello World
CONFIRM
EOT
但是,该gpg-agent-connect
命令失败:
gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
ERR 280 not implemented
我已经尝试按照建议禁用gnome密钥环,但是它也不起作用。(是的,我确实在两者之间重启了系统,但我也想照常启用密钥环。)我还尝试了导出和重新导入我的Enigmail设置(即$HOME/.gnupg/
,同时重命名为其他名称),但是也不行。
奇怪的是,当我gpg-agent
从shell手动启动,然后启动Thunderbird时,似乎正在与进行通信gpg-agent
,如下所示:
gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh
gpg-agent[6469]: enabled debug flags: command cache assuan
gpg-agent[6469]: directory `/home/ray/.gnupg' created
gpg-agent[6469]: directory `/home/ray/.gnupg/private-keys-v1.d' created
gpg-agent[6469]: listening on socket `/home/ray/.gnupg/S.gpg-agent'
gpg-agent[6470]: gpg-agent (GnuPG) 2.0.26 started
#
# Thunderbird started at this point
#
$ gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 started
gpg-agent[6470]: chan_7 -> OK Pleased to meet you, process 6470
gpg-agent[6470]: chan_6 <- OK Pleased to meet you, process 6470
gpg-agent[6470]: chan_6 -> GETINFO pid
gpg-agent[6470]: chan_7 <- GETINFO pid
gpg-agent[6470]: chan_7 -> D 6470
gpg-agent[6470]: chan_7 -> OK
gpg-agent[6470]: chan_6 <- D 6470
gpg-agent[6470]: chan_6 <- OK
gpg-agent[6470]: chan_6 -> BYE
gpg-agent[6470]: chan_7 <- BYE
gpg-agent[6470]: chan_7 -> OK closing connection
gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 terminated
但是,如果我尝试发送签名和/或加密的电子邮件,则看不到任何输出。仅在启动Thunderbird时显示。
另外,我/usr/bin/gpg-agent --daemon
在Gnome Startup Applications面板中将命令添加为启动应用程序,但没有什么区别。
我想我在2/23左右进行了定期更新,但是直到系统于本周2/24重新启动后,问题才变得可见。不幸的是,我不记得更新了哪些软件包,但是数量不多。(我通常会保持系统更新。)
请注意,直到大约2天前,这已经解决了数年之久。(我还在家用台式电脑中使用此设置达4年以上,但没有问题,但我的工作电脑是笔记本电脑,由于未知原因,Ubuntu有时无法很好地工作……)
当我尝试打开我收到的加密电子邮件(或保存的草稿,它们也被加密)时,我收到关于的相同错误消息gpg-agent
,但是在询问我私钥密码短语后,它确实对电子邮件进行了解密。
问: 我该如何解决导致我无法发送签名/加密电子邮件的通信错误?
要考虑已解决的问题,情况需要恢复正常工作,而不会出现错误消息等。
在此先感谢您可以提供任何帮助来解决此问题的帮助。
在撰写本文时,我注意到gpg-agent
终端中的守护程序发出了以下消息:
# ...from previous output above
gpg-agent[6470]: chan_7 -> OK closing connection
gpg-agent[6470]: handler 0x558fd8c23cf0 for fd 7 terminated
#
# new/unexpected error message from agent
#
gpg-agent[6470]: can't connect my own socket: IPC connect call failed
gpg-agent[6470]: this process is useless - shutting down
gpg-agent[6470]: gpg-agent (GnuPG) 2.0.26 stopped
这出乎意料地出现了,因为在此期间我没有要求雷鸟做任何特别的事情。
我从15.04-> 15.10-> 16.04更新,可以确认Thunderbird 38.6 + Enigmail 1.9.1对我来说正常工作。命令的输出也应该是它们的输出:
➜ ~ pinentry <<EOT
heredoc> SETDESC Hello World
heredoc> CONFIRM
heredoc> EOT
OK Pleased to meet you
OK
OK
➜ ~ gpg-connect-agent <<EOT
heredoc> GETINFO version
heredoc> EOT
D 2.1.11
OK
ERROR check_hijack
确实在排放?常见问题解答似乎已过时,我不确定查看Enigmail调试日志的选项在哪里了。
Enigmail > Debugging Options > View Log
揭示WARNING: The GNOME keyring manager hijacked the GnuPG agent
。所以我很确定GnomeKeyring是相关的。echo | gpg2 --sign
在CLI上显示问题。遗憾的是,禁用gnome-keyring(作为唯一的解决方法)对我来说不是一个选择。