停止SSHTunnel服务器时,应用程序挂起

时间:2020-03-09 19:08:50

标签: python ssh ssh-tunnel

我有一个非常简单的脚本,该脚本建立与另一台主机的连接,然后创建另一个应用程序通过其连接到SQL Server的隧道。

    self.dicSession['server'] = sshtunnel.SSHTunnelForwarder(
        ('remote_host', 22),
        ssh_username="username",
        ssh_password="password",
        ssh_private_key="key_rsa",
        remote_bind_address=('remote_host', 53425),
        local_bind_address=('localhost', 1433),
    )
    self.dicSession['server'].start()

工作正常。但是该命令停止服务器。建立连接后,我正在使用隧道(在远程主机的53425端口和本地主机的1433端口之间)连接到在远程主机上运行的SQL Server。到目前为止,一切正常。但是,似乎可以通过命令停止SSH连接

self.dicSession['server'].stop()

无法正常工作。尽管有命令停止连接,我仍然能够执行SQL语句并获得结果。此外,当我在命令后执行SQL查询时

self.dicSession['server'].stop()

该应用程序-我们使用PyQT5构建的应用程序-冻结。老实说,我并没有尝试在没有GUI的情况下运行脚本,但是我将需要GUI,因为该应用程序不仅适合我,而且适合不熟悉CLI的其他人。

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为您的客户端仍处于打开状态。

关闭客户端后,它将允许您停止服务器。

相关问题