如何修复 Manjaro Linux 中的 SSH 连接被拒绝错误
SSH(“Secure Shell”或“Secure Socket Shell”的缩写)使系统管理员能够在客户端和主机之间建立安全连接。 SSH 用于建立安全连接,无论网络是否安全。使用 SSH 的连接相当棘手,因此需要高度关注。如果您没有涵盖建立连接的所有方面,则在使用 SSH 连接计算机时可能会遇到“连接被拒绝”错误。
在这篇描述性文章中,我们列出了 SSH 中“连接被拒绝”错误的原因及其可能的修复方法。
Manjaro 中“连接被拒绝”错误的可能原因及其解决方案
您在 Manjaro Linux 中遇到连接拒绝错误的可能性有多种。在本节中,我们列出了这些错误以及相关的解决方案。
1 – SSH 服务不活动
您的 SSH 服务可能无法正常工作,导致连接中断。首先,借助下面编写的命令查找 SSH 服务的状态。
如果服务关闭,建议重新启动并启用 SSH 服务。下面提供的命令将帮助您重新启动、启用和检查 SSH 服务的状态:
$ sudo systemctl enable sshd.service
$ sudo systemctl status sshd.service
如果问题仍然存在,您可以联系您的托管提供商来解决问题。
2 – 未安装 SSH
您的系统上可能没有安装 OpenSSH(SSH 工具)。为了确保安装,请借助下面编写的命令检查 OpenSSH 的版本。
如果上述命令返回错误(在我们的例子中它返回连接被拒绝),则意味着您的服务器上缺少 OpenSSH 守护进程。要获取它,请执行下面提供的命令:
3 – 防火墙阻止 SSH 连接
如果 SSH 服务运行正常,但您仍然无法连接到 SSH 服务器,则防火墙可能阻止了您的 SSH 连接。尽管禁用防火墙规则可能会使您的系统面临安全风险,但您必须允许 SSH 通过防火墙。您可以借助下面提供的命令允许 SSH 通过防火墙。
注意:下面的输出显示已经为 SSH 服务添加了规则。
执行此操作后,建议借助下面编写的命令重新加载防火墙。
您可以检查防火墙的状态,以下命令显示防火墙允许端口 22 上的连接。
如果 SSH 服务器正在监听 22 以外的端口,那么您必须提及该端口号。例如,下面编写的命令将允许 SSH 服务器使用您选择的端口号。
4 – SSH 正在侦听错误的端口
每当发起连接请求时,都会使用默认端口 SSH(22)。连接被拒绝错误的原因之一是您可能更改了端口,但您正在尝试连接到默认端口。您可以通过访问/etc/ssh/sshd_config文件来检查SSH监听端口。例如,下面提供的命令将过滤(相对于端口)/etc/ssh/sshd_config 的内容。
注意:在我们的例子中,输出显示端口为 22。
此外,如果 SSH 端口从 22 更改,那么连接语法将如下所示。
注意:-p 标志用于在所需端口建立连接。据观察,如果 SSH 的默认端口更改为另一个端口,则必须指定该端口号。
5 – SSH 端口已关闭
每当尝试建立连接时,SSH 都会向特定端口发送请求。因此,要成功,需要打开 SSH 端口。由于 SSH 使用端口 22,因此 SSH 必须允许端口 22 上的所有传入连接。首先,使用以下命令检查端口 22 是否打开。
如果状态为正在侦听(如输出所示),则可以,但如果端口已关闭,则可以使用以下 iptables 命令打开端口 22。
您可能使用了错误的凭据,建议查找您要连接的服务器的 IP 地址。
准备好所有东西后,您可以使用下面编写的命令建立 ssh 连接,就像我们所做的那样。
注意:上述命令中的用户名是“adnan”,而 localhost 充当主机名。