我正在使用CentOS 7和GnuPG 2.0来处理使用加密和解密的应用程序。
现在我正在尝试在名为服务器A和服务器B的两台服务器上水平扩展我的应用程序。
假设应用程序在服务器A上创建私钥/公钥对,如何在服务器B中共享相同的集合,反之亦然,以便应用程序可以从任一服务器访问同一组密钥? / p>
答案 0 :(得分:1)
鉴于您没有描述任何不存储本地的方法,您可能正在使用普通的GnuPG主目录,其中私钥存储在钥匙串中。只需导出此密钥(gpg --export-secret-keys <key-id>
),然后使用相同的机制导入它(gpg --import
)以分发其他凭据(数据库,...)。
GnuPG键不会“自行”改变,通常是持久的,创作通常是手动过程;所以你不需要主动监控和同步它们。只需在实际更改的极少数情况下推出新副本。再次 - 将进程与数据库密码或其他秘密进行比较。
如果实际上是经常重新生成密钥,则每次创建新密钥时都必须运行export-import-process(并且一定要考虑同步过程的时序问题尚未完成,但访问已经在服务器之间传播)。
A(更复杂且容易出错,如果您不详细了解该技术)替代方案是使用通过网络共享的gpg-agent
套接字,例如使用SSH隧道或类似解决方案。这允许所有连接的服务器使用私钥,而无需在本地存储。如果您不能(可能不)在本地存储私钥,这可能尤为重要。使用gpg-agent
套接字共享,私钥永远不会离开运行gpg-agent
的服务器,后者执行所有私钥操作(处理加密的主要部分通常由实际数据的对称加密形成,但是确保你没有遇到扩展问题!)。