Windows 中的 SSH 传输速度非常慢

Windows 中的 SSH 传输速度非常慢

在我工作的地方,由于大量使用 .NET 框架,我不得不将很多开发工作从 Linux 机器转移到 Windows。我们使用 SVN 和 git 进行版本控制(转换到 git),它们通过 ssh 进行操作。

硬件细节是实际的机器是较新的 iMac(较薄的 iMac 之一……2012 年末 27 英寸),运行装有 Windows 7 的虚拟机(VMWare Fusion 5.0.3)。网络配置为使用 NAT,所有虚拟机都在虚拟网络上运行,网关是 iMac,它在网络上有一个静态 IP 地址。我正在连接的服务器都在 LAN(100BaseT)上,尽管距离服务器机房约 100 米。

问题是这样的:无论是 tortoisesvn 还是 msysgit,每当我的 Windows 机器需要通过 ssh 通信并传输数据时,发送的数据最大速度约为 5KB/s。我无法完全分辨接收的数据,但它看起来非常相似。Wireshark 显示,发送/接收的 TCP 重传和无序数据包数量令人讨厌,我想这与我的速度问题有关。我不知道如何解决这个问题。

这非常烦人,尤其是当需要 30 分钟才能通过本地网络将包含 1-2MB 二进制文件的几个提交推送到 100 米外的服务器上的存储库时。我害怕在 git 推送时进行任何提交或任何操作,因为担心会发生什么,所以当它推送时,我基本上会暂停任何认真的工作一段时间。我通常会在下班时尝试推送,这样它就会在我离开时推送,但即便如此,有时推送还是无法避免。

我所在房间里的其他机器都没有这个问题,除了我之外,其他人似乎都推得很好。

有人知道这里可能存在什么问题吗?

答案1

显然这是由于 OpenSSL 版本过旧所致。请看这里:

http://darrell.mozingo.net/2011/09/29/painfully-slow-clone-speeds-with-msysgit-gitextensions/

要检查您是否拥有这个古老版本:

$ ssh -V
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007

要修复此问题,只需安装最新版本的 Cygwin,然后修改 PATH,使 Cygwin 附带的 ssh.exe 文件夹出现在前面,或者将以下文件复制到 C:\Program Files\Git\bin (或 Program Files (x86),如果你使用的是 64 位):

cygcrypto-0.9.8.dll
cyggcc_s-1.dll
cygssp-0.dll
cygwin1.dll
cygz.dll
ssh.exe
ssh-add.exe
ssh-agent.exe
ssh-keygen.exe
ssh-keyscan.exe

相关内容