通过pimongo中的ssh连接到远程mongodb

问题描述:

我试图连接到远程mongodb实例。通过pimongo中的ssh连接到远程mongodb

访问数据库pymongo之外,我通常做到以下几点:

> ssh [email protected] 
-$ mongo 
-$ use some_database 
-$ db.some_collection.findOne() 
.... 

这里的认证是通过我的笔记本电脑本地存储和正常工作私钥(my_key.pem)来完成。

然而,当我做同样的事情在python,它超时:

>>> from pymongo import MongoClient 
>>> c = MongoClient('[email protected]') 
>>> c['some_database']['some_collection'].find_one() 

这里有列出了一些身份验证选项:http://api.mongodb.org/python/current/examples/authentication.html?highlight=pem,但我不明白他们足够的了解,如果他们是相关的。

如何连接?

在您列出的命令中,您通过SSH连接到EC2服务器,然后运行mongo客户端应用程序连接到本地MongoDB数据库。这不是您的应用程序连接到数据库的方式。

您的应用程序是否在AWS上运行?如果是,那么您需要配置security groups以允许访问MongoDB。如果它运行在与数据库相同的服务器上,那么您甚至不需要处理安全组,您只需要为其提供运行MongoDB的端口即可。

如果您的应用程序未在AWS上运行,但需要连接到AWS上的MongoDB实例,那么您可以打开MongoDB端口(默认为27017)到远程应用程序(通过安全组),也可以使用SSH隧道。