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

AJW*_*AJW 3 amazon-ec2 ec2-ami ubuntu-12.04

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

ssh -i ~/.ssh/mykeypaid.pem ubuntu@<my ip address>
Run Code Online (Sandbox Code Playgroud)

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

ubuntu ALL=(ALL:ALL) ALL
Run Code Online (Sandbox Code Playgroud)

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

Protocol 2
PermitRootLogin no
AuthorizedKeysFile  %h/.ssh/authorized_keys
PermitEmptyPasswords no
PasswordAuthentication no
Run Code Online (Sandbox Code Playgroud)

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

sudo su -
Run Code Online (Sandbox Code Playgroud)

我被要求输入一个ubuntu密码 - 我没有这个密码.我一直在努力遵循这里的指示,但我不确定当他说:

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 .....
Run Code Online (Sandbox Code Playgroud)

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

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

Eri*_*ond 8

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

没有必要在Ubuntu EC2实例上编辑sudoers.它已经设置为无密码sudo/etc/sudoers.d/90-cloudimg-ubuntu

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

是的,根据你所说的,我建议从一个新的实例开始.通过编辑sudoers文件以获取没有密码的帐户的密码,您已经有效地锁定了自己.(我写了一篇文章,描述了如何从破碎的sudoers中恢复,但在你的情况下,开始新鲜更容易.)

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

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

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