无密码启用密钥登录

时间:2016-11-30 09:57:27

标签: chef chef-recipe

我想使用chef来启用vm1和vm2之间没有密码的密钥登录 我知道手动步骤是:

  1. ssh-keygen -f id_rsa_2 -t rsa -N''在vm1上
  2. 复制生成的id_rsa.pub的内容,使用用户名和密码登录vm2,在vm2上添加authorized_keys的内容
  3. 然后我可以从vm1登录到vm2,没有任何密码。

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

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

2 个答案:

答案 0 :(得分:0)

我会走另一条路,
将生成的公钥保存在vm1的节点数据上,然后保存在vm2上,请求vm1属性(使用搜索获取“伙伴”主机)并在allowed_hosts文件中写入公钥(带模板)。 / p>

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

另一种选择可能是使用chef-vault来存储vm2密码,只允许vm1读取它。

答案 1 :(得分:0)

与Chef合作的方法是提前制作相关的密钥并将它们存储在某个地方(例如,厨师保险库,虽然这不是很好的选择),然后仅使用Chef配置相关文件根据需要。使用Chef数据进行这种自主集群管理是可能的,但是做得很好很容易,更容易以自上而下的方式指定事物。

相关问题