Mongo"auth failed"仅用于远程连接.本地工程很好

Ahm*_*que 6 authentication remote-access amazon-ec2 bitnami mongodb

我在EC2上运行了Bitnami MEAN实例.经过大量的研究,我已经能够使用本地shell成功连接到数据库.我创建了具有访问数据所需的所有权限的经过身份验证的用户,当我运行以下代码时 - 我能够毫无问题地访问数据库.

sudo mongo admin -u <USERNAME-p <PASSWORD>
Run Code Online (Sandbox Code Playgroud)

也就是说,当我尝试使用远程连接重复此操作时,我反复向MongoDB发出"auth failed"错误.

mongo <HOST>:<PORT>/<DATABASE> -u <USERNAME> -p <PASSWORD>
Run Code Online (Sandbox Code Playgroud)

...

这很奇怪,因为我使用与运行本地shell时完全相同的凭据.唯一的区别是我包括主机和端口信息.我已经确认,如果我在mongodb.config中禁用auth参数,我的远程连接也可以工作.

mongo <HOST>:<PORT>/<DATABASE>
Run Code Online (Sandbox Code Playgroud)

显然,在生产中我希望能够进行身份验证.您是否有人建议为什么远程和本地身份验证之间存在差异?

小智 24

我面临同样的问题.

对我来说问题:

我的本地mongo shell是v2.6.10.它使用了一个名为MONGODB-CR的身份验证方法,该方法已被弃用.

我的服务器版本是v3.0.4.它使用名为SCRAM-SHA-1的身份验证方法.

尝试使用以下命令检查本地shell和远程服务器版本:

mongo --version
mongod --version
Run Code Online (Sandbox Code Playgroud)

如果它们不同,请将本地shell升级到v3.(我不得不再次卸载并安装它.)

  • 谢谢!我忘了我发布了这个.但这确实是个问题.很高兴我不是唯一被这个挂了的人. (2认同)