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

EMR集群处于WAITING状态时SSH连接被拒绝问题咨询

排查EMR集群SSH连接被拒绝的问题

先理清楚你遇到的情况:

你先执行了aws emr list-clusters,看到集群状态是WAITING,原因是"Cluster ready after last step failed.";接着用aws emr ssh命令尝试连接,结果报错ssh: connect to host ec2-xxxxxxxx.compute-1.amazonaws.com port 22: Connection refused。

下面是一步步的排查和解决思路,我平时处理这类问题都是这么来的:

1. 先检查网络能不能通

安全组是重点

登录AWS控制台,找到你的EMR集群详情页,定位到主节点对应的EC2实例,查看它关联的安全组。一定要确保安全组的入站规则里,允许你当前的本地IP访问22端口——如果拿不准,临时加个0.0.0.0/0测试(测试完记得改回去,别留安全隐患)。

子网和路由表也不能忽略

如果集群在私有子网,得确认路由表有没有配置NAT网关,不然主节点连不上公网,你也没法从外面SSH进去;要是在公有子网,检查下主节点有没有分配公有IP(EMR默认会给主节点配,但如果你自定义了配置可能会关掉)。

2. 验证密钥对是不是没问题

  • 首先,你用的key-pair.pem必须是创建这个EMR集群时指定的那个密钥对,别拿错了!
  • 然后给密钥文件设置正确的权限,权限太松SSH会直接拒绝:
    chmod 400 ~/.ssh/keys/key-pair.pem
    
  • 可以跳过EMR的ssh命令,直接用EC2实例的IP连接试试,排除命令参数的问题:
    ssh -i ~/.ssh/keys/key-pair.pem hadoop@ec2-xxxxxxxx.compute-1.amazonaws.com -o StrictHostKeyChecking=no
    
    注意哦,EMR主节点的默认用户名是hadoop,别用成root或者其他的。

3. 看看主节点本身有没有问题

虽然集群状态显示WAITING,但主节点的SSH服务可能没起来。

  • 去EMR集群的“日志”页面,翻主节点的系统日志,比如/var/log/secure或者/var/log/messages,看看有没有SSH启动失败的记录。
  • 要是你集群配置了SSM权限,直接用Session Manager连主节点更方便:在EC2控制台找到主节点实例,点“连接”选“Session Manager”,进去后查SSH服务状态:
    sudo systemctl status sshd
    
    要是没启动,就重启试试:
    sudo systemctl restart sshd
    

4. 检查集群的SSH配置有没有被改

用aws emr describe-cluster --cluster-id j-MQIKB378OARL看看集群的配置细节,有没有人禁用了SSH访问,或者改了SSH端口。另外,如果集群开了Kerberos认证,普通SSH连接会失败,得先拿Kerberos票据才行。

5. 最后一招:重启主节点(谨慎操作!)

如果前面都排查完了还是不行,而且集群现在没有运行中的任务,可以试试重启主节点的EC2实例:在EC2控制台找到实例,选“实例状态”->“重启实例”,等它起来后再试SSH连接。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:19:27