mas*_*cey 0 ssh amazon-ec2 amazon-web-services
无法 SSH 实例,我不记得我输入的确切命令,但我相信我做了以下事情:
chown root /
Run Code Online (Sandbox Code Playgroud)
或者有什么影响。现在,我无法以 ec2-user 身份进行 SSH。我收到的错误是:
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我知道这个错误通常发生在没有为 .pem 文件正确设置权限时,但我已经仔细检查过,即使在此之前我已经能够 SSH 没有问题。因此,我相信它是实例上的某些内容发生了变化。
有没有办法以root身份登录?当我尝试时,我得到:
Please login as the ec2-user user rather than root user.
Run Code Online (Sandbox Code Playgroud)
我看到的解决方案是事先对实例本身进行编辑,这显然是我现在无法做到的。有任何想法吗?谢谢你的时间。
PS-我很清楚这是一个愚蠢的错误。我在寻求帮助,而不是嘲笑。:)
更新
我关注了@John Petrone 并在另一个实例上安装了这个受影响卷的快照。目前我能看到的唯一区别是 /home/ec2-user 的所有权设置。查看差异:
不受影响的临时服务器:
drwx------ 3 ec2-user ec2-user 4096 Jun 6 01:37 ec2-user
Run Code Online (Sandbox Code Playgroud)
受影响的服务器:
drwx------ 3 222 ec2-user 4096 Jun 4 22:57 ec2-user
Run Code Online (Sandbox Code Playgroud)
文件所有者的这种差异可能是我正在寻找的吗?是什么导致实例不允许 SSH 作为 ec2-user?
再次感谢大家的帮助,我非常感谢您的时间。
您的 EC2 实例是否与 EBS 支持的根卷一起运行?如果是这样,你可以试试这个。这些说明是当您丢失 ssh 的私钥时该怎么做。您可以在此处执行类似的过程,将卷挂载到另一个 EC2 实例上以访问文件并修复权限:
在您丢失私钥时连接到您的实例
如果您丢失了 EBS 支持的实例的私钥,您可以重新获得对您的实例的访问权限。您必须停止实例,分离其根卷并将其作为数据卷附加到另一个实例,修改authorized_keys 文件,将卷移回原始实例,然后重新启动实例。实例存储支持的实例或根卷具有 AWS Marketplace 产品代码的实例不支持此过程。有关启动、连接和停止实例的更多信息,请参阅实例生命周期。
要确定您的实例的根设备类型,请打开 Amazon EC2 控制台,单击实例,选择实例,然后在详细信息窗格中检查根设备类型的值。该值是 ebs 或实例存储。如果根设备是实例存储卷,则您必须拥有私钥才能连接到实例。您还可以在详细信息窗格中检查产品代码的值,以确定您是否在使用 AWS Marketplace 产品代码。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
| 归档时间: |
|
| 查看次数: |
2132 次 |
| 最近记录: |