服务器拒绝了我们的密钥,将 authorized_keys 权限设置为 777

Server refused our key, set authorized_keys perrmissions to 777

我正在从我的 ec2 实例上的主目录复制一些文件,出于懒惰,我 运行 命令 sudo chmod 777 /home/ec2-user/*。我想这使我的 .ssh 文件夹和 authorized_keys 也可能拥有 777 权限。事实证明,如果 authorized_keys 设置为 777,则您无法使用这些密钥通过 SSH 进入该框(因为其他用户可能已经更新了它)。

我的问题是,如何解决这个问题并重新登录我的邮箱?这是一个 ec2 实例,所以我必须通过 ssh 登录。

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

由于您无法在实例中使用 ssh,因此您需要执行以下操作:

  1. 为您的应用程序安排停机时间,因为您需要停止该实例。
  2. 备份实例存储(临时卷)内的所有内容。
  3. 停止实例。
  4. 从有问题的 EC2 实例分离卷。
  5. 将卷附加到另一个工作的 EC2 实例。
  6. 对您的 .ssh 目录及其文件进行 chmod 更改。
  7. 分离卷。
  8. 附加到有问题的 EC2 实例。
  9. 启动 EC2 实例。
  10. 尝试连接到 EC2 实例。

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

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

为了尽可能减少停机时间,获取实例映像(在不重启模式下)并使用此映像和您之前指定的密钥创建新机器。 AWS 在创建新盒子时,将密钥放入适当的权限。

请注意,私有 IP 和 public IP 会发生变化,如果您不想更改 IP,请使用弹性 IP,然后使用弹性 IP。