在Python Paramiko中检测连接关闭事件

问题描述 投票:0回答:1

如何检测连接何时因任何原因关闭?是否有任何事件/回调? 以下是我连接到 SFTP 的部分工作代码:

def connect(self, Host, Username, Password, Keyfilepath, Keyfiletype, Port=22):
   self.transport = paramiko.Transport((Host, Port))
   self.transport.connect(None, Username, Password, self.key)

如果我在连接状态下手动关闭 WiFi,我会收到一条日志

套接字异常:现有连接被远程主机强制关闭(10054)

然而,这是

Paramiko
库本身的错误。有没有办法通过我的代码来控制它?谢谢

一些背景:当用户登录时,我会将他们连接到 SFTP 并将标签更新为 “服务器已连接”。但是,当由于任何原因连接断开时,我无法将标签更新为“已断开连接”

python ssh sftp paramiko
1个回答
0
投票

定期致电

Transport.is_active()
检查连接是否仍然有效。


Ntb,通过使用低级

Transport
类,您可能绕过主机密钥检查,这是一个安全缺陷。您最好使用高级
SSHClient
API。

© www.soinside.com 2019 - 2024. All rights reserved.