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

丢失Amazon EC2的pem文件后修改密钥配置出现报错如何解决

AWS EC2 替换公钥后SSH连接失败排查解决步骤

1. 修复SSH相关文件权限(最高概率诱因)

SSH服务对密钥相关文件/目录的权限有严格要求,权限不匹配会直接拒绝公钥认证,你在其他实例上修改文件后大概率属主、权限不符合要求:

  • 正确权限要求:
    • /home/ec2-user/.ssh 目录:权限700,属主属组为ec2-user:ec2-user
    • /home/ec2-user/.ssh/authorized_keys 文件:权限600,属主属组为ec2-user:ec2-user
    • /root/.ssh 目录:权限700,属主属组为root:root
    • /root/.ssh/authorized_keys 文件:权限600,属主属组为root:root
  • 修复方法:将系统卷重新挂载到其他正常实例,假设挂载路径为/mnt,执行以下命令:
# 修复ec2-user对应权限
chown -R 1000:1000 /mnt/home/ec2-user/.ssh
chmod 700 /mnt/home/ec2-user/.ssh
chmod 600 /mnt/home/ec2-user/.ssh/authorized_keys

# 修复root对应权限
chown -R root:root /mnt/root/.ssh
chmod 700 /mnt/root/.ssh
chmod 600 /mnt/root/.ssh/authorized_keys

注:EC2默认ec2-user的UID为1000,跨实例挂载时直接指定UID/GID可以避免跨实例用户名不一致的问题。

2. 验证公钥格式与配对关系

  • 写入authorized_keys的公钥必须为完整单行内容,无多余换行、空格,格式为ssh-rsa [公钥主体内容] [可选备注]
  • 确认本地使用的私钥和写入的公钥为同一密钥对,不要混用不同密钥对的公私钥

3. 验证实例启动与网络配置

  • 系统卷挂载回原实例时,必须将挂载点设置为/(根分区),挂载点配置错误会导致实例无法正常启动
  • 确认实例安全组入方向开放22端口,允许你当前客户端IP访问
  • 确认实例启动后2项状态检查全部通过,若系统状态检查失败,可停止实例后重新启动(非重启操作,触发物理机调度迁移)

4. 排查SSH服务配置

如果以上操作完成仍无法连接,可再次挂载系统卷到其他实例,检查/mnt/etc/ssh/sshd_config配置项:

  • 确认PubkeyAuthentication yes未被注释,公钥认证功能已开启
  • 确认AuthorizedKeysFile .ssh/authorized_keys配置正确,公钥文件路径未被修改
  • 若使用root用户登录,确认PermitRootLogin配置为without-password或yes

内容的提问来源于stack exchange,提问作者shimhg02

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:06:01