我无法通过SSH连接到远程主机。 我只是把问题的范围缩小到我的本地主机,因为其他客户端每次都进行名义(快速和稳定)的连接。
尝试从localhost通过SSH连接到remotehost.example.net将超过10次尝试中的任何一次(它在此挂起,然后超时):
515 chris@localhost ~ $ ssh -vvv remotehost-root OpenSSH_6.4, OpenSSL 1.0.1e 11 Feb 2013 debug1: Reading configuration data /home/chris/.ssh/config debug1: /home/chris/.ssh/config line 43: Applying options for remotehost-root debug1: Reading configuration data /etc/ssh/ssh_config debug2: ssh_connect: needpriv 0 debug1: Connecting to remotehost.example.net [123.123.123.123] port 12345. ^C
localhost是一个最新的Arch系统:
517 chris@localhost ~ $ uname -a Linux localhost 3.12.1-1-ARCH #1 SMP PREEMPT Thu Nov 21 08:18:42 CET 2013 x86_64 GNU/Linux
我正在使用一个SSHconfiguration文件来remotehost ,如下所示:
521 chris@localhost .ssh $ cat ~/.ssh/config ... host remotehost-root HostName remotehost.example.net User root Port 12345 IdentityFile ~/.ssh/remotehost-root.id_rsa ...
这是一个最近的问题,但不幸的是,我不记得做任何有关的改变。 我不知道要检查什么。
也许值得注意的是,这会影响所有的 SSH连接(例如通过SSH和SFTP git),而不仅仅是命令行SSH工具。
通过任何其他协议(例如HTTP , HTTPS ,BitTorrent等)访问remotehost.example.net ,我没有任何问题。
/etc/ssh/ssh_config唯一的活动/未注释的行是:
ServerAliveInterval 120
我还能在哪里看? 我可以使用哪些其他debugging工具(我能想到的就是运行ssh -vvv )?
我尝试在远程主机上尝试连接时尝试运行tcpdump ,但无法弄清楚如何从运行 tcpdump的shell过滤数据包,从而无限循环发送垃圾邮件,使自己脱离任何有用的诊断。
更新1:值得注意的是,我已经能够在第二个SSH主机,以及一个IRC服务器上复制这个行为,从而certificate(在我看来)这是一个问题,完全在我的本地主机上的一些configuration。
更新2:还值得注意的是,虽然我的本地主机有这些出站连接的麻烦,其他客户端(包括一个和一个closures,我的局域网)没有问题任何相同的远程主机,或任何其他主机。 再次,让我相信这只是localhost内的一些configuration问题(但也许我错了?)。
更新3:我已经从本地主机删除openssh软件包(和configuration),并重新安装,无济于事。
如果您的本地计算机的CPU负载过高,则可能会发生超时,几年前我曾经遇到过这个问题。 我的备份过程当时吃了我的IO + CPU。
由于我连接的服务器是GPRS,因此devise缓慢,我没有立即想到本地主机的问题。
此外,你可能会像你说的有一个连接的限制,你可以使用。
我个人会用wireshark来检查数据包。
1)您是否启用了GSSAPIAuthentication? 尝试在/ etc / ssh / sshd_config中将其设置为“no”
2)你有没有检查这是否是一个DNS查找问题? 尝试将目标主机及其IP地址添加到/ etc / hosts,然后重试您的SSH连接
3)要做你的tcpdump,你可以使用下面的命令:
tcpdump -n "port 22 and dst <ip address of destination host>"
4)你可以发布-vvvdebugging的完整输出吗? 还是那个? 你能在超时后显示它说的吗?
在挂起的任何场合,你也可以简单地执行netstat -an | grep <ip of remote host> netstat -an | grep <ip of remote host> ,如果“状态”字段是“SYN_SENT”,那么你知道它在某种程度上被阻塞了。
你有没有尝试改变客户端的IP地址? 难道局域网防火墙阻止或限制了某些来自该特定地址的SSHstream量?