使用Robo 3T连接EC2实例失败(SSH隧道创建失败),请求协助
排查Robo 3T连接EC2时「Failed to create SSH tunnel」错误的步骤
核对SSH基础配置一致性
命令行能成功连接,说明EC2的SSH服务、安全组入站22端口规则没问题,先确认Robo 3T的SSH参数和命令行完全匹配:- SSH主机:填EC2的公网IP/域名,和你命令行
ssh命令里的目标地址一致 - SSH端口:默认22,不要随意修改
- SSH用户名:对应EC2实例的系统用户(比如Ubuntu实例是
ubuntu,Amazon Linux是ec2-user),别填错 - 密钥文件:选择和命令行相同的
.pem文件,同时确保文件权限合规——Linux/macOS下执行chmod 400 /path/to/your-key.pem,Windows下右键密钥文件→属性→安全→高级,禁用继承后只保留当前用户的只读权限
- SSH主机:填EC2的公网IP/域名,和你命令行
验证EC2安全组与MongoDB绑定设置
- 确认EC2实例关联的安全组入站规则,允许你的本地IP访问22端口(命令行能连这步大概率没问题,但要排除是不是用了不同的安全组)
- 登录EC2查看MongoDB配置文件(通常是
/etc/mongod.conf),确认bindIp是127.0.0.1(默认),这样通过SSH隧道转发到EC2本地的请求才能被MongoDB接收;如果绑定了私网IP,Robo里的MongoDB主机要填该私网IP
检查EC2的SSH服务转发配置
登录EC2实例,编辑/etc/ssh/sshd_config文件,确保以下配置项为yes:AllowTcpForwarding yes PermitTunnel yes保存后重启SSH服务:
sudo systemctl restart sshd(Ubuntu系统)Robo 3T细节设置排查
- 切换到「SSH」标签页,确认「Use SSH tunnel」已勾选
- 认证方式选「Public key」,私钥文件路径正确,密钥有密码的话填写对应Passphrase,无密码则留空
- 开启Robo的 verbose 日志:点击右上角设置→「Logging」→勾选「Enable verbose logging」,重新连接后查看日志,定位具体错误(比如密钥验证失败、端口转发被拒等)
本地网络与防火墙排查
- 临时关闭本地电脑防火墙(Linux:
sudo ufw disable;Windows:控制面板→防火墙→临时关闭),测试是否能建立隧道 - 若本地使用代理,确保Robo 3T的代理设置与命令行一致,或暂时关闭代理重试
- 临时关闭本地电脑防火墙(Linux:
内容的提问来源于stack exchange,提问作者gaurav singh
相关产品推荐
相关产品推荐

