AWS:所有权/意外更改为root,现在我无法作为ec2-user SSH

时间:2014-06-05 20:46:25

标签: amazon-web-services ssh amazon-ec2

如果无法通过SSH实例,我无法回忆起我输入的确切命令,但我相信我做了以下事情:

chown root /

或那些影响的东西。现在,我无法通过SSH作为ec2-user。我收到的错误是:

Permission denied (publickey).

我知道,如果没有为.pem文件正确设置权限,通常会发生此错误,但我已经仔细检查过,即使我之前已经能够SSH没有问题。因此,我认为实际情况发生了变化。

有没有办法以root用户身份登录?当我尝试时,我得到:

Please login as the ec2-user user rather than root user.

我所看到的解决方案是事先对实例进行编辑,这显然是我现在无法做到的。有任何想法吗?谢谢你的时间。

PS-I很清楚这是一个愚蠢的错误。我正在寻求帮助,而不是嘲笑。 :)

更新

我跟随@John Petrone并在另一个实例上安装了这个受影响的卷。我目前看到的唯一区别是/ home / ec2-user的所有权设置。见差异:

临时的,不受影响的服务器:

drwx------ 3 ec2-user ec2-user 4096 Jun  6 01:37 ec2-user

受影响的服务器:

drwx------ 3  222 ec2-user 4096 Jun  4 22:57 ec2-user

文件所有者的这种差异可能是我所看到的;是什么导致实例不允许SSH作为ec2-user?

再次感谢大家的帮助,我非常感谢您的时间。

1 个答案:

答案 0 :(得分:4)

您的EC2实例是否使用EBS支持的根卷运行?如果是这样,你可以试试这个。当您丢失ssh的私钥时,方向是为了做什么。您将在此处执行类似的过程,将卷安装在另一个EC2实例上以访问文件并修复权限:

  

如果丢失私钥,则连接到您的实例

     

如果您丢失了EBS支持的实例的私钥,您可以重新获得   访问您的实例。您必须停止实例,分离其根   卷并将其作为数据卷附加到另一个实例,修改   authorized_keys文件,将卷移回原始实例,   并重新启动实例。例如,不支持此过程   存储支持的实例或其根卷具有AWS的实例   市场产品代码。有关启动的更多信息,   连接到和停止实例,请参阅Instance Lifecycle。

     

要确定实例的根设备类型,请打开Amazon   单击EC2控制台,单击Instances,选择实例,然后检查值   详细信息窗格中的根设备类型。值是ebs或   实例店。如果根设备是实例存储卷,则为   必须具有私钥才能连接到实例。您可以   还要检查详细信息窗格中的产品代码的值以确定   您是否使用AWS Marketplace产品代码。

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair