从今天早上开始,当我尝试连接到我的遥控器时,我收到以下错误消息Ubuntu 14.04 LTS机器ssh
通过MacBook Air Yosemite 10.10.1。
ssh_exchange_identification: read: Operation timed out
使用-vvv
标志时会出现以下详细消息
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXX.XXX.XXX.XXX [XXX.XXX.XXX.XXX] port 22.
debug1: Connection established.
debug1: identity file /Users/felix/.ssh/id_rsa type -1
debug1: identity file /Users/felix/.ssh/id_rsa-cert type -1
debug1: identity file /Users/felix/.ssh/id_dsa type -1
debug1: identity file /Users/felix/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: read: Operation timed out
几个月来,这种连接一直运行良好。我从未遇到过任何问题。其他解决方案包括这里和这里没有帮助。
关于如何解决此问题有什么建议吗?
答案1
debug1: Local version string SSH-2.0-OpenSSH_6.2
ssh_exchange_identification: read: Operation timed out
根据您的调试跟踪,您设法连接到远程 SSH 服务器,并且服务器没有断开连接,但服务器没有发送其软件标识字符串。这是客户端和服务器执行的第一件事,并且以明文形式完成。
我认为问题可以归结为以下三个方面之一:
您和服务器之间的某些网络设备正在干扰连接。例如,如果远程主机位于 NAT 路由器后面,则端口 22 的端口转发可能设置错误,导致您连接到错误的服务。
远程主机上的 SSH 服务器程序可能挂起或出现故障。我见过这种情况,例如当主机严重超载或虚拟内存不足时。或者服务器可能正在使用类似TCP 包装器,它正在对您的客户端 IP 执行 DNS 查询,该查询需要很长时间才能解析。
远程主机的设置方式不寻常,并且在端口 22 上运行的服务不是 SSH 服务器。
如果您可以访问服务器,请将故障排除重点放在那里。查找 ssh 服务器的日志——它们应该在里面/var/log
,看看它是否记录了有关这些失败的连接尝试的任何信息。尝试从服务器运行 ssh 到 localhost,看看是否正常工作。
如果您有服务器的 root 访问权限,则可以尝试启动 的调试实例,sshd
以查看客户端连接时它会记录什么。暂停普通sshd
服务器,然后在 root 终端窗口中运行/path/to/sshd -d
。这将运行 sshd 的副本,它将接受一个连接并将调试信息打印到终端窗口。看看您是否可以重现该问题,然后检查服务器记录的内容。
如果您无法使常规 ssh 服务器脱机,则可以在另一个端口上运行 sshd:/path/to/sshd -p 42 -d
运行 sshd 的副本,监听端口 42。运行 ssh 客户端时指定相同的端口号:ssh -p 42 user@host
。如果您的问题是由于网络设备干扰造成的,则这可能与连接到端口 22 的行为不同。