GnuPG 一直在寻找我的坏掉的智能卡

GnuPG 一直在寻找我的坏掉的智能卡

我的智能卡(物理上)坏了。我对密钥进行了离线备份,并成功将其导入 GnuPG。但是,每当我尝试使用密钥解密时,它都会不断要求输入密钥。我甚至在一台新机器上尝试过,但我还是没能成功让 GnuPG 使用本地密钥而不是坏卡上的密钥……

答案1

您必须删除旧的卡钥匙并重新导入。

首先,确保备份确实包含您正在寻找的密钥:

gpg --list-packets [backup-file]

您应该会发现几:secret [sub] key packet行。它们后面不应该有gnu-divert-to-card S2K...或行(可能会出现一些中间行) gnu-dummy S2K....,这些行表示卡或其他离线密钥的 GnuPG 特定密钥存根。

恢复整个密钥

如果您的备份中拥有所有密钥,那就没有问题,您只需运行gpg --delete-secret-key [key-id]备份即可gpg --import

与(新)子密钥合并

如果您在此日期之后更改了密钥(例如,添加了新的子密钥),则必须合并密钥。对于 GnuPG 2.1 或更新版本,这不是问题,它们最终实现了密钥合并。对于旧版本的 GnuPG,您必须手动拆开各个 OpenPGP 数据包(gpgsplit)并将它们重新按正确的顺序组合在一起。最好升级到 GnuPG 2.1,这样就可以了很多更轻松。

通过 删除卡密钥gpg --edit-key [key-id],然后使用gpg --import导入(缺失的)子密钥。GnuPG 2.1 可能会安装为gpg2。请注意,GnuPG 2.1 将密钥存储在文件中pubring.gpg,因此 GnuPG 1 或 2.0 将找不到它,除非您将其再次导出并导入旧版本。

相关内容