Mac OS High Sierra和paramiko - 第6次SSH会话失败

时间:2018-06-12 20:17:15

标签: paramiko macos-high-sierra

我正在开发一个Ansible手册来从多个网络设备中收集一些事实。我用High Sierra在Mac上测试了我的剧本。我已经认识到Ansible可以仅使用5个设备成功建立SSH会话,其他会话返回错误(最常见的是#34;没有现有的会话")。我在CentOS机器上测试了相同的剧本没有问题。

经过一些故障排除后,我可以将问题缩小到OS X和paramiko。使用一个小的Python脚本,我可以重现这个问题:

import paramiko, os
paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)

ssh1 = paramiko.SSHClient()
ssh1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh1.connect("IP address", 22, "username", "password", look_for_keys=False, allow_agent=False)

ssh1.close()

如果我重复运行此脚本,前五次尝试成功,但第六次尝试总是失败并显示错误消息"读取SSH协议标题时出错#34;。

DEBUG:paramiko.transport:starting thread (client mode): 0x1411050L
DEBUG:paramiko.transport:Local version/idstring: SSH-2.0-paramiko_2.4.1
ERROR:paramiko.transport:Exception: Error reading SSH protocol banner
ERROR:paramiko.transport:Traceback (most recent call last):
ERROR:paramiko.transport:  File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/paramiko/transport.py", line 1893, in run
ERROR:paramiko.transport:    self._check_banner()
ERROR:paramiko.transport:  File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/paramiko/transport.py", line 2049, in _check_banner
ERROR:paramiko.transport:    'Error reading SSH protocol banner' + str(e)
ERROR:paramiko.transport:SSHException: Error reading SSH protocol banner
ERROR:paramiko.transport:
Traceback (most recent call last):
  File "yy.py", line 6, in <module>
    ssh1.connect("IP address", 22, "username", "password", look_for_keys=False, allow_agent=False)
  File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/paramiko/client.py", line 392, in connect
    t.start_client(timeout=timeout)
  File "/Users/xxx/Library/Python/2.7/lib/python/site-packages/paramiko/transport.py", line 545, in start_client
    raise e
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner

我已经针对Linux服务器或网络设备测试了这个脚本,症状是一样的。一段时间后,接下来的五次尝试将再次成功。

版本:Mac OS X High Sierra(10.13.5),paramiko:2.4.1

我认为这是OS X中某些低级网络设置的结果。不幸的是,我不是调整OS X网络堆栈的专家,所以任何推荐/评论都会受到高度赞赏。

谢谢和最诚挚的问候, 的Gabor

0 个答案:

没有答案