如果您真的关心安全性,那么使用基于证书的身份验证系统(如ssh)或使用浏览器客户端证书对Web服务器进行身份验证的方式会更安全。然后您不需要分发密码,但让开发人员向您发送他们的公钥,然后您可以使用它来授权对特定资源的ssh或http访问。
如果你必须有密码,你至少应该将它们与配置的其余部分分开,这样你只需要安全地分发密码,并且可以使用更方便的方法(例如使用git补丁)来发送其余的密码。配置文件。
您可以在VCS中存储配置文件的加密副本。
使用您选择的加密软件单独或以捆绑形式加密配置文件(例如, GnuPG的 ),然后只需检查它们。将密码分发给开发人员,但是您需要分发其他密码。
加密文件会破坏一些VCS功能,如空间效率和差异,但是旁道解决方案也可能会失去这些功能。这样,您仍然拥有历史有限的版本化配置文件的优势。除非配置文件异常大,否则空间效率的损失也应该是微不足道的。
我建议使用Chef(或puppet)。使开发人员能够直接从Chef服务器获取配置文件,并在生产服务器上运行Chef客户端以提取最新的配置。您可以将Chef设置为仅允许安全连接。
如果您的开发人员拥有开发人员计算机,那么他们也可以运行厨师客户端,以便他们不必手动检查厨师服务器是否有更新。
版本控制不是用于管理系统配置和自动化它们被推出......这就是厨师和木偶的用途。