我正在使用 user cookbook ,这适用于所有其他用户帐户。
我可以使用数据包中列出的 key 填充 root 用户的 authorized_keys
文件,但密码仍未设置。
这是我的根用户数据包 (data_bags/users/root.json
) 的内容:
{
"id": "root",
"uid": 0,
"home": "/root",
"home_dir_mode": "0700",
"password": "shadowpasswordhash",
"ssh_keys": [
"ssh-rsa averylongkey"
],
"ssh_keygen": false
}
最佳答案
这可能是那本 Recipe 中的错误。
我会使用由 Seth Vargo 维护的“官方”社区 Recipe ( http://community.opscode.com/cookbooks/users ) 而不是那个。
郑重声明,我成功地使用了标准的user
resource 来管理root 用户密码。考虑到敏感性,最好将根帐户与其他用户帐户分开处理。
例如,您可以使用内置的 user
资源设置 root 密码,如下所示:
password_hash = ...
user "Setting root password" do
username 'root'
password password_hash
action :modify
end
设置 SSH key 需要确保 /root/.ssh/
目录存在并具有正确的权限,然后创建 /root/.ssh/authorized_keys
包含公钥并具有正确的权限。像这样:
public_key = ...
directory "/root/.ssh" do
owner "root"
mode 0700
end
file "/root/.ssh/authorized_keys" do
owner "root"
mode "600"
content public_key
end
关于chef-infra - 使用 chef (solo) 如何设置 root 用户的密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24784646/