我最近用 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>
导出一个工作密钥,现在我可以毫无问题地使用它。