登录
首页 >  文章 >  linux

Linux怎么修改SSH默认端口 Linux远程连接安全优化指南

时间:2026-05-24 16:15:13 335浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《Linux怎么修改SSH默认端口 Linux远程连接安全优化指南》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

改SSH端口需先保留Port 22,新增如Port 2222,验证端口空闲、防火墙放行及SELinux上下文后,再平滑重启sshd并更新脚本与云安全组规则。

Linux怎么修改SSH默认端口 Linux远程连接安全优化指南

改 SSH 端口本身不能防爆破,但能大幅降低被自动化扫描工具盯上的概率;真正锁死入口的,是后续的密钥登录 + Fail2ban 组合。只改端口不加固,等于把门牌号换了,但门还是虚掩着。

怎么安全地改 sshd_config 里的 Port 配置

别一上来就删掉 Port 22。直接注释或删除它,等于在没确认新路通不通时就拆了旧桥——你大概率会把自己锁在外面。

  • 打开配置文件:sudo nano /etc/ssh/sshd_config
  • 找到 #Port 22 行,取消注释,改成 Port 22(确保它还在)
  • 另起一行,加一条新端口,比如 Port 2222(端口号必须在 1024–65535 之间,且未被占用)
  • 保存退出后,不要重启服务,先做下一步验证

为什么 ssh -p 2222 连不上?先查这三处

连不上不是配置写错了,大概率卡在中间某个环节。按顺序快速过一遍:

  • 检查端口是否空闲:sudo ss -tuln | grep ':2222' —— 如果有输出,说明已被其他进程占了
  • 确认防火墙放行:sudo firewall-cmd --list-ports(firewalld)或 sudo ufw status(UFW),看 2222/tcp 是否在列表里
  • 查 SELinux 限制(仅 CentOS/RHEL):semanage port -l | grep ssh,如果新端口不在输出中,得补一句:sudo semanage port -a -t ssh_port_t -p tcp 2222

systemctl restart sshd 后连接断开?这是正常现象,但可避免

OpenSSH 默认支持平滑重启,即旧连接不断,新连接走新配置。但前提是:你没动 ListenAddress、没禁用 UsePrivilegeSeparation、也没触发 SELinux 拒绝绑定。

  • 重启前,始终保留一个已登录的终端窗口(别关)
  • 重启命令执行后,立刻在另一个终端试:ssh -p 2222 user@localhost(本机测试最快)
  • 如果失败,立刻回退:sudo nano /etc/ssh/sshd_configPort 2222 行删掉或注释,再 sudo systemctl restart sshd
  • 若日志里出现 bind: Permission denied,基本就是 SELinux 或端口被占

改完端口后最常被忽略的两个落地动作

很多人改完就以为结束了,结果发现 scprsync over ssh、CI 脚本全连不上,或者某天发现服务器突然失联——问题就出在这两步没做:

  • 所有依赖 SSH 的自动化脚本、部署工具、定时任务,都得显式加上 -p 2222 参数,或改对应配置里的 Port 字段
  • 云厂商控制台(如阿里云、腾讯云、AWS)的安全组规则,必须手动添加新端口入方向规则;光改系统防火墙没用

端口只是入口标识,真正决定谁能进来、谁会被拦下的,是 sshd_config 里的 PasswordAuthenticationAllowUsers 和防火墙策略。改完端口马上关掉密码登录,否则等于白改。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>