我在这里非常擅长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
的密码,我觉得这很奇怪(?)
我应该终止我的实例并重新开始吗?感谢。
答案 0 :(得分:8)
我编辑了我的sudoers文件如下:
ubuntu ALL =(ALL:ALL)ALL
无需在Ubuntu EC2实例上编辑sudoers。它已经在/etc/sudoers.d/90-cloudimg-ubuntu
我应该终止我的实例并重新开始吗?
是的,根据你所说的,我建议从一个新的实例开始。通过编辑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