17370845950

Linux怎么修改SSH端口 Linux更改远程登录端口号配置【安全】
修改SSH端口需五步:一、编辑/etc/ssh/sshd_config将Port 22改为新端口(如2222);二、防火墙放行新端口(firewalld或ufw);三、SELinux系统需用semanage添加ssh_port_t类型;四、重启sshd并验证监听与连接;五、确认无误后注释或删除Port 22行并重启服务。

如果您希望提升Linux服务器SSH服务的安全性,修改默认的22端口是常见且有效的基础防护措施。以下是修改SSH端口的具体操作步骤:

一、编辑SSH服务配置文件

SSH服务的端口设置由sshd_config文件控制,需通过文本编辑器修改该文件中的Port指令,以指定新的监听端口号。

1、使用root权限打开SSH配置文件:sudo nano /etc/ssh/sshd_config

2、在文件中查找包含Port 22的行(可能被注释或未注释)

3、将该行修改为所需端口号,例如改为Port 2222;若原行被注释(以#开头),需先删除#号

4、保存并退出编辑器(nano中按Ctrl+O回车保存,Ctrl+X退出)

二、配置防火墙

放行新端口

系统防火墙(如firewalld或ufw)默认仅允许22端口通信,更换端口后必须显式添加新端口规则,否则连接将被拒绝。

1、若使用firewalld:执行sudo firewall-cmd --permanent --add-port=2222/tcp

2、重新加载firewalld配置:sudo firewall-cmd --reload

3、若使用ufw:执行sudo ufw allow 2222/tcp

4、确认规则已生效:sudo ufw status verbose

三、SELinux环境下的端口上下文调整

在启用SELinux的系统(如CentOS/RHEL)中,新端口需被标记为ssh_port_t类型,否则sshd进程无法绑定该端口。

1、检查当前SELinux状态:sestatus

2、若SELinux处于enforcing模式,执行:sudo semanage port -a -t ssh_port_t -p tcp 2222

3、验证端口类型是否添加成功:sudo semanage port -l | grep ssh

四、重启SSH服务并验证监听状态

配置更新后必须重启sshd服务使新端口生效,并确认服务确实在新端口上监听,避免因配置错误导致失连。

1、重启SSH服务:sudo systemctl restart sshd

2、检查监听端口:sudo ss -tlnp | grep :2222

3、在另一终端尝试连接新端口:ssh -p 2222 username@server_ip

4、确认连接成功后,再考虑禁用22端口(可选)

五、禁用默认22端口(可选强化步骤)

在确认新端口稳定可用后,可移除对22端口的监听,进一步缩小攻击面。

1、再次编辑/etc/ssh/sshd_config

2、找到Port 22行,将其整行删除或在行首添加#注释

3、保存文件并重启服务:sudo systemctl restart sshd

4、检查22端口是否不再监听:sudo ss -tln | grep :22(应无输出)