You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

丢失AWS Key Pair如何替换?运行中EC2实例密钥对替换求助

AWS EC2实例丢失密钥对恢复方案

以下方案均不会销毁正在运行实例的原有数据,可根据你的实际环境选择:

方案1:通过AWS Systems Manager Session Manager直接访问(无需停机,适用已配置SSM权限的实例)

  • 适用前提:实例关联的IAM角色包含AmazonSSMManagedInstanceCore权限,且实例网络可访问SSM服务端点(公有子网实例具备公网IP/私有子网实例已配置SSM VPC端点)
  • 操作步骤:
    1. 登录AWS控制台,进入EC2服务页,找到目标运行实例,确认实例状态为正常
    2. 进入Systems Manager服务,选择「会话管理器」-「启动会话」
    3. 在可访问实例列表中选中目标实例,点击启动会话,直接进入实例命令行界面
    4. 执行sudo su - ec2-user(Amazon Linux系统,Ubuntu系统替换为ubuntu)切换到实例默认用户
    5. 编辑SSH授权文件:vi ~/.ssh/authorized_keys,将你提前新生成的密钥对的公钥内容粘贴进文件保存,后续即可使用新私钥SSH登录实例

方案2:挂载根卷到临时实例修改授权(通用方案,无SSM配置也可操作)

注意:如果你的实例根卷为实例存储类型,不要使用该方案,停机后实例存储卷数据会永久丢失

  • 操作步骤:
    1. 先在EC2控制台「密钥对」页面生成新的密钥对,下载并妥善保存私钥文件,复制对应的公钥内容
    2. 停止目标运行实例,在实例详情页找到根卷信息,记录根卷的设备名(通常为/dev/xvda或/dev/sda1)
    3. 分离目标实例的根EBS卷
    4. 在同一可用区启动一台临时EC2实例(系统版本尽量和目标实例保持一致),将刚才分离的根卷作为数据卷挂载到临时实例,挂载设备名可设置为/dev/sdf
    5. SSH登录临时实例,执行sudo lsblk确认挂载的卷对应的实际设备名,创建挂载目录:sudo mkdir /mnt/rescue
    6. 挂载卷分区:sudo mount /dev/xvdf1 /mnt/rescue(设备名根据lsblk返回结果调整,操作对象为卷的第一个分区而非整块磁盘)
    7. 编辑授权文件:sudo vi /mnt/rescue/home/ec2-user/.ssh/authorized_keys,粘贴新密钥对的公钥内容后保存
    8. 卸载数据卷:sudo umount /mnt/rescue
    9. 回到EC2控制台,将该卷从临时实例分离,重新挂载回原目标实例,挂载设备名填写之前记录的根卷设备名
    10. 启动原目标实例,即可使用新的密钥对SSH登录

注意事项

  • 操作EBS卷前建议先对根卷创建快照备份,避免误操作导致数据损坏
  • 若目标实例为Windows实例,可通过挂载根卷到临时实例后修改管理员密码完成恢复,操作逻辑和上述方案2一致

内容的提问来源于stack exchange,提问作者Terence - AI FX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:48:00