我已经启动了 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 私钥。