amazon ec2 sudoers文件 - ubuntu用户要求输入密码

时间:2013-05-10 14:47:08

标签: amazon-ec2 ubuntu-12.04 ec2-ami

我在这里非常擅长EC2,今天我已经在免费套餐下设置了所有内容。所以,我登录到我的ec2使用(假设默认用户ubuntu):

ssh -i ~/.ssh/mykeypaid.pem ubuntu@<my ip address>

现在,我已经编辑了我的sudoers文件,如下所示:

ubuntu ALL=(ALL:ALL) ALL

然后修改/etc/ssh/sshd_config如下:

Protocol 2
PermitRootLogin no
AuthorizedKeysFile  %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no

现在,当我尝试ssh并尝试:

sudo su -

我被问到一个ubuntu密码 - 我真的没有。 我一直在尝试按照here的说明进行操作,但我不确定他说的是什么意思:

Edit your ~/.ssh/authorized_keys and put your public key inside it. Make sure you can login without a password now once your key is in place.

我应该在〜/ .ssh / authorized_keys中包含哪些公钥?当我看到~/.ssh/authorized_keys时,我已经看到以

开头的键
ssh-rsa .....

我很感激任何建议来解决这个问题。现在,我无法返回到sudoers文件 - 因为它要求我输入ubuntu的密码,我觉得这很奇怪(?)

我应该终止我的实例并重新开始吗?感谢。

1 个答案:

答案 0 :(得分:8)

  

我编辑了我的sudoers文件如下:
  ubuntu ALL =(ALL:ALL)ALL

无需在Ubuntu EC2实例上编辑sudoers。它已经在/etc/sudoers.d/90-cloudimg-ubuntu

中设置了无密码sudo
  

我应该终止我的实例并重新开始吗?

是的,根据你所说的,我建议从一个新的实例开始。通过编辑sudoers文件以获取没有密码的帐户的密码,您已经有效地锁定了自己。 (我写了一篇描述how to recover from a broken sudoers的文章,但在你的情况下,开始新鲜更容易。

  

我应该在〜/ .ssh / authorized_keys中包含哪些公钥?

您可以使用在运行实例时指定的ssh密钥,单独使用authorized_keys单独保留ssh并使用与首先相同的方式。或者,您可以添加任何其他您想要访问的ssh密钥,就像管理Linux机箱时一样。实例启动后,没有关于ssh密钥管理的EC2特定内容。

通常,我建议将您的个人公共ssh密钥上传到EC2,然后在启动新实例时指定该名称。这样可以更轻松地使用默认的ssh密钥进入新实例。这是我写的一篇文章:http://alestic.com/2010/10/ec2-ssh-keys