Ansible:我可以使用在Vault中加密的ssh密钥吗?

Geo*_*999 5 ansible

我们有一个ansible服务器设置,我们的ansible代码存储在git repos中.ansible配置的所有服务器当前都使用来自控制服务器的SSH密钥进行访问.但是,我想将密钥包含在ansible git repos中(在Vault中加密).我想这样做:

1)如果我们的ansible服务器遭到入侵/有不可恢复的硬盘驱动器故障/其他一些故障,我们就不必生成新的ssh密钥并将其复制到每个ansible服务器,然后我们再次运行ansible任务

2)感觉它应该在repos中,因为它是访问服务器的setup/config的一部分

3)我们在保险库中存储了其他数据,并且必须为保险库输入一个密码,另一个用于SSH密码短语是一种痛苦

我们通过在磁盘上创建一个临时文件来编写一个自定义任务的编码,但它有点像内置的内容.我也喜欢内置解密只保存ram文件的方式.另一个问题是我们找不到一个可以保证在发生故障的情况下运行的方法,因此清理我们创建的临时文件(有点像编程中的确保块)

有没有一种安全的方法来使用拱形ssh密钥?或者没有提到只是一种方法来提前询问ssh密码?

Dav*_*ier 3

理想情况下,每个用户都应该拥有自己的私钥,他们使用控制服务器上的私钥来访问部署帐户。这样,如果某人离开或不再需要访问服务器来运行,您可以更轻松地撤销他们的访问权限。这还允许您控制它们运行的​​服务器。

为了避免每次都提示输入 SSH 密码,请使用 ssh-agent,它将凭据缓存在内存中并避免出现提示。我在我的设置中使用了这个启动脚本,它运行良好。

将凭据提交到源代码存储库并不是良好的安全实践(尽管我也这样做过)。在 ansible 服务器上备份用户的主目录可以保护私钥免受硬盘驱动器故障的影响。