作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 django 和 mysql 数据库来开发 api。现在我有了将 mongodb 数据库与 django 连接的新要求。我使用了以下解决方案
from sshtunnel import SSHTunnelForwarder
import pymongo
import pprint
MONGO_HOST = "REMOTE_IP_ADDRESS"
MONGO_DB = "DATABASE_NAME"
MONGO_USER = "LOGIN"
MONGO_PASS = "PASSWORD"
server = SSHTunnelForwarder(
MONGO_HOST,
ssh_username=MONGO_USER,
ssh_password=MONGO_PASS,
remote_bind_address=('127.0.0.1', 27017)
)
server.start()
client = pymongo.MongoClient('127.0.0.1', server.local_bind_port) #
server.local_bind_port is assigned local port
db = client[MONGO_DB]
最佳答案
我认为这与您连接它的方式无关。该消息意味着您的 SSH 配置中的某些内容不正确。SSHTunnelForwarder
应该使用 SSH 主机、端口、用户和密码进行实例化,因为您首先需要访问可以连接到 Mongo 主机的主机(运行 sshd 的地方)。我也没有看到您将 key 传递到何处进行身份验证。确保您定义了 <your-key-instance-here>
根据您拥有的 key 类型(例如,使用 paramiko
: paramiko.RSAKey.from_private_key_file('/path/to/your/ssh/key/file')
的 RSA 类型 key )。之后,您需要在客户端指定 Mongo 用户和密码:
@contextmanager
def _tunnel():
with SSHTunnelForwarder((ssh_host, 22),
ssh_username=SSH_USER,
ssh_pkey=<your-key-instance-here>,
remote_bind_address=(MONGO_HOST, MONGO_PORT)
) as tunneled_conn:
yield pymongo.MongoClient('mongodb://%s:%s@127.0.0.1' % (MONGO_USR, MONGO_PWD),
port=tunneled_conn.local_bind_port
)
with _tunnel() as mongo_client:
...
关于django - sshtunnel.BaseSSHTunnelForwarder 无法与 SSH 网关建立 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53984099/
我正在使用 django 和 mysql 数据库来开发 api。现在我有了将 mongodb 数据库与 django 连接的新要求。我使用了以下解决方案 from sshtunnel import S
我是一名优秀的程序员,十分优秀!