Python 为什么Fabric会显示断开与服务器连接消息将近2分钟?

Python 为什么Fabric会显示断开与服务器连接消息将近2分钟?,python,ssh,virtualenv,fabric,paramiko,Python,Ssh,Virtualenv,Fabric,Paramiko,显示断开与的连接username@server... 完成。差不多2分钟后,每当我发出fab命令时都会显示新的命令提示符 使用向内部服务器和Rackspace云服务器发出的结构命令时存在此问题。下面是服务器上的auth.log,我在MacBook上的日志中没有看到任何内容 你有没有想过问题出在哪里 服务器的SSH auth.log具有日志级别详细信息 服务器配置 操作系统:Ubuntu 9.10和Ubuntu 6.10(使用这些操作系统测试了4台服务器) OpenSSH:Ubuntu软件包版本

显示
断开与的连接username@server... 完成。
差不多2分钟后,每当我发出fab命令时都会显示新的命令提示符

使用向内部服务器和Rackspace云服务器发出的结构命令时存在此问题。下面是服务器上的auth.log,我在MacBook上的日志中没有看到任何内容

你有没有想过问题出在哪里

服务器的SSH auth.log具有日志级别详细信息 服务器配置
  • 操作系统:Ubuntu 9.10和Ubuntu 6.10(使用这些操作系统测试了4台服务器)
  • OpenSSH:Ubuntu软件包版本1.5.1p1-6ubuntu2
客户端配置
  • 操作系统:Mac OS X 10.6.3
  • 织物版本0.9
  • Vritualenv版本1.4.7
  • pip版本0.7
用于测试的Simple fabfile.py 即使我只是使用以下fab文件运行
fab-H server\u ip host\u type
,问题仍然存在

from fabric.api import run

def host_type():
    run('uname -s')
对问题成因的思考 我不确定这个问题持续了多长时间,但下面是一些自我开始注意到使用Fabric时服务器断开连接速度缓慢以来发生的变化

  • 我使用virtualenv 1.4.7、VirtualEnvRapper 2.1和pip 0.7重新创建了我的virtualenv。不确定这是否相关,但这是一个想法,因为我在virtualenv中运行我的文件
  • 我启用了OSX的防火墙。我禁用了OSX的防火墙,问题依然存在,所以这不是问题所在
  • 解决方案 在我的virtualenv中发出以下命令后,问题不再存在:

    pip install -U paramiko
    
    这安装了paramiko-1.7.6和pycrypto-2.0.1。以前,我有paramiko-1.7.4和pycrypto-2.0.1

    鉴于pycrypto版本没有改变,这似乎是罪魁祸首。至少在paramiko 1.7.4和Fabric 0.9之间存在交互作用,该交互作用通过将paramiko升级到1.7.6来修复


    注意:我在一个virtualenv中升级到paramiko-1.7.6,并确认问题已经解决。然后我激活了另一个仍然有paramiko-1.7.4的virtualenv,并确认问题仍然存在,它确实存在。然后,我将paramiko从1.7.4升级到1.7.6,并确认该问题在该virtualenv中也得到了解决。

    感谢您在此跟踪。我只想提醒读者,Paramiko 1.7.4在Fabric 0.9中是稳定的,但在最近一两周,有几个用户开始出现这种或类似的问题(断开连接超时),所以我猜是其他组件(Python升级,或远程服务器包升级,等等)正在发挥作用,这将触发1.7.4中的一个错误

    我将查看Paramiko 1.7.5/1.7.6的变更日志,收集更多关于人们平台/Python版本/等的信息,尝试看看是否出现了一种模式


    编辑:新创建的针对该问题的Redmine票证位于此处:

    历史重复-我发现fabric 1.3.2和paramiko 1.7.7.1存在相同的问题。
    pip install -U paramiko