同步 GnuPG 1.4 和 GnuPG 2.1 钥匙串

同步 GnuPG 1.4 和 GnuPG 2.1 钥匙串

在新系统上将我的密钥导入 GnuPG 时,我考虑了以下几点:

问题

  1. 是否可以同步 gpg 和 gpg2(gpg2.1)钥匙串?
  2. 这样做明智吗?

考虑到

我找到了这个回答“GnuPG 1 和 GnuPG 2 是否相互兼容?”,其中规定如下:

GnuPG 2.1 带来了一项重要变化,它将以前分开的公钥和私钥环(pubring.gpg 与 secring.gpg)合并到公钥环中。这是以保持兼容性的方式实现的,因此当 GnuPG 2.1 集成私钥环时,您仍然可以使用 GnuPG 1,但私钥的更改不会显示在相应的其他实现中。来自变更日志:
[...] 允许旧版 GnuPG 与 GnuPG 2.1 共存。但是,使用新 gpg 对私钥所做的任何更改都不会在使用 GnuPG 2.1 之前的版本时显示出来,反之亦然。

文件级别的同步没有选项,而且似乎没有内置机制来同步链。

我可以安全地从 gpg 导出所有公共密钥和安全密钥并通过 gpg2(cronjob 等)导入它们,反之亦然,还是这会导致无法预料的后果?

解决方案

我没有自动同步密钥,而是将所有密钥从 gpg 钥匙串转移到 gpg2 钥匙串,并将 gpg2 符号链接到 gpg,以确保我始终使用 gpg2。这似乎比将所有密钥放在不同的密钥环中更好。

gpg --export | gpg2 --import
gpg --export-secret-keys | gpg2 --import
sudo mv /usr/bin/gpg /usr/bin/gpg1
sudo ln -s /usr/bin/gpg2 /usr/bin/gpg

答案1

通过导出和导入进行同步是安全的,但请注意,从 GnuPG 2.1 开始,GnuPG 无法合并秘密子密钥——因此,如果您对 GnuPG 2.1 中的子密钥进行了任何更改,则必须在导入之前删除 GnuPG 1 中的整个密钥。但反过来应该是安全的。我不确定您是否必须导出/导入所有者信任才能进行此同步过程。

为了利用 GnuPG 2.1 的新功能(例如 ECC 密钥等),我宁愿尝试不是使用 GnuPG 1,并改为gpg2使用符号链接gpg。通常它们应该是兼容的,除非其他应用程序以不应该的方式与 GnuPG 交互。如果您遇到任何问题,返回会很容易(或者简单地保留gpggpg1以保留 GnuPG 1,但将默认值更改为 GnuPG 2.x)。

相关内容