我实际上为我的电子邮件帐户启用了外部 GPG 密钥 ID,因此我可以毫无问题地解密/签名。
但是,我发现现在无法使用系统密钥环中的公钥。今天我发现了这个问题,因为我导入了新密钥。我不记得之前需要做什么特别的事情,但现在显然 Thunderbird 无法看到我的 中的新密钥~/.gnupg
。
有没有办法导入所有的公钥?
我实际上为我的电子邮件帐户启用了外部 GPG 密钥 ID,因此我可以毫无问题地解密/签名。
但是,我发现现在无法使用系统密钥环中的公钥。今天我发现了这个问题,因为我导入了新密钥。我不记得之前需要做什么特别的事情,但现在显然 Thunderbird 无法看到我的 中的新密钥~/.gnupg
。
有没有办法导入所有的公钥?
理论上,这是不可能做到的
目前(或至少截至 2020-12-20),Thunderbird尚未计划与外部/系统 GPG 密钥环集成:
官方常见问题解答也指出:
您可以通过 中的 OpenPGP 密钥管理器导入较新版本的公钥
Tools > OpenPGP Key Manager
。如果您已将较新的公钥上传到密钥服务器,您可以尝试Keyserver > Discover Keys Online
查看 Thunderbird 是否可以自动导入它。如果您在文件中有更新的公钥,那么您可以使用 导入它File > Import Public Key(s) From File
。然而...
现在,我最近(2024-04-12)发现一些迹象,表明可能有一种方法可以让 Thunderbird在启用加密选项的情况下,在您向收件人撰写电子邮件时,自动将公钥从您的外部/系统 GPG 密钥环拉入其自己的密钥存储中:
如果设置了这两个选项,那么“解决”丢失的公钥的方法之一是从外部/系统 GPG 密钥环中提取,这有时似乎有效,有时则无效:
我在自己的系统上尝试了此操作,目前运行的是 Thunderbird Beta 131.0b5。它至少看起来是有效的。当我撰写一封电子邮件到带有公钥的地址时,该公钥在我的外部/系统 GPG 密钥环中,但不在 Thunderbird 的密钥存储中,系统会提示我“解决”此问题,并收到几个进一步的提示,最终导入公钥(不是最友好的用户界面,但至少是实用的):
此时,我可以继续写电子邮件并将其以加密形式发送给收件人。
重要的
如果电子邮件地址不在您的外部/系统 GPG 密钥环中,则对话框中将没有关于在那里搜索它的选项;只能在线检查或通过文件导入:
mail.openpgp.allow_external_gnupg
我认为,如果启用和mail.openpgp.fetch_pubkeys_from_gnupg
选项,在 UI 中显示“我们已经检查了您的外部/系统 GPG 密钥环并且没有发现任何东西”会很好。这不是一个完美的同步解决方案,但源代码中至少有一些尝试来处理保持外部/系统 GPG 密钥环和 Thunderbird 的密钥存储同步(
/mail/extensions/openpgp/content/modules/keyRing.jsm
):