跳转至内容

Paperkey

来自 ArchWiki

Paperkey 是一个命令行工具,用于将 OpenPGP 密钥打印在纸上。它通过从私钥中移除公钥部分来减小导出密钥的尺寸。Paperkey 还包含 CRC-24 校验和,以允许用户检查其私钥是否已正确恢复。

安装

安装 paperkey 软件包。

用法

备份

警告 恢复 paperkey 备份时,您需要有公钥!由于您的公钥可以公开可用,因此可以考虑将其上传到 密钥服务器

要创建 GnuPG 密钥的备份,请将私钥通过管道传输给 paperkey:

$ gpg --export-secret-key key-id | paperkey --output secret-key-paper.asc

恢复密钥

要恢复私钥,您需要有一个包含 paperkey 数据和公钥的文件。然后运行以下命令将私钥导入到 ~/.gnupg

$ paperkey --pubring public-key.gpg --secrets secret-key-paper.asc | gpg --import

或者,将私钥恢复到文件:

$ paperkey --pubring public-key.gpg --secrets secret-key-paper.asc --output secret-key.gpg

错误:无法解析 OpenPGP 数据包(这是加密文本数据吗?)

如果您在恢复密钥时遇到此错误,您需要先对公钥进行反加密。

$ gpg --dearmor public-key.asc

技巧与提示

如果未提供 --output 参数,paperkey 将其输出到 stdout。可以直接打印密钥而不经过中间文件,这可能存在安全隐患。要做到这一点,请安装 CUPS,然后通过管道传输到 lpr

$ gpg --export-secret-key key-id | paperkey | lpr

将密钥编码为QR码

默认情况下,paperkey 会将私钥输出为人类可读的文本。虽然此格式保证了信息的读取和恢复能力,但并不方便。--output-type raw 选项告诉 paperkey 输出原始私钥数据。这使得可以使用其他编码方式,包括机器可读的编码,例如 QR码

可以使用 qrencode 程序来实现此目的:

$ gpg --export-secret-key key-id | paperkey --output-type raw | qrencode --8bit --output secret-key.qr.png

可以通过 --level H 选项将 纠错级别 提高到最大。这提供了约 30% 的数据丢失恢复率,但会降低 容量。如果私钥不适合 QR 码,还可以使用较低的 QM 纠错级别,分别提供约 25% 和 15% 的恢复率。默认纠错级别是 L,允许恢复约 7% 的丢失数据。

从QR码恢复密钥

使用 zbar 可以使用 摄像头 恢复密钥:

$ zbarcam -1 --raw -Sbinary | paperkey --pubring public-key.gpg | gpg --import

相同的选项也可以应用于 zbarimg

$ zbarimg -1 --raw -q -Sbinary secret-key.qr.png | paperkey --pubring public-key.gpg | gpg --import
提示 使用 -q 选项运行 zbarimg 会在打印解码数据后抑制状态文本的打印。如果不使用该选项,传递给 paperkey 的数据可能会被污染。

如果您使用的是扫描图像,您可能需要通过以下方式对其进行模糊处理:

$ convert secret-key.qr.png -blur 0 secret-key-blurred.qr.png

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.