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

tma*_*urg 5 encryption passwords emacs gnome-keyring gnupg

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

gpg: AES encrypted data
gpg: gcry_kdf_derive failed: Invalid data
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key
Run Code Online (Sandbox Code Playgroud)

我在 Emacs 中打开文件时收到此消息,但在使用gpg2 -d the_file.gpg.

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

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

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

我正在使用 Xubuntu 16.04。

Mat*_*vid 1

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

事实上有一个用于保存密码的复选框表明您没有使用pinentryvia gpg-agent,而是Seahorse via gnome-keyring。我建议阅读“管理密码”部分,并尝试以这种方式找到不良关联(该特定文件的空通行证)。

由于您提到在 Seahorse 中寻找密钥 - 如果您使用对称加密,则密码将不会任何 GPG 加密密钥关联。(我发现 GPG 在这方面有所欠缺,详情请参见此处。)