如何修改SSH默认端口并彻底禁用Root账户远程直连安全教程

大晨酱_3070

大晨酱_3070

2026-05-31

516人浏览

原创

先留后路:改端口前务必保留Port 22,再新增自定义端口(如2222),确保端口在1024–65535范围内且未被占用;验证端口空闲、防火墙放行、SELinux授权后,用ssh -p 2222 localhost测试成功,再注释Port 22并重启sshd;禁用PermitRootLogin前须创建带sudo权限的普通用户并验证提权;云服务器需同步开放安全组规则,所有SSH相关工具须显式指定新端口。

如何修改ssh默认端口并彻底禁用root账户远程直连安全教程

先留后路:改端口前务必保留22端口

别一上来就注释或删掉Port 22。这是最常导致“被锁门外”的操作——新端口若因防火墙、SELinux或配置冲突不通,旧通道又已关闭,你就彻底失联了。

正确做法是:打开/etc/ssh/sshd_config,确保有这一行:
Port 22
再另起一行添加你选的新端口,例如:
Port 2222
端口号必须在1024–65535之间,且未被其他进程占用。

验证三连:端口空闲、防火墙放行、SELinux授权

保存配置后,不重启服务,先快速检查三项:

  • 查端口是否空闲:sudo ss -tuln | grep ':2222' —— 若有输出,说明已被占用,需换端口
  • 查防火墙规则:sudo ufw status(Ubuntu/Debian)或sudo firewall-cmd --list-ports(CentOS/RHEL),确认2222/tcp在允许列表中
  • 查SELinux上下文(仅RHEL/CentOS系):semanage port -l | grep ssh,若新端口不在输出里,执行:
    sudo semanage port -a -t ssh_port_t -p tcp 2222

平滑切换:测试成功后再停用22端口

用另一终端执行:ssh -p 2222 user@localhost,本机直连最快验证是否生效。成功后,再回到配置文件,把Port 22行注释掉(加#),保存并重启:sudo systemctl restart sshd。

重启时保持一个已登录的终端不关闭——这是最后的安全垫。如果新端口连不上,立刻回退修改配置,再重启即可恢复。

禁用Root直连:不止改配置,还要配权限和审计基础

编辑/etc/ssh/sshd_config,找到PermitRootLogin项,设为:
PermitRootLogin no

但切记:禁用前必须完成以下两件事,否则你会永久失去管理入口:

  • 创建普通用户并设强密码:adduser admin && passwd admin
  • 授予该用户sudo权限:usermod -aG sudo admin(Ubuntu/Debian)或usermod -aG wheel admin(CentOS/RHEL)

然后测试:ssh admin@your-server-ip -p 2222 → sudo su -,确认可提权且操作日志完整。

落地收尾:别漏掉云平台和自动化脚本

改完端口≠万事大吉。这两步90%的人会忽略,却直接导致后续故障:

  • 云服务器(阿里云、腾讯云、AWS等)必须在控制台安全组中手动添加入方向规则:允许TCP 2222(或你设的端口),仅开放给可信IP更佳
  • 所有依赖SSH的工具都要更新端口参数:CI/CD流水线、rsync命令、scp上传、定时备份脚本、监控探针……凡是含ssh、scp、rsync -e "ssh -p..."的地方,都得显式加上-p 2222

端口和root登录只是第一道门。真正守住系统的,是密钥认证 + Fail2ban + 登录白名单组合。改端口防的是扫雷,禁root防的是越权,二者合起来,才把门从虚掩变成带锁带哨的铁闸。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

5025

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

435

21

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

120

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

60

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

60

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

40

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习