在Linux Ubuntu上,SSH服务器连接到主机xxx的22端口时超时。

62

我正在尝试通过ssh连接到远程服务器,但连接超时。

我运行了以下命令

ssh testkamer@test.dommainname.com

并得到以下结果

ssh: connect to host testkamer@test.dommainname.com port 22: 连接超时

但是,如果尝试连接另一个远程服务器,则可以成功登录。

因此,我认为ssh没有问题,其他人使用相同的登录名和密码尝试登录后也可以成功登录到服务器。

请帮助我
谢谢。


23
针对此问题,出现错误可能有多种原因。为了获得更具体的响应,请使用 -vvv 选项调用 ssh 命令。例如:ssh -vvv testkamer@test.kameronderdehamer.nl - brandizzi
1
我能够使用FileZilla SFTP连接,但在尝试从终端连接时,在Mac Catalina上出现了这个错误...使用sudo尝试可以解决问题...例如:sudo ssh -i key.pem user@ec2.instance.com - Ahmad
6
在我的情况下,我无法连接,因为有人在实例上打开了防火墙(ufw),并且忘记通过“sudo ufw allow ssh”允许SSH端口。 - oomer
我也遇到了同样的错误。但是我只是重置了防火墙设置,在Hostinger VPS上它对我起作用了。 - undefined
对于Hostinger,我尝试重置密码,结果成功了。 - undefined
27个回答

20

以下是阻止您连接到Linode实例的可能原因:

  1. DNS问题:如果您用来连接远程服务器的计算机无法正确解析test.kameronderdehamer.nl,那么您将无法到达您的主机。尝试使用分配给Linode的公共IP地址进行连接,看看是否可以连接(例如ssh user@123.123.123.123)。如果您能够使用公共IP地址连接,但无法使用主机名连接,则可以证实您存在域名解析问题。

  2. 网络问题:可能存在某些网络问题导致您无法与服务器建立连接。例如,您和主机之间的路径中可能存在配置错误的路由器,或者您可能正在经历数据包丢失。虽然这种情况不常见,但我在使用Linode时遇到过几次,这可能非常令人烦恼。建议您检查一下,以防万一。您可以查看使用MTR诊断网络问题(来自Linode图书馆)。


2
谢谢!我已经在断断续续的三天里解决如何从Windows 10连接到我的Ubuntu 20.04.2服务器的问题,尝试重新安装OpenSSH,尝试默认端口,检查防火墙,检查IP地址,编辑配置文件,尝试不同的用户帐户,所有的东西...结果发现我只需要重启我的互联网路由器。哦,我的上帝,这么简单。FYI,当我尝试连接时,我遇到的SSH错误是WSL上的“资源暂时不可用”和Windows命令提示符上的“连接超时”。 - Tania

15
该错误消息意味着您连接的服务器未响应端口22上的SSH连接尝试。有三个可能的原因:
  1. 您在该计算机上未运行SSH服务器。您需要安装它才能够ssh到它。
  2. 您在该计算机上运行了一个SSH服务器,但它在不同的端口上。您需要找出它在哪个端口上运行;比如它在端口1234上,那么您就要运行 ssh -p 1234 主机名。
  3. 您在该计算机上运行了一个SSH服务器,并且它确实使用您正在尝试连接的端口,但该计算机有防火墙不允许您连接它。您需要找出如何更改防火墙,或者可能需要从另一台主机ssh以获准入内。
编辑:正如评论中(正确)指出的那样,第三种情况肯定是正确的;其他两种情况会导致服务器在客户端连接尝试时发送TCP“重置”包,从而导致“连接被拒绝”的错误消息,而不是您遇到的超时。其他两种情况也可能是问题所在,但必须先解决第三个问题,然后再进行操作。

我也遇到过这样的情况,当 Linux 建议下载最新更新时。在关闭弹出窗口之前,我无法连接。 - fflores

6

我遇到了这个错误,发现我的SSH端口(非标准端口号)没有被配置服务器防火墙列入白名单。


5

我将这里发布的内容翻译一下,因为它对我有用。在没有更改任何设置的情况下(据我所知),我无法再使用以下命令访问我的AWS EC2实例:ssh -i /path/to/key/key_name.pem admin@ecx-x-x-xxx-xx.eu-west-2.compute.amazonaws.com

最后发现我需要添加一个入站SSH流量规则,AWS在此处进行了解释。对于端口范围22,我添加了0.0.0.0/0,这允许所有IPv4地址使用SSH访问实例。

请注意,使实例对所有IPv4地址都可访问是一种安全风险;虽然在测试环境中可以短时间接受,但您可能需要一个更长久的解决方案。


5

这是由于防火墙连接问题导致的。 请从您的托管网站重置防火墙连接。

这样就可以开始工作了。

重新连接到服务器后,将此添加到您的 (ufw) 安全中。

sudo ufw allow 22/tcp

3

如果您在公共网络上,防火墙将默认阻止所有传入连接。请检查您的防火墙设置或使用私有网络进行SSL(安全套接层)。


2
可能性是,您的服务器/系统上可能未启用SSH。
请检查sudo systemctl status ssh是否处于活动状态。
如果它没有激活,请尝试使用以下命令进行安装
sudo apt update sudo apt install openssh-server 现在,请尝试使用以下命令访问服务器/系统
ssh username@ip_address

1
这个失败可能有很多原因。一些原因已经列出来了。我遇到了同样的问题,很难找到失败的根本原因。
我建议您检查ssh_config文件中的shh会话超时时间。尝试增加会话超时时间,看看是否再次失败。

1

如果可能的话,请尝试连接VPN,这可能是我遇到问题的原因。 提示:如果您正在使用EC2机器,请尝试重新启动它。这在前几天对我有用 :)


1
我在尝试从我的Mac ssh到本地nextcloud服务器时遇到了这个问题。第一次ssh连接没有问题,但如果我尝试有多个并发连接,它就会挂起直到超时。请注意,我是通过ssh连接到我的user@public-ip-address。我意识到第二个连接只有在我尝试在同一网络上ssh连接时才会失败,即在我的家庭网络中。此外,当我尝试使用“ssh user@server-domain”时,它成功了!最终的解决方法是使用“ssh user@server-domain”而不是“ssh user@public-ip”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接