У меня очень простой скрипт, который устанавливает соединение с другим хостом, а затем создает туннель, через который другое приложение подключается к SQL Серверу.
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 серверу, который работает на удаленном хосте. До этого момента все работало нормально. Однако кажется, что остановка соединения S SH с помощью команды
self.dicSession['server'].stop()
не работает должным образом. Несмотря на команду остановить соединение, я все еще могу выполнить оператор SQL и получить результаты. Более того, когда я выполняю запрос SQL после команды
self.dicSession['server'].stop()
, приложение, которое мы строим с использованием PyQT5, зависает. Если честно, я не пытался запустить скрипт без GUI, но мне понадобится GUI, так как приложение предназначено не только для меня, но и для других людей, которые не знакомы с CLI.