GPG 子项似乎有不同的密码

GPG 子项似乎有不同的密码

我最近用 Thunderbird 创建了一个新的 OpenGPG 密钥并将其导出以用于 gpg。但是,我无法在 Thunderbird 之外解密任何东西,因为我的子密钥(用于加密)似乎受与主密钥不同的密码保护。

当我尝试更改密钥的密码时,系统会要求我提供第一个密钥(FF120B...)的当前密码,然后我输入一个新密码,这没什么不寻常的。但之后系统又要求我提供子密钥(ABC1AA...)的密码,而我不知道这个密码。

我读过了这里,无法为子密钥设置单独的密码,那么这个问题的原因可能是什么呢?

>gpg --expert --edit-key 3A069C...
gpg (GnuPG) 2.2.25; Copyright (C) 2020 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

sec  ed25519/FF120B...
     created: 2020-11-25  expires: 2024-11-24  usage: SC
     trust: ultimate      validity: ultimate
ssb  cv25519/ABC1AA...
     created: 2020-11-25  expires: 2024-11-24  usage: E
[ultimate] (1). Name <email>

gpg>

答案1

这有点已知错误并且有一个使固定在尚未发布的 thunderbird 使用的 rnp 库版本 v0.16.0 中。

我设法通过以下方式导入密钥

  • 根据自己构建rnphttps://github.com/rnpgp/rnp/blob/master/docs/installation.adoc
  • 用于rnpkeys --import <input-file.asc>导入损坏的导出文件并显示密钥哈希值。
  • 用于rnpkeys --edit-key --check-cv25519-bits <hash-of-broken-subkey>确认错误的键。
  • 用来rnpkeys --edit-key --fix-cv25519-bits <hash-of-broken-subkey>修复错误的键。
  • 用于rnpkeys --export-key --secret --output <output-file.asc> <hash-of-primary-key>导出一个工作密钥,现在我可以毫无问题地使用它。

相关内容