默认情况下,SSH 侦听端口 22。更改默认 SSH 端口可以降低自动攻击的风险,从而为您的服务器增加了额外的安全层。
本教程介绍如何更改 Linux 中的默认 SSH 端口。我们还将向您展示如何配置防火墙以允许访问新的 SSH 端口。
保护服务器免受攻击的最佳方法是将防火墙配置为仅允许受信任的主机访问端口 22,并设置一个基于 SSH 密钥的身份验证
.
更改 SSH 端口#
更改映像的 SSH 端口是一项简单的任务。您所需要做的就是编辑 SSH 配置文件并重新启动服务。
以下部分介绍如何更改 Linux 系统上的 SSH 端口。
1. 选择新的端口号#
在Linux中,1024以下的端口号是为众所周知的服务保留的,只能由root绑定。虽然您可以使用 1-1024 范围内的端口作为 SSH 服务以避免将来出现端口分配问题,但建议选择 1024 以上的端口。
本例中将 SSH 端口更改为 5522,您可以选择任何您想要的端口。
2. 调整防火墙#
在更改 SSH 端口之前,您需要调整防火墙以允许新 SSH 端口上的流量。
如果您使用的是 Ubuntu 默认防火墙配置工具 UFW,请运行以下命令打开新的 SSH 端口:
sudo ufw allow 5522/tcp
在CentOS中,默认的防火墙管理工具是FirewallD。要打开新端口,请运行:
sudo firewall-cmd --permanent --zone=public --add-port=5522/tcp
sudo firewall-cmd --reload
CentOS用户还需要调整SELinux规则:
sudo semanage port -a -t ssh_port_t -p tcp 5522
如果您使用 iptables 作为防火墙,要打开新端口,请运行:
sudo iptables -A INPUT -p tcp --dport 5522 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
3. 配置SSH#
打开SSH配置文件/etc/ssh/sshd_config
使用您的文本编辑器:
sudo vim /etc/ssh/sshd_config
Search对于以以下开头的行Port 22
。在大多数情况下,这一行以哈希开头 (#
) 特点。删除哈希值#
并输入新的 SSH 端口号:
/etc/ssh/sshd_config
修改 SSH 配置文件时要格外小心。错误的配置可能会导致SSH服务无法启动。
完成后,保存文件并重新启动 SSH 服务以应用更改:
sudo systemctl restart ssh
在 CentOS 中,ssh 服务被命名为sshd
:
sudo systemctl restart sshd
验证 SSH 守护进程是否为倾听在新端口 5522 上,键入:
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>
option:
ssh -p 5522 username@remote_host_or_ip
如果您经常连接到多个系统,则可以通过在中定义所有连接来简化工作流程SSH 配置文件
.
结论#
在本教程中,您学习了如何更改 Linux 服务器上的 SSH 端口。您还应该设置一个基于 SSH 密钥的身份验证无需输入密码即可连接到您的 Linux 服务器。
如果您有任何疑问,请随时发表评论。