如何在 Linux 中更改 SSH 端口

默认情况下,已知 SSH 协议会侦听端口 22。虽然完全可以,但从安全角度来看,建议将默认端口更改为另一个端口。 这极大地降低了黑客使用 SSH 发起自动暴力攻击的风险。 在本指南中,我们将演示如何在 Linux 中将默认 SSH 端口更改为其他端口。

先决条件

开始时,请确保您拥有 Linux 服务器的实例。 对于本指南,我们使用的是 Ubuntu 20.04 服务器。

确保您还有一个 SSH 客户端(例如 Putty)甚至是客户端 Linux 系统,以使用新端口设置与服务器的连接。

第 1 步:检查 SSH 是否在默认端口上运行

首先,我们需要验证 SSH 服务是否在服务器上运行。 为此,请运行以下命令:

$ sudo systemctl status ssh

输出是确认 SSH 服务处于活动状态。 让我们更进一步,确保它在默认端口上运行。 运行以下 netstat 命令。

$ sudo netstat -pnltu | grep 22

第 2 步:选择端口并配置 SSH

您可能知道,TCP 端口的范围是从端口 0 到 65535。但是,从 0 到 1024 的端口被视为指定用于特殊服务的特权端口,例如 HTTP(端口 80)、FTP(21)和 SMTP(25)到仅举几例。

为避免与特权端口发生任何冲突,我们将选择一个高于端口 1024 的端口。在此 example,我们选择将默认端口更改为端口 5466。要启用此功能,我们将修改 /etc/ssh/sshd_config SSH 配置文件。

$ sudo vim /etc/ssh/sshd_config

找到以 #端口 22 如图所示。

取消注释并指定端口号。

此后,保存所做的更改并退出配置文件。 要使更改持续存在,请重新启动 SSH 服务。

$ sudo systemctl restart ssh

要验证 SSH 是否正在侦听新配置的端口,请运行:

$ sudo netstat -pnltu | grep 5466

第 3 步:在 UFW 防火墙上允许新的 SSH 端口

如果启用了 UFW 防火墙,请务必打开配置的端口,如图所示。

$ sudo ufw allow 5466/tcp
$ sudo ufw reload

对于 CentOS / RHEL,打开端口如下。

$ sudo firewall-cmd --add-port=5466/tcp --add-zone=public --permanent
$ sudo firewall-cmd --reload

此时,您可以远程访问服务器,这就是我们稍后将演示的内容。

第 4 步:使用新端口登录

要登录服务器,请转到 SSH 客户端。 使用指定端口号 -p 选项后跟 SSH 端口和远程服务器身份。

$ ssh -p 5466 [email protected]

如您所料,系统将提示您提供密码,之后您将被授予访问远程服务器的权限。

结论

这将这个话题带到了一个 close. 为获得更好的安全性,请考虑将 SSH 无密码身份验证与 SSH 公钥/私钥对一起使用。