0

我将 CentOS 7 和 GnuPG 2.0 用于我的一个使用加密和解密的应用程序。

现在我正在尝试在名为服务器 A 和服务器 B 的两台服务器上水平扩展我的应用程序。

假设应用程序在服务器 A 上创建了一个私钥/公钥对,我如何在服务器 B 中共享相同的密钥集,反之亦然,以便应用程序可以从任一服务器访问相同的密钥集?

4

1 回答 1

1

鉴于您没有描述任何不在本地存储的方法,您可能正在使用普通的 GnuPG 主目录,其中私钥存储在钥匙串中。只需导出此密钥 ( gpg --export-secret-keys <key-id>),然后gpg --import使用相同的机制将其导入 ( ) 以分发其他凭据(数据库,...)。

GnuPG 密钥不会“自行”更改,通常是持久的,创建通常是手动过程;所以你不需要主动监控和同步它们。只需在他们实际更改的极少数情况下推出新副本。再次 - 将该过程与数据库密码或其他机密进行比较。

如果实际上定期重新生成密钥,则在创建新密钥时必须运行导出导入过程(并确保考虑同步过程尚未完成的时间问题,但访问已经在服务器之间传播)。

一种(更复杂且容易出错,如果您不详细了解该技术)的替代方法是使用gpg-agent通过网络共享的套接字,例如通过使用 SSH 隧道或类似解决方案。这允许所有连接的服务器使用私钥,而无需将其存储在本地。如果您不能(可能不会)在本地存储私钥,这可能尤其重要。使用gpg-agent套接字共享,私钥永远不会离开服务器运行gpg-agent,它执行所有私钥操作(处理加密的主要部分通常由实际数据的对称加密形成,但请确保您不会遇到扩展问题!)。

于 2017-11-05T18:46:42.067 回答