gpt4 book ai didi

python - 以编程方式关闭 Paramiko 中的 SSH 隧道

转载 作者:行者123 更新时间:2023-11-28 22:06:58 25 4
gpt4 key购买 nike

我们正在尝试使用 paramiko 模块按需创建到任意服务器的 SSH 隧道,以查询远程数据库。我们尝试使用 paramiko 附带的 forward.py 演示,但最大的限制是似乎没有一种简单的方法可以在套接字服务器启动后关闭 SSH 隧道和 SSH 连接。

我们的限制是我们不能从 shell 激活它,然后手动终止 shell 以停止监听器。我们需要打开 SSH 连接,隧道,通过隧道执行一些操作,关闭隧道,并在 python 中关闭 SSH 连接。

我看到了对 server.shutdown() 方法的引用,但不清楚如何正确实现它。

最佳答案

我不确定您所说的“正确实现”是什么意思——您只需要跟踪服务器对象并在需要时对其调用shutdown。在 forward.py 中,没有跟踪服务器,因为 forward_tunnel 的最后一行是

ForwardServer(('', local_port), SubHander).serve_forever()

所以服务器对象不再容易访问了。但您可以将其更改为,例如:

global theserver
theserver = ForwardServer(('', local_port), SubHander)
theserver.serve_forever()

并在单独的线程中运行 forward_tunnel 函数,以便 main 函数取回控制权(而 serve_forever 正在运行单独的线程)并且可以在适当和需要的时候调用 theserver.shutdown()

关于python - 以编程方式关闭 Paramiko 中的 SSH 隧道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2777884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com