我目前使用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))
字符串
感谢您的任何建议!
1条答案
按热度按时间c9qzyr3d1#
请注意,
sshtunnel
只是Paramiko的一个 Package 器。因此,通常情况下,您可以使用它来简化代码,除非您有一些限制阻止您安装其他软件包。例如:Connecting to PostgreSQL database through SSH tunneling in Python
如果你不能安装它,你基本上至少可以重用它的代码。
AutoAddPolicy
-这样做会失去对MITM attacks的保护。有关正确的解决方案,请参阅Paramiko "Unknown Server" *。