2013-05-10 61 views
3

我很新的EC2在这里,我已经设置了今天的免费层下的所有东西。所以,我用(假设默认用户ubuntu)loginto我EC2:亚马逊ec2 sudoers文件 - Ubuntu的用户要求输入密码

ssh -i ~/.ssh/mykeypaid.pem [email protected]<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 

现在,当我试图回到并尝试:

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,我认为这很奇怪(?)

我应该终止我的实例并重新启动吗?谢谢。

回答

8

我已经编辑我的sudoers文件如下:
Ubuntu的ALL =(ALL:ALL)

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

我应该终止我的实例并重新启动吗?

是的,基于你所说的话,我会建议从一个新的实例开始。通过编辑sudoers文件来为没有密码的帐户要求密码,您已经有效地锁定了自己。 (我已经写了描述how to recover from a broken sudoers,但在你的情况下开始新的一篇文章要容易得多。

我应该是什么样的公共密钥包括在〜/ .ssh/authorized_keys的?

您可以简单地离开authorized_keys单独和SSH在你首先做了同样的方式,使用当您运行实例时指定的SSH密钥。或者,您可以添加任何其他想要授予访问权限的ssh密钥,就像您在管理Linux机器时通常那样。实例启动后,没有任何关于ssh密钥管理的EC2特定功能。

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

+0

非常感谢Eric对你非常有用的见解。你是对的 - 我以某种方式锁定了自己(我仍然不确定如何!)sudoers文件 - 只是终止并重新启动实例 - 按照你的指示,现在一切都工作得很好。关于这个话题的帖子肯定是有启发性的!再次感谢 - 现在接受你的答案。 – AJW 2013-05-11 12:47:24

+0

我正在尝试运行需要'sudo -v'的[installer](http://calibre-ebook.com/download_linux),但要求提供ubuntu AWS用户没有的密码。我如何运行这个请求? – Chris 2015-06-17 14:31:22

+1

@Chris你可能会有更好的运气,开启一个关于你的设置和你看到的结果的更多细节的新问题。对于系统问题,你也可以尝试serverfault.com – 2015-06-17 20:55:14