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

无法SSH连接已接管的EC2实例,寻求排查解决方案

EC2实例SSH连接失败的排查方法
  • 检查安全组与网络ACL配置

    • 确认实例安全组的入站规则允许TCP 22端口,来源包含你的公网IP(或临时用0.0.0.0/0测试);出站规则允许所有响应流量(如1024-65535端口)。
    • 检查实例所在子网的网络ACL,入站规则需放行22端口,出站规则放行所有返回流量,避免数据包被拦截。
  • 修正本地私钥文件权限

    • SSH对私钥权限要求严格,你设置的004权限过于限制,执行命令修改权限:
      chmod 0600 ~/.ssh/NewKeyName.pem
      
    • 修改后重新尝试SSH连接。
  • 验证实例内部的authorized_keys配置

    • 若能通过挂载根卷到其他EC2实例的方式访问目标实例的文件系统,检查/home/rt/.ssh/authorized_keys是否包含新密钥对的公钥。
    • 可通过AWS CLI获取新密钥对的公钥:
      aws ec2 describe-key-pairs --key-name NewKeyName --query 'KeyPairs[0].PublicKey' --output text
      
    • 确保公钥完整写入authorized_keys,且文件权限为0600,所有者为rt用户。
  • 排查EC2 Instance Connect失败原因

    • 确认实例所在子网具备互联网访问能力(或配置了NAT网关),因为EC2 Instance Connect需要实例连接AWS服务端点。
    • 检查实例的IAM角色(若有)或你的IAM用户是否拥有ec2-instance-connect:SendSSHPublicKey权限。
    • 对于非Amazon Linux的系统(如Ubuntu),确认实例已安装ec2-instance-connect包:
      sudo apt-get install ec2-instance-connect
      
  • 检查串行控制台的访问条件

    • 确认实例已启用串行控制台访问(在实例设置中开启)。
    • 验证你的IAM用户拥有ec2:StartInstanceConsoleSession权限。
    • 查看实例的状态检查结果,若系统状态检查失败,可能是实例硬件或系统启动异常,需先修复实例运行状态。
  • 通过用户数据注入公钥(需重启实例)

    • 停止目标实例,编辑用户数据,添加以下内容(替换为你的公钥内容):
      #!/bin/bash
      echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ..." >> /home/rt/.ssh/authorized_keys
      chmod 600 /home/rt/.ssh/authorized_keys
      chown rt:rt /home/rt/.ssh/authorized_keys
      
    • 启动实例,等待5-10分钟后尝试SSH连接。
  • 检查实例状态与系统日志

    • 在AWS控制台查看实例的状态检查,确认系统状态和实例状态均通过。
    • 获取实例的系统日志,检查是否有sshd启动失败、文件系统损坏、用户不存在等异常信息,定位启动或服务故障。
  • 确认SSH连接用户名正确性

    • 不同AMI的默认用户名不同:Amazon Linux为ec2-user,Ubuntu为ubuntu,CentOS为centos。尝试使用默认用户名连接,验证rt是否为实例上存在的有效用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:58:39