如何通过Paramiko隧道(或类似包)连接数据库

0 投票
2 回答
3186 浏览
提问于 2025-04-16 06:12

我在用paramiko设置一个合适的隧道,以便连接数据库时遇到了很大的问题。我看过示例代码'forward.py',但还是不明白怎么把数据库连接和它关联起来。如果能给我一些建议,我会非常感激。

我觉得我需要一些类似下面的东西:

t = paramiko.Transport((hostname, port))
t.connect(username=username, password=password, hostkey=hostkey) 
c = paramiko.Channel(t)

#something about assigning a local port to this connection

connection = psycopg2.connect(connectionstring)
#and do my stuff

connection.close()
c.close()
t.close()

2 个回答

1

我之前也遇到过让paramiko工作的问题,感觉挺麻烦的,最后我选择了另一个库(sshtunnel),它可以把paramiko的隧道功能包装起来,让使用起来更简单。

你可以看看我在另一个类似问题中给的回答,里面有一些示例代码,教你怎么用这个库。

2

如果你是通过 forward.py 脚本创建了 SSH 隧道,那么你可以用这个 SSH 隧道来 连接 PostgreSQL,方法如下:

conn = psycopg2.connect(database="test", host="localhost", port=<forward_port>)

撰写回答