确保你的 GnuPG 私钥备份是完整的
本文最后更新于 250 天前,其中的信息可能已经有所发展或是发生改变。

之前趁 Cloudflare 与 Yubico 联合举行促销活动,决定入手新的 Yubikey 5 来更换我手中的旧版 Yubikey(为了使用新的固件),等了两个月总算到了(海关与邮政整活整了一个月)。

但是迁移 GnuPG 密钥的时候出现了点问题,发现没有成功导入子私钥,这下出问题了,子私钥丢了需要吊销,需要重新分发新的子密钥,很麻烦,我以为我当初备份时忘记备份子密钥了(之前有个老密钥就是丢了子密钥),后来找到了一些资料,才发现其实是 GPG 出问题了,删掉密钥后重新导入就好了,但这也给我了一个提醒,备份私钥后要确保密钥是完整的,才算备份完成。

因此,在这里分享一个方法,来告诉大伙如何确保私钥的备份是完整的。

检查私钥文件

首先,你需要知道你自己的密钥有多少个子密钥,这里以 Alice (虚构的,经典密码学 Alice)的密钥为例子,Ta 的密钥有两个子密钥:

Alice 的密钥

现在我们将 Alice 的私钥从 GnuPG 密钥环中导出,然后使用 --list-packets 命令检查私钥文件:

$ gpg -a -o ./Alice.private.keys --export-secret-keys Alice
$ gpg --list-packets ./Alice.private.keys
执行 --list-packets 后的结果

从命令输出中,可以找到两个“secret sub key packet”(tag 为 7)和主私钥对子密钥的签名,在 pkey[0]pkey[1] 中还能得知子密钥的算法与子密钥的长度,只要子密钥的数量算法和密钥长度都正确,那么这个私钥文件就是完整的私钥备份了。


参考资料

上一篇
下一篇