修改ssh默认端口可提升安全性,需编辑/etc/ssh/sshd_config更改port值,配置防火墙放行新端口,selinux启用时需添加端口类型,重启sshd并验证监听与连接,最后确认稳定后移除旧端口。

如果您希望增强Linux服务器的SSH远程连接安全性,修改默认的22端口是一种常见且有效的基础防护手段。以下是具体实施步骤:
一、修改SSH服务配置文件
SSH守护进程读取/etc/ssh/sshd_config文件以确定监听端口。需在此文件中更改Port指令值,使sshd在非标准端口上启动监听。
1、使用root权限打开SSH配置文件:sudo nano /etc/ssh/sshd_config。
2、查找包含#Port 22或Port 22的行。
3、取消该行注释(如存在#号),并将数字22替换为目标端口号,例如Port 2222。
4、保存并退出编辑器。
二、配置防火墙放行新端口
系统防火墙可能阻止除22以外的端口入站连接,必须显式允许新SSH端口通过,否则连接将被拒绝。
1、若使用ufw,执行:sudo ufw allow 2222/tcp(将2222替换为实际选用的端口号)。
2、若使用firewalld,执行:sudo firewall-cmd --permanent --add-port=2222/tcp,随后运行sudo firewall-cmd --reload。
3、若使用iptables,执行:sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT,并保存规则(如适用)。
三、禁用SELinux端口限制(如启用SELinux)
SELinux默认仅允许sshd绑定到特定端口类型(如ssh_port_t)。若新端口未标记为合法SSH端口,sshd将无法启动。
1、检查SELinux状态:sestatus;若为enabled,继续操作。
2、查询当前SSH端口上下文:sudo semanage port -l | grep ssh。
3、为新端口添加SSH端口类型:sudo semanage port -a -t ssh_port_t -p tcp 2222(将2222替换为实际端口号)。
四、重启SSH服务并验证监听状态
配置变更后必须重启sshd服务,使其重新加载配置并绑定至新端口。同时需确认服务已成功监听,避免锁死远程访问。
1、重启SSH服务:sudo systemctl restart sshd(Debian/Ubuntu)或sudo systemctl restart sshd.service(RHEL/CentOS)。
2、检查监听端口:sudo ss -tlnp | grep :2222(将2222替换为实际端口号),确认输出中包含sshd进程。
3、在另一终端窗口测试连接:ssh -p 2222 username@server_ip,确保新端口可正常建立会话。
五、临时保留22端口直至新连接验证完成
为防止配置错误导致完全失连,应在确认新端口连接稳定后,再移除旧端口监听,而非立即禁用22端口。
1、在sshd_config中保留原Port 22行,同时添加新Port行,例如:Port 22\nPort 2222。
2、重启sshd服务,同时监听两个端口。
3、从外部成功登录2222端口后,再注释或删除Port 22行,并再次重启sshd。










