SSH Tunnel链接远程数据库
因为数据库是在云上,所以想用ssh隧道的形式连接云上的数据库,想问一下如何使用模块化的设计把SSH Tunnel引到这个项目里,有没有什么好的建议。
12
收起
正在回答 回答被采纳积分+1
1回答
泽辉呀
2025-08-05 21:18:06
可以这样,使用@contextmanager创建一个上下文,用于创建和自动管理一个 SSH 隧道连接,然后在这个上下文中创建 Flask App 应用,期间就可以像正常连接 postgres 数据库一样,访问远程云上的数据库,但实际流量是通过 SSH 安全加密传输的,其他的操作均无需修改。
示例代码(演示用的,需要自行调整):
# tunnel.py
from contextlib import contextmanager
from sshtunnel import SSHTunnelForwarder
@contextmanager
def ssh_tunnel():
server = SSHTunnelForwarder(
ssh_address_or_host=('your.ssh.host', 22),
ssh_username='your_ssh_username',
ssh_pkey='/path/to/private/key',
remote_bind_address=('127.0.0.1', 5432),
local_bind_address=('127.0.0.1', 6543)
)
server.start()
try:
yield server
finally:
server.stop()接下来创建一个上下文,在上下文中运行 App 实例即可:
from tunnel import ssh_tunnel if __name__ == '__main__': with ssh_tunnel(): # 在这里创建 App,其余的操作和普通的操作没区别 ...
AI Agent 全栈开发工程师
- 参与学习 543 人
- 解答问题 417 个
全流程打造你自己的(Coze/Dify)低代码智能体开发平台;2025年入行正当时,企业急需,人才稀缺,竞争小;无论入行还是转行,首选口碑好课,门槛低、成长高
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星