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

AWS EC2部署NodeJS+MongoDB后Robo 3T连接认证失败报错-18(#35)

解决Robo 3T连接AWS EC2上MongoDB的认证错误问题

你在AWS EC2上部署了NodeJS+MongoDB服务,安卓端能正常实现数据存储与读取,但用Robo 3T连接时碰到了这个报错:Resource temporarily unavailable. Authentication by key (path of the .pem key) failed (Error -18). (Error #35),我帮你梳理几个最可能的排查方向,一步步解决:

1. 先搞定SSH密钥的基础问题

这是最容易踩坑的核心点:

  • 严格设置密钥权限:Linux系统对SSH密钥的权限要求极高,直接在本地终端执行 chmod 400 /path/to/your-key.pem,把密钥文件改成仅所有者可读的权限——如果权限太宽松(比如777),SSH会直接拒绝使用该密钥。
  • 检查密钥完整性:打开你的.pem文件,确认末尾有完整的-----END RSA PRIVATE KEY-----标记,要是复制或传输过程中丢失了部分内容,必然会导致认证失败。

2. 核对EC2安全组规则

别让安全组拦住了你的连接:

  • 确保安全组里有允许**你的本地公网IP访问SSH端口(默认22)**的规则,如果你的IP是动态的,可临时改成允许0.0.0.0/0(仅测试用,不要长期开启),或者更新成当前的公网IP。
  • 如果你用SSH隧道方式连接MongoDB,安全组只需要开放SSH端口即可;要是直接连接MongoDB的27017端口,还要额外添加一条允许本地IP访问27017的规则(更推荐用SSH隧道,安全性更高)。

3. 检查Robo 3T的连接配置细节

很多时候是配置填错导致的:

  • 在Robo 3T的SSH选项卡里,用户名别填混:不同EC2镜像的默认用户名不一样——Amazon Linux是ec2-user,Ubuntu是ubuntu,CentOS是centos,填错会直接触发认证失败。
  • 确认SSH主机填的是EC2的公网IP/弹性IP,别填成内网IP了,内网IP仅能在VPC内部访问。
  • 先尝试用本地终端SSH连接EC2:ssh -i /path/to/your-key.pem username@ec2-public-ip,如果终端都连不上,那先解决SSH层面的问题,再调试Robo 3T。

4. 核对MongoDB的认证与绑定配置

虽然安卓端能正常读写,但Robo 3T的认证逻辑可能存在差异:

  • 如果MongoDB开启了认证,在Robo 3T的「Authentication」选项卡,要填对数据库用户名、密码,还要选对对应的认证数据库(默认是admin)。
  • 查看mongod.conf里的bindIp配置:如果设为127.0.0.1,那只能通过SSH隧道访问;要直接连接的话改成0.0.0.0,但记得配合安全组限制IP,不要暴露给全网。

5. 临时测试:关闭实例内部防火墙

有时候EC2内部的防火墙会干扰连接:

  • 对于Amazon Linux/CentOS:执行 sudo systemctl stop firewalld 临时关闭firewalld
  • 对于Ubuntu:执行 sudo ufw disable 临时关闭ufw
    如果关闭后能成功连接,再重新配置防火墙规则允许SSH和MongoDB端口,不要长期保持无防火墙的状态。

内容的提问来源于stack exchange,提问作者Jin Wook Paeng Gilbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:03:16