如何在多台设备上共享一个PGP密钥?

如何将pgp密钥从一台机器导出并导入到另一台机器? 我唯一找到的方法(在seahorse中)是将其导入到“其他密钥”部分。
但我想要在不同的机器上使用同一个pgp密钥。 通过终端和gpg来解决这个问题更容易吗? 我对seahorse有点困惑。
1个回答

在终端中运行以下命令:
gpg --export-secret-key -a > secretkey.asc

在另一个系统上,使用以下命令导入密钥:
gpg --import secretkey.asc

如果你有其他系统的ssh访问权限,你也可以将这两个操作合并为一个命令。
gpg --export-secret-key -a | ssh othermachine gpg --import -

一旦密钥文件完成了它们的任务,请安全删除它们
shred secretkey.asc && rm secretkey.asc

或者

shred --remove secretkey.asc

确保使用剪碎和删除密钥的方式,而不是普通的删除。此外,不要使用 mv 命令移动密钥文件,而是先复制它,然后再剪碎和删除原始文件。这些方法可以防止攻击者通过低级位检查来恢复密钥。

7这是复制密钥的正确方法。然而,我建议创建子密钥,只复制那些子密钥。主要计算机将保留主密钥,以便在子密钥被破坏时可以撤销单个子密钥。请参考https://wiki.debian.org/subkeys上的示例,了解如何执行此操作。(我可能会找时间在这里写一个答案。) - gertvdijk
4在使用之前,您还需要信任目标机器上的导入密钥:http://stackoverflow.com/a/10718194/1610035 - ajdev8
注意:如果收到错误消息“从代理程序接收密钥时出错:超时 - 跳过”,我们需要通过gpgconf --kill gpg-agent重新启动gpg代理服务,然后重新导出私钥。 - HaxtraZ
执行ssh命令时出现“向代理发送错误:设备不支持不适当的ioctl”。两个系统上的不同Unix用户名是否受支持? - Bram