首页/系统/信创系统运维速查/修改 SSH 端口与联动配置
安全加固65 条

修改 SSH 端口与联动配置

改 SSH 端口不止改 sshd_config:防火墙放行、SELinux 端口标签、监控与自动化同步都要动,缺一项就会出现改完连不上。

信创系统运维速查系统更新于 2026-10-13

为什么要联动修改

把 SSH 从默认端口改成其他端口,需要同时处理三处:sshd_config 里的端口设置、防火墙放行规则、SELinux 的端口标签。此外监控、配置管理与备份脚本都要同步更新。顺序上应先放行新端口、再改服务配置、最后验证登录,全程保留一条已登录会话用于回滚。

基本信息

配置文件/etc/ssh/sshd_config 或 sshd_config.d/
配置项Port 2222
防火墙firewall-cmd 放行新端口
SELinuxsemanage port 添加 ssh_port_t 标签
生效方式sshd -t 校验后 reload

典型使用场景

  • 安全基线要求避免使用默认端口减少扫描
  • 多个服务共用主机时需要区分管理入口
  • 前置设备或安全策略限定了可用端口范围
  • 临时排障时切到备用端口
  • 迁移到新主机时统一管理端口规划

联动修改步骤

联动修改步骤
# 1) 先放行新端口,避免改完服务后无法连接
firewall-cmd --permanent --add-port=2222/tcp && firewall-cmd --reload
# 2) SELinux 为端口打上 ssh 标签
semanage port -a -t ssh_port_t -p tcp 2222    # 已存在该记录时改用 -m 修改
semanage port -l | grep ssh_port_t            # 确认标签已生效
# 3) 修改端口配置(保留旧端口过渡更稳)
# /etc/ssh/sshd_config 中:Port 22 与 Port 2222 同时存在
sshd -t && systemctl reload sshd              # 先验语法再重载
ss -tlnp | grep -E ':22|:2222'               # 确认监听情况

变更检查项

检查项确认方式通过标准
防火墙规则firewall-cmd --query-port新端口返回 yes
SELinux 标签semanage port -l能看到新端口与 ssh_port_t
sshd 语法sshd -t无输出即通过
监听状态ss -tlnp新端口处于监听
实际登录新开终端用新端口登录登录成功后再关旧会话

同步更新清单

  • 监控采集与告警探测的目标端口
  • 配置管理与自动化脚本里的连接参数
  • 堡垒机与应用发布通道的跳转配置
  • 备份脚本与巡检任务的连接方式
  • 变更记录与运维文档中的端口说明
顺序不能颠倒:先改服务配置再放行端口,会让当前会话断开后无法重连;确认新端口能登录成功,再决定是否长期保留旧端口。

易错点

  • 漏改 SELinux 端口标签:enforcing 模式下服务无法监听或登录被拒,审计日志出现拒绝记录
  • 只改本机防火墙:上游安全组与硬件策略也要同步,否则新端口依旧不可达
  • 改完不做语法校验就重启:配置写错会导致 sshd 起不来,必须先 sshd -t 再 reload
  • 忘记同步自动化与监控:发布、备份、监控探测全部失联,变更前先列出依赖清单
  • 过早关闭旧端口:转移期同时保留两个端口更稳妥,确认无遗漏后再下线旧端口

数据来源与参考

  • man 5 sshd_config(Port)
  • man 8 semanage-port
  • 红帽安全指南(SSH 端口变更)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌