SSH 到 Cygwin 响应缓慢

SSH 到 Cygwin 响应缓慢

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

使用命令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 类型-1
debug1:身份文件/Users/smcho/.ssh/id_dsa 类型 -1 <---

debug1:远程协议版本2.0,远程软件版本OpenSSH_5.3
调试1:匹配:OpenSSH_5.3 pat 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

identify我该如何解决这个问题?我该如何快速返回SSH2_...IT sent

答案1

除了确实向 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 nosshd_config。[在服务器上,AvB。]

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

  • OpenSSH 3.8 之前的版本中有一个moduli文件,其模数比 sshd 需要的模数小,因此 sshd 最终会使用比要求的模数大得多的模数,从而导致速度下降。替换该moduli文件将解决此问题(请注意,在大多数情况下,升级期间不会替换此文件,必须手动替换)。
  • OpenSSH 3.8 之前的版本存在一个缺陷,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 中删除相应的命令。

答案2

对于您提到的第一种情况,我遇到了速度缓慢的问题。

debug1: identity file /Users/smcho/.ssh/id_dsa type -1 <---

我的 OpenSSH 版本是 5.1。我删除了旧安装并安装了 cygwin OpenSSH 5.5,速度问题已经消失。也许你可以试试这个。

相关内容