SSH 到 Cygwin 响应缓慢

pro*_*eek 6 ssh performance cygwin

我有一台运行 sshd 的 Cygwin 机器。当我尝试使用 SSH 登录机器时,需要一段时间才能得到响应。

使用 command ssh -v user@cygwin,我看到有两个命令需要几分钟。

debug1:读取配置数据 /etc/ssh_config
debug1:连接到 pspc [10.0.40.177] 端口 22。
debug1:连接建立。
debug1:身份文件/Users/smcho/.ssh/identity type -1
debug1:身份文件/Users/smcho/.ssh/id_rsa type -1
debug1:身份文件/Users/smcho/.ssh/id_dsa type -1 <---

debug1:远程协议版本2.0,远程软件版本OpenSSH_5.3
debug1:匹配:OpenSSH_5.3 拍 OpenSSH*
debug1:启用协议 2.0 的兼容模式
debug1:本地版本字符串 SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT 发送 <---

经过一番谷歌搜索,我认为这是由 Windows 端口 113 被防火墙引起的。( http://www.cygwin.com/ml/cygwin/2009-03/msg00380.html )

我怎么解决这个问题?如何从恢复identifySSH2_...IT sent迅速?

Arj*_*jan 4

除了确实向 SSH 客户端开放IDENT端口 113(以便服务器可以尝试连接到该端口)之外,您可能会幸运地添加 UseDNS nosshd_config.

我怀疑它会对你有帮助(客户端知道在哪里可以找到服务器,所以这不是第一个项目符号,你尝试了第二个项目符号,并且延迟超过 10 秒,所以其他项目符号不适用),但是对于OpenSSH 常见问题解答档案指出:

ssh(1) 需要很长时间才能连接或登录

较大的延迟(超过 10 秒)通常是由名称解析问题引起的:

  • 某些版本的 glibc(特别是 Red Hat 6.1 附带的 glibc 2.1)可能需要很长时间才能解析域名中的“IPv6 或 IPv4”地址。AddressFamily inet这可以通过在 中指定选项来解决ssh_config。[在客户端;AVB.]
  • 客户端或服务器可能存在 DNS 查找问题。您可以使用 nslookup 命令通过查找另一端的名称和 IP 地址来检查客户端和服务器上的情况。此外,在服务器上查找客户端的 IP 名称查找返回的名称。UseDNS no您可以通过设置来禁用大多数服务器端查找sshd_config。[在服务器上,AvB。]

少于 10 秒的延迟可能有其他原因。

  • 3.8 之前的 OpenSSH 版本的moduli文件的模数仅小于 sshd 所需的模数,因此,sshd 最终将使用比请求的模数大得多的模数,从而导致速度下降。替换该moduli文件将解决此问题(请注意,在大多数情况下,该文件在升级过程中不会被替换,必须手动替换)。
  • 3.8 之前的 OpenSSH 版本存在一个缺陷ssh,会导致它请求的模数大于预期(与上述情况结合使用会导致速度显着降低)。将客户端升级到 3.8 或更高版本将解决此问题。
  • 如果客户端或服务器缺少基于内核的随机数设备(例如 Solaris < 9、AIX < 5.2、HP-UX < 11.11)并且没有可用的替代品(例如 prngd),则可能调用其中一个程序来ssh-rand-helper生成熵悬着。这可以通过在调试模式下运行来进行调查:

    /usr/local/libexec/ssh-rand-helper -vvv

    应调查并纠正任何重大延迟,或者应从 ssh_prng_cmds 中删除相应的命令。