最近,我根据paramiko制作了一个连接工作站的代码,其中包含不同的用户名(感谢私钥).
我从来没有遇到任何问题,但今天,我有: SSHException: Error reading SSH protocol banner
这很奇怪,因为它在任何连接上都是随机发生的.有没有办法解决它?
Tin*_*ane 25
这取决于你的意思是"修复".正如评论中指出的那样,根本原因是拥挤/缺乏资源.这样,它类似于一些HTTP代码.这是正常原因,可能是ssh服务器返回错误的头数据.
429太多请求,告诉客户端使用速率限制,或者如果超出配额,API有时会以类似的方式返回503.想法是,稍后再试,延迟.
您可以尝试在代码中处理此异常,稍等片刻,然后重试.您还可以编辑transport.py文件,将横幅超时设置为更高的值.如果您的应用程序无论服务器响应的速度无关紧要,您可以将其设置为60秒.
Gre*_*cki 13
添加到TinBane 的答案,建议编辑transport.py:您不必再这样做了。
自2015 年发布的Paramiko v. 1.15.0以来,(准确地说是这个 PR)您可以在创建 Paramiko 连接时配置该值,如下所示:
client = SSHClient()
client.connect('ssh.example.com', banner_timeout=200)
Run Code Online (Sandbox Code Playgroud)
在编写这些词时的当前版本的 Paramiko 中,v. 2.7.1,您可以在调用connect方法时配置另外 2 个超时,总共有这 3 个(来源):
banner_timeout - 等待 SSH 横幅出现的可选超时(以秒为单位)。timeout - TCP 连接的可选超时(以秒为单位)auth_timeout - 等待身份验证响应的可选超时(以秒为单位)。| 归档时间: |
|
| 查看次数: |
47091 次 |
| 最近记录: |