如何删除使用 GPG 对称加密的文件的错误密码

如何删除使用 GPG 对称加密的文件的错误密码

我使用 Emacs 用对称密钥加密了一个文本文件。解密文件时,程序 pinentry 打开一个窗口供输入密码。我不小心点击了“保存在密码管理器中”复选框,然后按了回车键(无密码)。显然,空密码已存储,现在打开文件时不再提示我输入密码。相反,我收到以下错误消息:

gpg: AES encrypted data
gpg: gcry_kdf_derive failed: Invalid data
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key

当我在 Emacs 中打开文件时以及使用时也会收到此消息gpg2 -d the_file.gpg

如何删除空密码并恢复密码提示?

我已经尝试过的事情(没有成功):

  • 重启,
  • 杀死 gpg-agent,
  • 杀死 gnome-keyring-daemon,
  • 使用海马删除密钥(没有用,因为海马没有列出密钥)

我正在使用 Xubuntu 16.04。

答案1

Ubuntu 16.04 及其衍生版本目前附带 GPG 2.1.11,没有代理则无法使用。此外,自 2.1 以来,代理套接字文件已固定为${GPG_HOMEDIR}/S.gpg-agent。我之所以这么说,是因为我不知道如何通过拥有该文件来gpg-agent争夺gnome-keyring代理,但任何时候都只能有一个人拥有它。

事实上,有一个用于保存密码的复选框表明你没有使用pinentryvia gpg-agent,但是海马通过gnome-keyring。我建议阅读“管理密码”部分,并尝试通过这种方式找到错误的关联(该特定文件的空密码)。

既然你提到在 Seahorse 中寻找密钥——如果你使用对称加密,密码将不是与任何 GPG 加密密钥相关联。(我发现 GPG 在这方面有所欠缺,详情这里

相关内容