如何正确更改GPG秘钥的密码?

如何正确更改GPG秘钥的密码?

我正在尝试更改 GPG 密钥的密码。

我实际上使用 seahorse 更改了它(也尝试过gpg --edit-keyspasswd,但是当我尝试导出我的私钥时,它现在要求我输入两个密码(新的和旧的)并使用旧的作为子密钥。

现在我必须记住两个复杂的密码!

更改GPG密钥密码的正确方法是什么?

答案1

Seahorse(又名 GNOME 密码和密钥)维护者在这里。

由于没有足够的声誉,我无法在这里评论 RubberStamp 的答案,但是 Seahorse开始使用 gpgme_op_passwd(或者更确切地说是它的异步变体gpgme_op_passwd_start)在 Seahorse 3.32 中。

代码在此之前就已经在 master 中了(大约在验证答案之前一个月),但发布是从 3 月 12 日开始的。根据您的发行版包含的版本,这应该已经被修复了。如果没有,请随时提出问题:-)。

答案2

对于 GPG 2.1 及更高版本,私钥存储在~/.gnupg/private-keys-v1.d 每个密钥(包括子密钥)中,使用密钥的 keygrip 作为文件名存储为单独的文件:

<keygrip>.key

当使用gpg --edit-key更改密码时,私钥目录中的所有子密钥都会被修改。

不过,似乎seahorse只是修改主密钥的私钥文件。

所以,看起来这是一个错误seahorse。这可能是早期版本的回归gpg,早期版本将私钥存储在密钥环结构中,就像公钥一样。此行为在 2.1 及更高版本中已更改。

用测试密钥进行简单的测试结果,表明海马只修改了主密钥的私钥文件。

具有三个子键的测试键

pub   ed25519 2018-12-24 [SC]
      988D29CB7CA9D62252B22DEFB42E56952F9FB61C
      Keygrip = 8226D19110BAC4FB4D60BC25869E5F23C1BB667F
uid           [ultimate] delete me (Delete Me) <[email protected]>
sub   cv25519 2018-12-24 [E]
      Keygrip = 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C
sub   ed25519 2019-03-25 [SA]
      Keygrip = 269995721854253C5F8B48CB40DD24948D580F8C
sub   ed25519 2019-03-25 [SA]
      Keygrip = 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB

密码短语更改为seahorse

-rw------- 1 user user  333 Mar 25 09:27 8226D19110BAC4FB4D60BC25869E5F23C1BB667F.key
-rw------- 1 user user  333 Mar 25 09:08 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB.key
-rw------- 1 user user  333 Mar 25 09:08 269995721854253C5F8B48CB40DD24948D580F8C.key
-rw------- 1 user user  341 Mar 25 09:08 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C.key

密码短语更改为gpg --edit-key

-rw------- 1 user user  333 Mar 25 09:37 604E0E8F9D9C2B19A823E22A90F08EC2DDCA80BB.key
-rw------- 1 user user  333 Mar 25 09:37 269995721854253C5F8B48CB40DD24948D580F8C.key
-rw------- 1 user user  341 Mar 25 09:37 04B4D2C5CC29926F48DA2C4FD24F03B9595AE51C.key
-rw------- 1 user user  333 Mar 25 09:37 8226D19110BAC4FB4D60BC25869E5F23C1BB667F.key

海马源码检查

在查看了一些 Seahorse 源代码后,该行为似乎与旧的秘密密钥环 gpg 方法一致。

根据gpgme文档,应使用以下命令更改密码gpgmegpgme_op_passwd函数调用。不过,这个函数调用并没有出现在海马源码中。

相关内容