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

时间:2016-01-24 19:35:25

标签: ansible

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

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

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

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

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

有没有一种安全的方法来使用拱形ssh密钥?或者说这只是一种先前要求ssh密码短语的方式?

1 个答案:

答案 0 :(得分:2)

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

为避免每次都使用ssh-agent提示输入SSH密码,该代理将凭据缓存在内存中并避免提示。我在我的设置中使用了这个startup script,效果很好。

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