【发布时间】:2014-05-13 14:34:45
【问题描述】:
我想向使用 Chef 的机器添加一个私有 SSH 密钥。
我是 Chef 的新手,而不是 ruby 程序员,所以下面的代码可能不是最佳的
我的食谱包括以下内容:
execute "add private ssh key" do
command 'ssh-add ' + ::File.join('/home', node['user'], '.ssh/keys/id_rsa')
user node['user']
end
在目标机器上运行 sudo chef-client 时,在尝试添加 SSH 密钥时,我们会收到“无法打开与您的身份验证代理的连接”。
这表明 ssh 客户端没有运行,因此我将配方更改为以 eval $(ssh-agent) && 开头以启动客户端。之后在 shell 中运行sudo chef-client,我们看到绿色的命令,表示命令执行成功。
但是,没有为登录用户添加id_rsa 密钥,我看到 SSH 客户端没有运行。
我可能叫错了 tee,但这表明密钥是为其他用户添加的 - 可能是使用 sudo 运行 Chef 的副作用(不使用 sudo 时 Chef 不起作用)。
有没有人解决过这个问题,或者使用 Chef 向机器添加 SSH 密钥?
【问题讨论】:
标签: ruby linux ssh chef-infra chef-recipe