为什么要联动修改
把 SSH 从默认端口改成其他端口,需要同时处理三处:sshd_config 里的端口设置、防火墙放行规则、SELinux 的端口标签。此外监控、配置管理与备份脚本都要同步更新。顺序上应先放行新端口、再改服务配置、最后验证登录,全程保留一条已登录会话用于回滚。
基本信息
| 配置文件 | /etc/ssh/sshd_config 或 sshd_config.d/ |
|---|---|
| 配置项 | Port 2222 |
| 防火墙 | firewall-cmd 放行新端口 |
| SELinux | semanage 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 | 新端口处于监听 |
| 实际登录 | 新开终端用新端口登录 | 登录成功后再关旧会话 |
同步更新清单
- 监控采集与告警探测的目标端口
- 配置管理与自动化脚本里的连接参数
- 堡垒机与应用发布通道的跳转配置
- 备份脚本与巡检任务的连接方式
- 变更记录与运维文档中的端口说明
顺序不能颠倒:先改服务配置再放行端口,会让当前会话断开后无法重连;确认新端口能登录成功,再决定是否长期保留旧端口。