丢失EC2 CentOS实例密钥对,如何登录及解决PPK文件格式错误?
无需密钥对登录EC2 CentOS实例的方法
方法一:通过AWS Systems Manager Session Manager登录
- 前提:实例预装了SSM Agent(CentOS 7及以上版本默认自带),实例关联了带
AmazonSSMManagedInstanceCore权限的IAM角色,实例能访问SSM服务(公有子网带公网IP,或配置了VPC端点) - 操作:
- 打开AWS EC2控制台,找到目标实例
- 右键实例,选「连接」→切换到「Session Manager」标签
- 点击「连接」,直接进入实例命令行
方法二:通过EC2串行控制台登录(适合网络不可达但实例能启动的情况)
- 前提:实例所在区域支持串行控制台,已启用串行控制台访问,你有
EC2Connect相关IAM权限 - 操作:
- 进入EC2控制台,找到目标实例
- 右键实例,选「连接」→切换到「串行控制台」标签
- 点击「连接」,输入实例root密码登录;如果没设置过密码,按以下步骤重置:
- 停止目标实例,右键选「实例设置」→「编辑用户数据」
- 填入以下脚本(替换
new_password为你的新密码):#!/bin/bash echo "root:new_password" | chpasswd sed -i 's/^PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config systemctl restart sshd - 启动实例,再通过串行控制台用root和新密码登录
方法三:挂载实例磁盘到临时EC2实例修改配置
- 操作:
- 停止目标实例,分离其根卷(记好卷的设备名,比如
/dev/xvda) - 启动一个同区域、同系统的临时EC2实例(用你有密钥对的实例)
- 把分离的根卷挂载到临时实例,比如挂载到
/mnt/recovery - 进入挂载的磁盘目录,修改
/mnt/recovery/root/.ssh/authorized_keys添加你的本地公钥,或者修改sshd配置允许密码登录并设置root密码 - 卸载磁盘,重新挂载回原实例,启动原实例后即可用新密钥或密码登录
- 停止目标实例,分离其根卷(记好卷的设备名,比如
内容的提问来源于stack exchange,提问作者parag tamhane
相关产品推荐
相关产品推荐

