2011-08-26 75 views
5

我正在为我的构建脚本使用Fabric。我刚刚克隆了一台虚拟机,并创建了一台新服务器。 Fabric脚本(在下面使用paramiko)可以很好地运行一台服务器,但不能运行其他服务器。由于它是一个克隆,我不知道可能会有什么不同,但每次运行Fabric结构脚本时,都会收到错误Error reading SSH protocol banner。该脚本与两台服务器上的相同用户连接。这个脚本在所有其他服务器上工作正常,除了我刚刚克隆的这个新的服务器。唯一不同的是IP地址,它是完全不同的范围。Paramiko错误:读取SSH协议标题时出错

关于可能导致此问题的任何想法?

回答

7

这个问题并不在于Paramiko,Fabric或SSH守护进程。它只是ISP内部网络中的防火墙配置。出于某种原因,他们不允许在他们的不同子网之间进行通信。

我们无法真正修复防火墙配置,因此我们将所有IP切换到同一子网上。

+1

我出现同样的错误。但在我的情况下主机是亚马逊实例,我应该怎么做,在这种情况下 – sagar

2

尝试在transport.py文件中将横幅超时从15秒更改为30秒。另外,它可能是服务器上的sshd守护程序被挂起。你可以手动进入SSH吗?

+0

我编辑了transport.py并将超时改为30秒,但没有帮助。我可以手动SSH到服务器并执行所有命令。奇怪的问题。 –

+0

嗨加布里埃尔,这可能是由网络问题引起的? –

+0

我刚刚从Fabric服务器向服务器A和服务器B运行了一个跟踪路由。服务器A的跟踪路由很好,脚本也能正常工作,但服务器B的跟踪路由向我显示了这些未知主机事件中的28个* * * *'。两台服务器的IP都属于同一ISP,唯一不同的是该类。 –