当使用 ssh 连接到 Debian 服务器时,如果我使用[电子邮件保护](服务器的 IP 地址)连接是即时的。
但是如果我使用[电子邮件保护](DNS重定向到服务器的IP地址)ssh连接挂起20秒后才成功连接。ssh日志显示以下内容:
[alex@alex home]$ ssh -v -v [email protected]
OpenSSH_5.5p1, OpenSSL 1.0.0c-fips 2 Dec 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
这里它挂起了 20 秒才继续。
我认为它可能与反向 DNS 或类似内容有关(服务器实际上并不“知道”它的名称是 hostname.com,它只是将该 DNS 重定向到其 IP 地址)。
我已将以下选项添加到 /etc/ssh/sshd_config:
UseDNS no
GSSAPIAuthentication no
没有效果。
/etc/resolv.conf 中的服务器 DNS 记录配置正确:
ping hostname.com
PING sub.domain.com (X.X.X.X) 56(84) bytes of data.
64 bytes from replicant (X.X.X.X): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from replicant (X.X.X.X): icmp_seq=2 ttl=64 time=0.050 ms�s
谢谢您的帮助。
解决方案: 看来我的 ISP 提供给我的 DSL 路由器是造成问题的原因。
将我的 DNS 服务器从 192.168.1.1(路由器的 IP)更改为 google 的(8.8.8.8,在您着急的时候知道这个信息总是好的)立即解决了连接延迟问题。
我猜测提供的 50 欧元路由器不缓存 DNS 条目,虽然我不明白为什么 ping DNS 地址没有延迟,而且即使对于未缓存的 DNS,20 秒的等待时间也太长了。
再次感谢您的帮助!
答案1
您需要添加
GSSAPIAuthentication no
...到/etc/ssh/ssh_config
,不是 /etc/ssh/sshd_config
正如你所说的。要检查这是否确实是修复方法,请尝试添加-o GSSAPIAuthentication=no
到命令行以查看是否能改变情况。
答案2
我使用的是 Mac 客户端。在服务器上禁用 GSSAPIAuthentication 没有任何效果。
我跟着http://hints.macworld.com/article.php?story=20111020115417965并关闭了我的〜/.ssh /配置通过增加:
Host ...
AddressFamily inet
这解决了这个问题:-)
答案3
您可能在客户端遇到一些 DNS 问题,请检查解析服务器主机名需要多长时间:
[vitalie@silver ~]$ time host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.87.99
www.l.google.com has address 74.125.87.104
real 0m0.727s
user 0m0.002s
sys 0m0.008s