我的一个朋友最近更新了他的 OpenPGP 密钥。我无法在我的 Thunderbird 中打开从该朋友收到的加密电子邮件。我使用 Enigmail,出现以下错误:
Enigmail Security Info
Error - no matching private/secret key found to decrypt message
gpg: decryption failed: No secret key
Note: The message is encrypted for the following User ID's / Keys:
<hidden key>,
<hidden key>
但是,如果我可以使用命令行解密加密文本。那么,它已使用我的密钥正确加密。所有收到该朋友加密电子邮件的人都是这种情况。
那么,到底出了什么问题?如何修复此问题(我相信必须由那位朋友来解决)?
答案1
您的朋友正在使用“隐藏收件人”选项发送邮件,该选项会从 OpenPGP 元数据中删除收件人的密钥 ID。这是为了提供额外的隐私(收件人不再包含在元数据中),但会迫使您的客户端遍历所有可用的私钥。不过,对于普通电子邮件来说,隐藏收件人似乎有点过于谨慎:无论如何,邮件收件人必须与邮件一起存储(如果您希望邮件被送达)。
但 Enigmail 应该会很好地支持这一点。确保您的私钥在 中都可用,gpg --list-secret-subkeys
并gpg2 --list-secret-subkeys
确保不同版本的 GnuPG 之间没有不同的密钥集(它们可能使用不同的位置来存储您的私钥)。
否则,请您的朋友发送邮件而不使用隐藏收件人功能。
答案2
发件人应throw-keyids
在其.gnupg/gpg.conf
文件中禁用该选项。