Enigmail无法与gpg-agent通信


10

更新资料

从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


@Socob:您将在哪里检查是否ERROR check_hijack确实在排放?常见问题解答似乎已过时,我不确定查看Enigmail调试日志的选项在哪里了。
code_dredd '16

不幸的是,我不确定,我只是检查了Enigmail的错误跟踪器,并从最顶部看到了该问题,听起来可能会导致此问题。顺便说一句,我遇到了与您相同的问题(Enigmail在很长时间没有问题的情况下给出了此错误消息)。有时间的时候,我会尝试消除这种情况。
索科布'16

@Socob:听起来不错。这不是我第一次遇到这个问题。第一次遇到此问题时,我的PC更换日期已经很接近了,因此在浪费了几个小时试图修复它之后,我将其忽略了。这次我不能忽略它,我又花了几个小时。我会不时尝试。希望你比我好运。
code_dredd

1
这里同样的问题。Enigmail > Debugging Options > View Log揭示WARNING: The GNOME keyring manager hijacked the GnuPG agent。所以我很确定GnomeKeyring是相关的。echo | gpg2 --sign在CLI上显示问题。遗憾的是,禁用gnome-keyring(作为唯一的解决方法)对我来说不是一个选择。
meisterluk '16

Answers:


5

尽管thisthatother答案仅显示了如何在Debian系统上解决该问题,但是方法是相同的:

降级。

自Enigmail于2月23日发布1.9版以来,问题从当日开始出现,因此仅有的三种解决方案是:

  1. 等待Enigmail整理内容并将其更新安装到1.9.x,并停止使用加密,直到他们提供更新为止
  2. 自行研究并解决问题(由于对底层软件体系结构的了解有限,因此并非每个人都能做到)
  3. 降级到1.8.2,然后等待Enigmail整理内容并升级到1.9.x,以解决1.9出现的错误。

我不能帮忙1或2,但不能拨3:

  • 下载Enigmail 1.8.2,这是最新的1.9之前的版本,没有引入错误。
  • 通过Thunderbird加载项菜单卸载Enigmail 1.9
  • 在同一菜单内,通过单击Thunderbird附件页面顶部,搜索文本输入字段左侧的“附件配置”按钮,手动安装下载的1.8.2文件。
  • 重新启动雷鸟

现在,它应该可以像更新Enigmail 1.9一样工作。

我建议禁用Enigmail的自动更新,直到解决了1.9中引入的错误为止。您可以通过在Thunderbird附件页面的Enigmail扩展名的描述文本中单击“更多”链接来禁用它们。


我认为您的意思是“我不能帮助1或2,但不能帮助3 ”。
索科布'16

1
@Bran:请注意,在切换Enigmail版本后,即使重新启动Thunderbird,您也可能会收到一条有关找不到或“过期”密钥的错误消息。实际上,我必须完全重新启动PC才能解决该问题。不管好坏,这似乎是目前唯一可行的解​​决方案。相反,打破他们的软件,他们应该已经给用户一个选项,选择做什么(例如允许通过GNOME钥匙圈互动)
code_dredd

1
实际消息:Enigmail Key ... not found or not valid. The (sub-)key might have expired.
code_dredd '16

嗯,由于其中一个维护者在发布后不久就创建了一个错误报告,因此这似乎不是有意更改。奇怪的是,相关的错误报告已被删除,但是……
Socob

@thisthatother的方法也适用于ubuntu,请参见packages.ubuntu.com/search?keywords=enigmail ... Ubuntu目前为所有ubuntu版本提供enigmail apckage版本1.8.2。
马提亚斯

5

非常感谢大家在此问题上的详细投入。

自2月25日我的系统更新为Enigmail 1.9以来,我遇到了类似的问题。我通过卸载Enigmail 1.9并切换到1.8来解决了该问题。

对我来说,这很容易,因为我使用Debian 8,我只是将Enigmail卸载为一个独立的插件,然后将其替换为Debian主存储库对Enigmail的翻译(某些研究表明,该版本恰好是1.8.2版)。耸耸肩。自从更改以来,没有任何问题。我希望这对其他人有用,并再次感谢您使我走上正确解决问题的道路。


感谢以前的海报提供的详细信息,这些信息帮助我找到了针对我的特殊情况的解决方案。我希望它对其他人也有帮助
thatthatother

有趣的发现。但是,我没有使用Debian,虽然Debian特定的解决方案可能只适用于少数几个,但最好使用更通用的解决方案。
–'code_dredd

1
好吧,这在任何情况下都应该有效–只需使用较早版本的Enigmail(我认为.xpi文件不应该存在任何兼容性问题)。
索科布'16

此替代方法也为我解决了该问题。此后没有问题。
马赛厄斯

2

无需降级enigmail插件:

  • 项目清单
  • Ubuntu 16.04
  • 雷鸟45.2.0
  • Enigmail 1.9.5
  • gpg(GnuPG)1.4.20

在终端:

killall gpg-agent
export GPG_TTY=$(tty)
gpg-agent --daemon /bin/bash

(--use-standard-socket已过时)

无需重新启动Thunderbird。


真正。我已经说过没有必要降级为评论,但是我已经更新了帖子以使其非常明显。
–'code_dredd

1

从某种意义上说,我遇到了同样的问题:Enigmail工作了几个月后,突然在每次操作中都抛出了此错误消息。禁用GNOME密钥环的GPG密码代理组件对我来说解决了这个问题gpg-agent-Enigmail 然后将“原始” 与pinentry程序一起使用(而不是GNOME密钥环密码提示),并且一切正常。

我使用默认的Ubuntu“启动应用程序”程序禁用了GNOME密钥环GPG密码组件:

使用“启动应用程序”禁用GPG密码代理(来自GNOME密钥管理器)

您说您确实尝试禁用GNOME密钥环,并且您正在使用GNOME Shell。也许那不能正常工作?您可以尝试使用与我相同的步骤(“启动应用程序” /“团结”),看看是否有任何改变。

似乎此问题是由于自早期以来Enigmail的最新更新(版本1.9已于2016年2月23日发布)引起,它可以与GNOME Keyring一起使用而不会产生此错误。禁用GNOME密钥环可以解决问题(和时间安排),这一事实表明与Enigmail错误#575有关。


昨天我可以对此进行进一步的研究。我确实发现该ERROR hijack消息显示在日志中。我曾尝试禁用您已经拥有的相同选项,但是问题是当我这样做时,便再也无法与之对话了,gpg-agent因为pinentry密码短语的提示从未出现(即,我之前收到了另一条错误消息)与的任何通讯尝试gpg-agent。我明天再去上班时会再考虑一下。
–'code_dredd

Enigmail错误链接已损坏...
xuhdev

@xuhdev是的,该错误在创建后不久就被删除。我不知道为什么。
索科布
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.