我正在使用 knife-solo 在 Linode 配置我的第一台服务器。一切正常,但我刚刚添加了一个步骤,通过该步骤我禁用了 root 登录以获得额外的安全性。我的理解是,每当我向配置中添加新项目时,我都应该重新运行 chef 来应用它们,而不是手动执行,但一旦我锁定,这是不可能的。
以下哪种方法(或替代方法)更好:
- 我可以在脚本开始时解锁根访问权限,并在结束时再次锁定它。
- 我可以将其锁定为第一步,并以另一个用户的身份安装包括服务器(在我的情况下是 nginx)在内的所有软件包。
答案1
PermitRootLogin
是一个 SSH 设置,如果系统上有其他用户,则没关系,可以运行该sudo chef-apply
设置来完成更改。
这样就无需在每次运行时修改 SSH 设置的状态。
Chef 客户端方法假定它可以充当 root 用户,并且不需要sudo
在每个命令(又名包安装)之前运行。
答案2
选项 2 是最佳选择。我不是 Chef 专家,但它肯定能够使用 运行特权命令sudo
。
答案3
您可以考虑的另一种方法是使用公钥/私钥对进行 SSH 登录,而不是使用密码。
一旦建立,您就可以PermitRootLogin without-password
在 SSH 服务器配置中使用它。这样,您的 root 帐户就不会受到密码暴力破解的威胁,但您仍然可以将其与 RSA 或 ECDSA 密钥对一起使用。