在新系统上将我的密钥导入 GnuPG 时,我考虑了以下几点:
问题
- 是否可以同步 gpg 和 gpg2(gpg2.1)钥匙串?
- 这样做明智吗?
考虑到
我找到了这个回答“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 交互。如果您遇到任何问题,返回会很容易(或者简单地保留gpg
为gpg1
以保留 GnuPG 1,但将默认值更改为 GnuPG 2.x)。