公司Linux服务器(尤其是MySQL数据库服务器)出于安全管控,明确禁止直连22端口,要求所有SSH登录必须使用自定义端口;但22端口又不能修改或关闭,需保留给堡垒机、安全审计等核心服务使用。
一边是安全策略的硬性要求,一边是运维登录的实际需求,此时SSH多端口配置就成了最优解,既保留22端口供堡垒机等专用,又新增自定义端口供运维人员正常登录,兼顾安全与效率,无需妥协。
一、先明确核心需求
在动手前,先理清3个关键前提,避免做无用功:
服务器环境:Linux系统(本文适配CentOS、Ubuntu、openEuler等主流发行版,差异处会单独标注),且已安装SSH服务(默认大多已安装)
端口要求:保留22端口(不修改、不关闭),新增1个或多个自定义SSH端口(推荐10000-65535之间,避开3306、8080等常用服务端口,防止冲突)
权限要求:必须使用root用户或sudo权限操作(修改SSH配置文件需要最高权限)
补充说明:为什么不直接修改22端口?因为公司安全策略中,22端口通常会绑定堡垒机的审计、管控规则,修改后会导致堡垒机无法正常对接,触发安全告警,甚至影响整个服务器集群的安全管控。
二、SSH多端口配置全流程
SSH服务本身支持多端口监听,只需在配置文件中添加多个Port指令,再配置防火墙放行新端口,最后重启服务即可,全程不影响原有22端口的正常使用。
1. 备份SSH配置文件
修改配置前,一定要先备份原配置文件,防止配置错误导致SSH连接失效,无法远程登录服务器(血的教训,新手必看)。
执行备份命令(所有发行版通用):
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak备份完成后,即使配置出错,也能通过备份文件恢复。
2. 编辑SSH配置文件,添加多端口
打开SSH核心配置文件sshd_config,执行编辑命令,例如在CentOS、RHEL、openEuler上使用vim:
vim /etc/ssh/sshd_config在配置文件中找到Port 22这一行(默认存在,若被注释则删除前面的#)
然后在其下方添加自定义端口,格式为Port 自定义端口,示例如下(新增2222端口,可根据需求替换):
# 保留原有22端口(供堡垒机使用,不可删除)Port 22# 新增自定义SSH端口(供运维登录,可添加多个)Port 2222注意事项:
每个端口单独一行,可添加多个自定义端口(比如同时添加2222、2223,满足不同运维人员的权限区分)
自定义端口需选择1024-65535之间的未占用端口,可提前用命令检查端口是否占用:ss -antp| grep 自定义端口(无输出则未占用)
不要删除或注释Port 22,否则会导致堡垒机无法连接,触发安全风险
3. 重启SSH服务,生效配置
所有配置完成后,重启SSH服务,使多端口监听生效(不同发行版命令略有差异):
注意事项:
如果开启了selinux,则需要将其改为disabled,否则无法开启多端口(本地我就需要关闭)
处理后再重启sshd服务后正常
如果开启了防火墙,也需要放行自定义的端口(例如本例的2222端口)
4. 测试连接,确认可用
配置完成后,一定要测试新端口的连接,避免后续无法登录:
[root@c7 ~]# ssh 192.168.56.102 The authenticity of host '192.168.56.102 (192.168.56.102)' can't be established.ECDSA key fingerprint is SHA256:NkGBgO5NgJGsw3bLUCVpwZ6lz7+eWTQMzm/2KsQnNPs.ECDSA key fingerprint is MD5:95:ca:10:fb:cd:ec:eb:14:2d:30:19:ab:45:75:8d:01.Are you sure you want to continue connecting (yes/no)? ye^C[root@c7 ~]# ssh 192.168.56.102 -p 2222The authenticity of host '[192.168.56.102]:2222 ([192.168.56.102]:2222)' can't be established.ECDSA key fingerprint is SHA256:NkGBgO5NgJGsw3bLUCVpwZ6lz7+eWTQMzm/2KsQnNPs.ECDSA key fingerprint is MD5:95:ca:10:fb:cd:ec:eb:14:2d:30:19:ab:45:75:8d:01.Are you sure you want to continue connecting (yes/no)?三、 总结
企业Linux MySQL服务器的SSH多端口配置,核心是不改动原有22端口,新增自定义端口,既满足公司安全策略对22端口的管控要求,又能保障运维人员正常远程登录,兼顾安全与效率。
整个配置流程并不复杂,核心步骤就是备份→编辑配置→放行端口→处理安全模块→重启测试
最后提醒:MySQL服务器作为核心数据存储节点,除了配置多端口,还需配合公司安全策略,做好密钥登录、IP限制、日志审计等加固措施,全方位保障服务器和数据安全。
如果操作过程中遇到其他异常,欢迎在评论区留言,一起交流解决~
另外,补充一句,数据库运维平台想要源码进行二开的可以继续联系我试用哦。
实战|我用AI打造的全能数据库管理平台,DBA日常运维一键搞定(可领源码)