本文由 阿里云国际站代理商『翼龙云/TG @Yilongcloud 撰写』如需转载请注明!
本地保存的 .pem 密钥文件丢失或损坏,是导致阿里云国际站 ECS 无法通过 SSH 登录的常见原因。此时终端通常报错 Permission denied (publickey)。
很多运维人员担心必须通过“重装系统”来重置凭证,这会导致系统盘数据清空。实际上,利用阿里云国际站的密钥对管理机制,可以在不触动业务数据的前提下完成密钥替换。
重要说明:本教程仅适用于 Linux 实例;Windows 实例不支持 SSH 密钥对,密钥丢失需要重置实例密码。
恢复原理与方案选择
阿里云 ECS 控制台绑定密钥对,依靠实例内部 cloudinit 组件或者阿里云云助手 Agent,在实例启动 / 重启时,自动把控制台公钥写入系统内 ~/.ssh/authorized_keys 文件。
边界风险:如果使用自定义精简镜像,Agent 被卸载、cloudinit 被删除,该机制会失效,绑定密钥重启也无法恢复登录,此时需要通过 Workbench/VNC 手动写入公钥。
两种恢复途径对比:
- 控制台绑定密钥对:操作简单,但需要重启 / 启动实例,会造成业务短暂中断,不会删除系统盘数据。
- Workbench 会话管理(云助手):实例运行状态直接免重启登录,适合业务不能停机的应急救急,登录后手动添加 SSH 公钥。
相比于 VNC 手动修改(需要账号鉴权)或重装系统(数据丢失风险高),控制台重置密钥对是官方推荐方案。
实操步骤:免重装重置密钥
硬性约束:密钥对必须和 ECS 实例处于同一个地域,跨地域密钥无法绑定实例,操作前确认控制台左上角地域选择一致
第 1 步:准备新密钥对
- 登录阿里云国际站控制台,进入 Elastic Compute Service (ECS)。
- 在左侧菜单选择 网络与安全 (Network & Security) > 密钥对 (Key Pairs)。
- 点击 “创建密钥对”,输入名称(如 recovery20260818),选择自动创建。
- 下载并妥善保存生成的 .pem私钥文件。注意:私钥仅此一份,丢失无法找回。
第 2 步:处理实例状态
两种方式均可,都会触发业务中断:
- 方案 A:实例停止,后续执行启动实例;
- 方案 B:实例保持运行,绑定密钥之后手动重启实例。 根据业务运维窗口选择对应方式。
第 3 步:执行绑定操作
- 返回 密钥对 页面,确认左上角地域与 ECS 实例地域一致;找到新创建的密钥,点击 绑定密钥对 (Bind Key Pair)。
- 在弹窗中选中目标实例,点击确定。此时实例原有 SSH 公钥会被新公钥替换;绑定密钥后实例会默认关闭密码登录方式阿里云帮助…。
第 4 步:启动 / 重启实例并验证
- 如果实例已停止,执行启动;如果实例保持运行状态,执行实例重启。
- 在本地终端修改私钥权限(Linux/macOS):
plaintext
chmod 400 recovery20260818.pem
连接注意:阿里云官方镜像默认登录账号不一定是 root,常见为 ecsuser,请确认实例实际用户名。示例:
plaintext
ssh -i recovery20260818.pem ecsuser@<ECS公网IP>
不停机应急备选方案(业务不允许重启)
实例保持运行,使用 ECS 控制台的 Workbench 会话管理(云助手)直接登录系统,无需密钥、无需重启。登录成功后,编辑 ~/.ssh/authorized_keys,粘贴新密钥的公钥文本保存,即可直接使用新 pem 密钥 SSH 登录。
前提条件:实例内部云助手 Agent 正常运行,安全组不拦截云助手通道。
常见故障排查
- 无法选中实例:确认地域完全一致;Windows 实例不支持密钥绑定;实例状态检查。
- 权限报错:若提示 UNPROTECTED PRIVATE KEY FILE,说明本地 pem 文件权限过高,必须执行 chmod 400。
- 连接超时:密钥重置不改变安全组规则。请确认安全组已放行 TCP 22 端口。
- 绑定密钥重启后依旧无法登录:优先排查镜像是否移除 cloudinit / 云助手 Agent;核对 SSH 登录用户名;检查实例内部.ssh目录与 authorized_keys 文件权限;可以先用 Workbench 会话管理登录排查系统内部问题。
常见问题 (FAQ)
Q1:阿里云国际站 ECS 实例丢失 pem 密钥如何免重装恢复? 答:Linux 实例,可以通过控制台 “网络与安全” 下的 “密钥对” 功能创建新密钥;实例停止后启动、或者运行实例绑定后重启,系统自动注入新公钥,无需重装系统盘。业务不能中断优先选择 Workbench 免重启手动写入公钥。Windows 实例该方案无效,需要重置密码。
Q2:ECS 绑定新密钥对后为什么无法立即登录? 答:控制台密钥变更需要实例重启 / 开机才会触发公钥注入;或者本地私钥文件权限未设置为 400,SSH 客户端拒绝使用;也有可能登录用户名错误,不要一律使用 root。
Q3:通过阿里云控制台重置 SSH 密钥会丢失实例数据吗? 答:不会。该操作仅修改系统内的 ~/.ssh/authorized_keys 文件,不涉及系统盘其他分区或数据盘,零数据丢失风险;但操作会关闭密码登录认证。
Q4:绑定密钥重启之后依旧 SSH 登录失败是什么原因? 答:大概率是自定义镜像移除了 cloudinit、云助手 Agent,控制台密钥下发机制失效。此时改用 Workbench 会话管理登录,手动粘贴公钥到 authorized_keys 文件。
Q5:业务不能重启,有没有不中断业务恢复 SSH 密钥的方法? 答:使用 ECS 控制台 Workbench 会话管理(云助手)直接登录实例,无需密钥、无需重启,登录后手动把公钥写入 authorized_keys 配置文件即可。前提实例云助手 Agent 正常工作。
