使用Paramiko设置SSH隧道来访问PostgreSQL

问题描述 投票:0回答:1

我目前使用 Paramiko 访问 SFTP 服务器并连接到同一服务器上的 PostgreSQL。我发现很多使用

sshtunnel
登录 PostgreSQL 的例子。但我不知道如何用纯Paramiko做到这一点。

目前我的代码看起来像这样:

# establish SSH tunnel
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self.ssh.connect(hostname=host, username=user, password=password)

# setup SFTP server
self.sftp = self.ssh.open_sftp()

# connect to datebase
self.engine = create_engine('postgres+psycopg2://{}:{}@{}:{}/{}'.format(user, password, host, port, db))

感谢您的建议!

python postgresql ssh paramiko ssh-tunnel
1个回答
2
投票

注意

sshtunnel
只是 Paramiko 的包装。所以一般来说,你可以使用它来简化代码,除非你有一些限制阻止你安装额外的包。

例如:在Python中通过SSH隧道连接到PostgreSQL数据库

如果你无法安装它,你基本上至少可以重用它的代码。


强制性警告:请勿使用

AutoAddPolicy
- 这样做您将失去针对 MITM 攻击的保护。正确的解决方案请参阅Paramiko“未知服务器”

© www.soinside.com 2019 - 2024. All rights reserved.