默认情况下,SSH侦听端口22。更改默认SSH端口可降低自动攻击的风险,从而为服务器增加一层安全保护。

将防火墙配置为仅允许特定主机访问端口22,而不是更改端口更加简单和安全。

本教程介绍了如何在Linux中更改默认的SSH端口。我们还将向您展示如何配置防火墙以允许访问新的SSH端口。

更改SSH端口

请按照以下步骤更改Linux系统上的SSH端口:

1.选择一个新的端口号

在Linux中,低于1024的端口号保留用于众所周知的服务,并且只能由root绑定。尽管您可以将1-1024范围内的端口用于SSH服务,以避免将来出现端口分配问题,但建议选择1024以上的端口。

在此示例中,将SSH端口更改为5522,您可以选择任何喜欢的端口。

2.调整防火墙

更改SSH端口之前,首先,您需要调整防火墙以允许新SSH端口上的流量。

如果使用的是UFW,Ubuntu的默认防火墙配置工具将运行以下命令以打开新的SSH端口:

sudo ufw allow 5522/tcp

在CentOS中,默认的防火墙管理工具是FirewallD。要打开新端口,请运行以下命令:

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

CentOS用户还需要调整SELinux规则以允许新的SSH端口:

sudo semanage port -a -t ssh_port_t -p tcp 5522

如果您将iptables用作防火墙,则以下命令将打开新的SSH端口:

sudo iptables -A INPUT -p tcp --dport 5522 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

3.配置SSH

使用文本编辑器打开SSH配置文件/etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

搜索以Port 22开头的行。在大多数情况下,该行以散列#开头。删除哈希#,然后输入将使用的新SSH端口号,而不是标准SSH端口22。

/ etc / ssh / sshd_config

Port 5522

修改SSH配置文件时要格外小心。错误的配置可能会导致SSH服务无法启动。

完成后,保存文件并重新启动SSH服务以应用更改:

sudo systemctl restart ssh

在CentOS中,ssh服务被命名为sshd

sudo systemctl restart sshd

要验证新端口5522上的SSH守护进程正在侦听,请输入:

ss -an | grep 5522

输出应如下所示:

tcp   LISTEN      0        128            0.0.0.0:5522           0.0.0.0:*
tcp   ESTAB       0        0      192.168.121.108:5522     192.168.121.1:57638
tcp   LISTEN      0        128               [::]:5522              [::]:*

使用新的SSH端口

现在,您在登录远程计算机时更改了SSH端口,则需要指定新端口。

使用-p <port_number>选项指定端口:

ssh -p 5522 username@remote_host_or_ip

结论

在本教程中,您学习了如何更改Linux服务器上的SSH端口。您可能还需要设置基于 SSH密钥的身份验证,然后不输入密码即可连接到Linux服务器。

如果您经常连接到多个系统,则可以通过在 SSH配置文件中定义所有连接来简化工作流程。

如果您有任何问题或反馈,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持