2016-11-30 170 views
0

我想使用厨师在vm1和vm2之间启用无密码密钥登录。
我知道的手动步骤是:启用无密码登录密码

  1. SSH-凯基-f -t id_rsa_2 RSA -N上VM1 ''
  2. 复制产生id_rsa.pub的内容,登录用户名和密码的VM2 ,在vm2上添加authorized_keys的内容

然后,我可以从vm1登录到vm2,无需任何密码。

现在,当使用厨师,我想动态生成密钥对。
然后使用vm1上的shell脚本(需要将vm2的密码传递给此shell脚本)将公共密钥置于vm2上。
所以我需要把vm2的密码放在某个地方(可能在一个属性中),但我不想直接存储密码或使用简单的加密。

有没有更安全的方法来实现这一目标?谢谢。

回答

0

,我会去周围的其他方法
节省的VM1节点数据生成的公钥,然后在VM2去索要VM1属性(使用搜索,获得了“合作伙伴”的主机)和写在公钥allowed_hosts文件(带模板)。

这样您就不必从vm1连接到vm2并发送密码,缺点是搜索可能会滞后一段时间,所以在获得所需状态之前,可能需要在每台机器上运行2次。

另一种选择是使用chef-vault存储vm2密码并仅允许vm1读取它。

0

厨师做到这一点的方法是提前将相关的钥匙存储在某个地方(例如厨师保险箱,尽管这不是一个好的选择),然后使用厨师来配置根据需要相关的文件。使用Chef数据进行这种自主集群管理是可能的,但是要做到正确,很容易,只需要以自上而下的方式指定。