GPG 密码更改无效

GPG 密码更改无效

我更改了密钥的密码:

$ gpg --edit-key <PUBKEY_ID>
passwd
<old_passphrase>
<new_passphrase>
<new_passphrase>
save

使用 重新加载gpgconf --reload,但尝试解密时仍使用旧密码。

$ gpg2 -d somefile.gpg其中该文件使用我更改密码的公共子密钥进行加密。它提示我输入密码并且只接受<old_passphrase>

然而,当我再次跑步时$ gpg --edit-key <PUBKEY_ID>passwd要求我使用<new_passphrase>解锁钥匙。

这里出了什么问题?


运行 KDE Neon 5.8(基于 Ubuntu 16.04 Xenial)

$ gpgconf --list-components
gpg:GPG for OpenPGP:/usr/bin/gpg2
gpg-agent:GPG Agent:/usr/bin/gpg-agent
scdaemon:Smartcard Daemon:/usr/lib/gnupg2/scdaemon
gpgsm:GPG for S/MIME:/usr/bin/gpgsm
dirmngr:Key Acquirer:/usr/bin/dirmngr
pinentry:PIN and Passphrase Entry:/usr/bin/pinentry

答案1

请注意,您用来更改密码的命令(在您的问题中)是,gpg而您用来解密的命令是gpg2

这两个命令属于两个独立的 GnuPG 安装。一个可能是 GnuPG 1.4.x(或至少早于 2.1),另一个可能是 GnuPG 2.1.x。这两个版本的 GnuPG 以不同的方式管理密钥。

要更改 的密码gpg2,请使用gpg2 --edit-key(而不是gpg --edit-key

从 ”GnuPG 2.1 中的新增内容”:

为了简化向无加密方法的迁移,gpg检测 a 的存在secring.gpg并将密钥即时转换到 的密钥存储gpg-agent(这是private-keys-v1.dGnuPG 主目录 ( ~/.gnupg) 下的目录)。这只执行一次,secring.gpg然后现有的就不再被 触及gpg。这允许较旧的 GnuPG 版本与 GnuPG 2.1 共存。但是,当使用 2.1 之前版本的 GnuPG 时,使用新版本对私钥所做的任何更改gpg都不会显示,反之亦然。

(请注意,gpg上面的文本指的是gpg2GnuPG 2.1 的可执行文件)

相关内容