[错误解决]paramiko.ssh_exception.SSHException: Error reading SSH protocol banner 设置

报错信息

上午的时候数据组的同事跟我说有几个程序报错,经过查看log发现找到报错信息:

paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

经过搜索,得知引起该错误的原因是因为banner_timeout默认设置太短,只有15s。

错误分析

经查看paramiko库下面的transport.py下面的Transport代码如下:

class Transport(threading.Thread, ClosingContextManager):
        self.banner_timeout = 15
        # how long (seconds) to wait for the handshake to finish after SSH

重设banner_timeout属性值

网上的方法大多数是修改源码,重新安装,感觉略麻烦。这里在代码里面进行属性重新设置。

transport = paramiko.Transport((self.host, self.port))
print(transport.banner_timeout)
transport.banner_timeout = 30
print(transport.banner_timeout)

经过测试,两次打印出来的属性值不同,说明属性设置成功,问题解决。

猜你喜欢

转载自www.cnblogs.com/everfight/p/paramiko_ssh_exception.html