为什么我的所有 SSH 尝试都因超时而失败?

exp*_*rer 31 ssh

我是使用 ssh 和相关技术的新手,所以很可能我不了解一些基本的东西。(这也可能是 Server Fault 的问题……不确定。)

我正在尝试通过 ssh 连接到(我拥有的)Web 服务器,但由于超时而从未建立连接。

~ $ ssh -vvv DOMAIN.com
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/USER/.ssh/config
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 DOMAIN.com [123.45.67.89] port 22.
debug1: connect to address IPADD port 22: Operation timed out
ssh: connect to host DOMAIN.com port 22: Operation timed out
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是我以某种方式指定了错误的域,或者我的网站有问题。所以我尝试通过 FTP 连接到同一个域,并且工作正常(提示输入用户名):

~ $ ftp
ftp> open
(to) DOMAIN.com
Connected to DOMAIN.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 2 of 50 allowed.
220-Local time is now 12:47. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (DOMAIN.com:USER):
Run Code Online (Sandbox Code Playgroud)

然后我想也许我只是错误地使用了 SSH。我开始看这个教程视频。在大约 1 分钟后,他做了ssh will@supercars.com并得到了一个用户名提示,但它给了我与上面相同的超时。然后我尝试了ssh google.com哪个做同样的事情。ssh localhost,另一方面,工作正常。所以这个问题似乎与网络上的 SSH 请求有关。

我的下一个想法是这可能是防火墙问题。我确实在这台机器上安装了 Sophos,但根据我的管理员的说法,它“不应该”阻止传出的 SSH 请求。

任何人都可以帮助弄清楚为什么会这样吗?

Wou*_*lst 30

该错误消息意味着您要连接的服务器不会回复端口 22 上的 SSH 连接尝试。可能的原因有以下三种:

  1. 您没有在机器上运行 SSH 服务器。您需要安装它才能通过 ssh 连接到它。
  2. 您正在该机器上运行 SSH 服务器,但在非标准端口上。您需要弄清楚它在哪个端口上运行;说它在端口 2222 上,然后运行ssh -p 2222 hostname.
  3. 您正在该计算机上运行 SSH 服务器,并且它确实使用了您尝试连接的端口,但是该计算机的防火墙不允许您连接到它。您需要弄清楚如何更改防火墙,或者您可能需要从不同的主机进行 ssh 以允许进入。

编辑:正如(正确)在评论中指出的那样,第三个肯定是这样;其他两个将导致服务器在客户端尝试连接时发送一个 TCP“重置”包,从而导致“连接被拒绝”错误消息,而不是您得到的超时。其他两个也可能是这种情况,但您需要先修复第三个,然后才能继续。

  • 如果它没有安装,或者它在不同的端口上运行,那么他会收到连接被拒绝的消息。 (7认同)
  • @Hut8:是的。在您的 3 种可能性中,只有第三种(防火墙)可能会导致超时。 (3认同)