微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 Python Paramiko 中检测连接关闭事件

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

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

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

Socket 异常:一个现有的连接被远程主机强行关闭 (10054)

然而,这是来自 Paramiko 库本身的错误。有没有办法通过我的代码来控制它?谢谢

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

解决方法

定期调用 Transport.is_active() 以检查连接是否仍然有效。


Ntb,通过使用低级 Transport 类,您可能会绕过主机密钥检查,这是一个安全漏洞。您最好使用高级 SSHClient API。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。