如果无法通过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?
再次感谢大家的帮助,我非常感谢您的时间。
答案 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