让 Amazon EC2 实例请求 sudoing 密码

让 Amazon EC2 实例请求 sudoing 密码

我已经启动了 Ubuntu Server 12.04 的 Amazon EC2 实例,一切正常,但与本地 Ubuntu 不同,当我使用命令行执行 sudo 或成为 root 时,EC2 实例从不要求输入任何密码。我试过

passwd
# asks for a new password, I supply one
sudo -i
# always makes me root right away
passwd
# asks for a new password, I supply one
passwd ubuntu
# asks for a new password, I supply one

ubuntu是安装实例的默认用户。)到目前为止,即使重新启动后,我也没有注意到任何差异,它仍然不会要求输入任何密码。

这没有什么大不了的,但我想我只是习惯了本地 Ubuntu 的工作方式。

答案1

EC2 没有简单的方法为用户提供安全密码,因此默认在您使用 ssh 私钥安全连接后ubuntu允许无密码。sudo

如果您为用户添加密码ubuntu,则可以sudo通过编辑/etc/sudoers.d/90-cloud-init-users和更改来要求输入密码:

ubuntu ALL=(ALL) NOPASSWD:ALL

到:

ubuntu ALL=(ALL) ALL

此命令为您执行该编辑(假设未触及的默认 sudoers 文件):

sudo perl -pi -e 's%NOPASSWD:%%' /etc/sudoers.d/90-cloud-init-users

为了安全起见,请保留一个以 root 身份登录的单独 shell,以便您可以修复该文件并在错误地编辑并破坏它时进行恢复sudo

添加密码可以sudo提高系统的整体安全性。

仍然建议您不要允许使用密码进行 ssh 登录。将其限制为 ssh 私钥。

相关内容