【问题标题】:AWS_EC2 ssh Permission denied (publickey)AWS_EC2 ssh 权限被拒绝(公钥)
【发布时间】:2016-08-13 22:52:50
【问题描述】:

呃,所以我读过每一个 S.O.解决方案,但没有任何效果。

长话短说,Apple 重新格式化了我的计算机,但我丢失了用于 ssh 进入我的 aws ec2 linux 实例的私钥。我生成了一个新密钥,将权限更改为 400 并尝试 ssh 但我得到了:

Permission denied (publickey).

当我使用 -v 选项时,我看到了:

ssh: Could not resolve hostname [path-to-my-new-pem]: nodename nor servname provided, or not known

有什么想法吗?

【问题讨论】:

  • 显示你的整个命令。
  • 您是如何将新的密钥对放到 ec2 实例上的?
  • AWS EC2 密钥,如果丢失,是不可替代的!您无法再次访问该实例。
  • 显示你的命令。很清楚问题出在哪里,但很难告诉你如何在没有命令的情况下纠正它。
  • 您需要更改 ec2 实例的关联密钥对,您能确认您这样做了吗?

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


【解决方案1】:

当您说您生成了一个新密钥时,您仍然需要将密钥对导入 EC2 实例,显然您不能这样做,因为您丢失了当前的私钥。好的,那么如何从那里移动它。

您需要将密钥对上传到 ~/.ssh/authorized_keys

亚马逊文档Connecting to Your Linux Instance if You Lose Your Private Key中解释了该过程

基本上你需要:

  • 从 AWS 控制台创建新的密钥对
  • 停止当前实例(不要terminate,否则会丢失当前数据)
  • 分离实例的当前卷 V
  • 启动新实例(* 指定与您要连接的实例相同的可用区。如果您要在 VPC 中启动实例,请选择此可用区中的子网。*)
  • 将卷 V 附加到新实例

--> 现在您可以访问所有数据,用新的密钥对更新authorized_keys

  • 再次从新实例中分离卷 V 并将其附加回旧实例
  • 启动新实例
  • ssh 使用新的密钥对

【讨论】:

  • 太棒了!我能够使用我被锁定到新实例的服务器的服务器的卷。我只是对这一步感到困惑:“现在您可以访问所有数据,使用新密钥对更新 authorized_keys”
  • 一旦您将卷挂载到新分区(类似于sudo mount /dev/xvdf1 /mnt/tempvol),您可以浏览驱动器的内容/mnt/tempvol,因此mnt/tempvol/home/<ec2-user>/.ssh/ 是您感兴趣的文件夹,并且您可以使用您生成的新密钥更新authorized_keys
猜你喜欢
  • 2019-11-24
  • 2014-11-08
  • 2019-03-11
  • 1970-01-01
  • 2019-03-08
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多