2016-07-07 750 views
0

我从我的ec2实例上的主目录中复制了一些文件,并且以懒惰的方式运行命令sudo chmod 777/home/ec2-user/*。我想这使得我的.ssh文件夹,并可能authorized_keys也有777特权。那么事实证明,如果authorized_keys设置为777,则无法使用这些密钥进入SSH框(因为另一个用户可能已经更新了它)。服务器拒绝我们的密钥,将authorized_keys权限设置为777

我的问题是,我该如何解决这个问题,并再次登录到我的盒子?这是一个ec2实例,所以我必须ssh进入。

回答

3

要更改权限,您需要访问实例内部的文件。

因为你不能在实例ssh登录你需要做以下事情:

  1. 预约停机您的应用程序,因为你需要停止实例。
  2. 备份Instance Store(临时卷)中的所有内容。
  3. 停止实例。
  4. 从有问题的EC2实例中分离卷。
  5. 将卷连接到另一个正在工作的EC2实例。
  6. chmod更改为您的.ssh目录及其文件。
  7. 分离音量。
  8. 附加到有问题的EC2实例。
  9. 启动EC2实例。
  10. 尝试连接到EC2实例。

请注意,如果您没有为实例配置弹性IP,IP地址将会更改。

有关将卷附加到EC2实例的更多信息,请参阅此AWS Documentation

+0

当我单击卷选项卡来分离卷时,我的实例重新启动。你知道为什么吗? http://stackoverflow.com/questions/38290095/how-to-change-permission-of-a-file-on-the-amazon-remote-instance-when-ssh-doesn?noredirect=1#comment63998071_38290095 – KillBill

+0

因为逻辑上,您正在从正在运行的计算机中删除存储设备。 –

+0

我的,但为什么我的实例继续停止后重新启动 – KillBill

1

要使宕机时间最短,请拍摄实例图像(无需重启模式),并使用此图像和您之前指定的密钥创建新机器。 AWS在创建新框的同时,将按键设置为正确的权限。

请注意,私人和公共IP将会发生变化,如果您不想更改IP,则使用弹性IP,然后使用弹性IP。

+0

这不幸的是没有为我工作......同样的问题仍然存在,它看起来像密钥没有被取代......作为一个说明,我用同一个私钥作为我用于旧实例,所以我不知道是否会影响它。 – etk1220