在 Linux 系统中,默认情况下SSH端口一般为22。更改默认 SSH 端口可以降低自动攻击的风险,从而为服务器增加额外的安全性。为了加强服务器安装行,我们可以将防火墙配置为仅允许从特定主机访问端口22,而不是更改端口更加简单和安全。下面看下如何在Linux 系统中修改SSH端口。
更改SSH端口
在你的Linux服务器上通过以下步骤可以实现修改SSH默认端口的。
Step 1、选择一个新端口
在Linux中,低于1024的端口号保留用于众所周知的服务,并且只能由root绑定。 虽然您可以使用1-1024范围内的端口进行SSH服务,以避免将来出现端口分配问题,但建议选择1024以上的端口。
在此示例中,将SSH端口更改为2200,您可以选择任何您喜欢的端口。
Step 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
Step 3 、配置SSH
使用文本编辑器打开SSH配置文件/etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
搜索以端口22开头的行。在大多数情况下,此行将以井号#
开头。 删除#
并输入将用于代替标准SSH端口22的新SSH端口号。
Port 2200
修改SSH配置文件时要格外小心。 不正确的配置可能导致SSH服务无法启动。
完成后保存文件并重新启动SSH服务以应用更改:
sudo systemctl restart ssh
在CentOS中,ssh服务名为sshd:
sudo systemctl restart sshd
要验证SSH守护程序是否正在侦听新端口2200,请键入:
ss -an | grep 2200
输出内容类似如下:
tcp LISTEN 0 128 0.0.0.0:2200 0.0.0.0:*
tcp ESTAB 0 0 192.168.121.108:2200 192.168.121.1:57638
tcp LISTEN 0 128 [::]:2200 [::]:*
使用新的SSH端口
现在您在登录远程计算机时更改了SSH端口,您需要指定新端口。
使用-p 选项指定端口:
ssh -p 2200 username@remote_host_or_ip
写在最后
在本教程中,您学习了如何更改Linux服务器上的SSH端口。 您可能还需要设置基于SSH密钥的身份验证,并在不输入密码的情况下连接到Linux服务器。
如果您经常连接到多个系统,则可以通过在SSH配置文件中定义所有连接来简化工作流程。