手动输入 GPG 密钥

手动输入 GPG 密钥

十多年前,我导出了我的公钥和私钥(GnuPG v1.4.6),打印出来,压成薄片,然后放在我的保险箱里。我这样做的原因是,如果有必要,我可以手动恢复它们(尤其是私钥)。现在这是必要的。我使用 Emacs(我假设是 ASCII)将密钥输入到我命名为“private-key.txt”的文件中,但 gpg 不接受它。我收到以下消息:

gpg: CRC error; A21451 - CC06B1
gpg: read_block: read error: Invalid keyring
gpg: import from 'private-key.txt' failed: Invalid keyring
gpg: Total number processed: 0

我输入的版本看起来与层压版本相同。也就是说,这些是以“asc armor”格式导出的……如果我没记错的话,是某种 base64……所以我输入的文件是否因为换行符等而混乱。关于如何做到这一点有什么建议吗?我现在无法回忆起 15 年前的所有细节:也许这是不可能的。

答案1

gpg: CRC error; A21451 - CC06B1

这意味着循环冗余校验与转录文本中给出的值不匹配。

错误显示不匹配的 CRC 值(十六进制),其中第一个A21451是 GnuPG 根据您转录的 base64 文本计算出的值,第二个CC06B1是您在 base64 文本最后一行给出的值(=zAax)。

这意味着转录错误文本中的某个地方。请再仔细检查一遍——尤其是那些相似的字体字形,比如数字0和大写0O), 号码1,小写和大写1lI)。

虽然gpg确实允许选择--ignore-crc-error,但我几乎可以保证它只会引发不同的错误,因为数据格式不正确。

底线:在导入密钥之前,您需要纠正至少一个转录错误。

相关内容