无法打开EMR主节点SSH隧道,访问Zeppelin失败求助
既然旧笔记本能正常建立隧道,说明EMR集群本身的配置(密钥、安全组等)是没问题的,问题大概率出在新笔记本的环境或者网络配置上,咱们一步步排查:
检查新笔记本的网络可达性
先确认新笔记本和EMR主节点在同一个网络环境里:比如旧笔记本在公司内网/指定VPN,新笔记本是不是没连VPN,或者用了不同的网络?如果EMR主节点用的是私有IP,只有同VPC、通过VPN/专线才能访问。
可以先试试ping 192.2.2.12,如果ping不通,先解决网络连通的问题(比如连接正确的VPN,或者确认新IP在EMR安全组的允许范围内)。校验PEM文件的权限
SSH对密钥文件的权限要求非常严格,必须是仅所有者可读可写。在新笔记本上执行:chmod 600 pemfile.pem权限不对的话,SSH会拒绝使用该密钥,这是很常见的坑。
检查SSH客户端的兼容性
不同版本的SSH客户端可能默认启用/禁用了一些加密算法,导致和EMR主节点的SSH服务握手失败。你可以尝试添加兼容参数重试:ssh -i pemfile.pem -ND 8157 -c aes256-cbc -o KexAlgorithms=diffie-hellman-group14-sha1 hadoop@192.2.2.12另外,也可以检查新笔记本的
~/.ssh/config文件有没有特殊配置(比如全局代理、StrictHostKeyChecking设置),可以暂时重命名这个文件,再尝试连接。开启SSH调试模式定位细节
加上-v参数执行命令,查看详细的连接日志,能帮你精准定位问题:ssh -v -i pemfile.pem -ND 8157 hadoop@192.2.2.12比如日志里如果出现
Permission denied,可能是密钥或用户名问题;如果是No route to host,那就是网络路由的问题。确认安全组/NACL的IP范围(低概率但需排查)
虽然旧笔记本能连,但如果新笔记本的公网/私有IP不在EMR主节点安全组的22端口入站允许列表里,也会被拒绝。可以登录AWS控制台,检查EMR集群主节点的安全组入站规则,确认新笔记本的IP是否在允许范围内。子网的NACL也要确认有没有允许22端口的出入流量。
内容的提问来源于stack exchange,提问作者Jeevan

