分布式web应用程序的Git部署策略

分布式web应用程序的Git部署策略,git,security,deployment,ssh-keys,ansible,Git,Security,Deployment,Ssh Keys,Ansible,我有一个PHP web应用程序,在负载平衡器后面的两台服务器上运行相同的代码(可能会添加更多)。 代码保存在私有的BitBucket存储库中。我很难找到适合这种情况的最佳部署策略 目前,我已经在使用Ansible来配置服务器,所以我所做的是使用将代码从存储库签出到服务器中。由于代码存储在私有存储库中,因此我添加了一个将授权ssh私钥复制到服务器的重头戏,该私钥稍后将在git签出期间指定为密钥文件。密钥是用密码加密的 密钥和配置手册也被签入git 到目前为止,它运行得很好,但尽管我不确定它出了什么

我有一个PHP web应用程序,在负载平衡器后面的两台服务器上运行相同的代码(可能会添加更多)。 代码保存在私有的BitBucket存储库中。我很难找到适合这种情况的最佳部署策略

目前,我已经在使用Ansible来配置服务器,所以我所做的是使用将代码从存储库签出到服务器中。由于代码存储在私有存储库中,因此我添加了一个将授权ssh私钥复制到服务器的重头戏,该私钥稍后将在git签出期间指定为密钥文件。密钥是用密码加密的

密钥和配置手册也被签入git

到目前为止,它运行得很好,但尽管我不确定它出了什么问题,但我担心安全问题。我忍不住觉得我做错了什么,将ssh密钥检查到VCS中,并在所有服务器上使用相同的密钥


我应该做些什么来保证它的安全?

这个问题非常广泛,但我认为使用Ansible Vault是正确的方法。您正在git存储库中签入ssh密钥,但它们是加密的,您只能使用密码对其进行解密


如果您想提高更高的安全性,可以尝试像我一样创建
4096
8192
ssh密钥。一般来说,ssh密钥身份验证是非常安全的,因为每次使用私钥/公钥对时都会生成唯一的指纹。

这是一个非常重要的主题,对我来说安全的可能不适合你

但总的来说没关系,但我会坚持以下几点

  • 使用部署人员对其所能做的事情应具有有限的访问权限(如果可能)
  • 如果密钥被泄露,您可以使用授权的_密钥来限制密钥的来源
  • 正如Rico所说,使用高位密钥