如何配置PermitEmptyPasswords从源头切断空密码账户空门漏洞

小伟吖_7142

小伟吖_7142

2026-06-01

769人浏览

原创

最基础最关键的一步是将 PermitEmptyPasswords no 写入 SSH 配置。空密码账户形同未锁之门,攻击者只需猜中用户名即可直接登录;需检查当前配置、修改并重启 sshd 服务,并配套禁用密码登录、禁止 root 登录、限制用户范围及验证生效。

如何配置permitemptypasswords从源头切断空密码账户空门漏洞

直接把 PermitEmptyPasswords no 写进 SSH 配置,是堵住空密码登录漏洞最基础也最关键的一步。空密码账户相当于给服务器留了一扇没锁的门,攻击者只要猜中用户名(比如常见的 admin、test,甚至邮箱格式的账号),就能直接进门——这比暴力破解密码还快。

确认当前配置状态

先检查系统是否已启用空密码登录,避免盲目修改:

  • 运行命令:sudo grep -i "PermitEmptyPasswords" /etc/ssh/sshd_config
  • 如果输出为空,说明该选项被注释或未设置,默认行为因 OpenSSH 版本而异(较新版本默认为 no,但不可依赖)
  • 如果输出类似 #PermitEmptyPasswords yes 或 PermitEmptyPasswords yes,就明确存在风险

修改sshd_config并生效

编辑主配置文件,强制禁止空密码认证:

word报告自动生成神器
word报告自动生成神器

Word报告自动生成神器。自动生成专业Word文档报告,支持模板填充、目录生成、表格/图表插入、页眉页脚、多级标题、样式主题、批量邮件合并。当用户需要生成Word报告、创建合同文档、批量生成通知/证书、填充Word模板、制作商业计划书时触发。

下载
  • 用 root 或 sudo 权限打开:sudo nano /etc/ssh/sshd_config
  • 查找 PermitEmptyPasswords 行;若被注释(开头有 #),删掉 #;若不存在,手动添加一行:
    PermitEmptyPasswords no
  • 保存退出后,**必须重启服务**:sudo systemctl restart sshd
  • 重启前建议验证语法:sudo sshd -t,返回无错误再重启,防止配置错误导致连接中断

配套加固不能少

单设 PermitEmptyPasswords no 能防空密码,但无法抵御弱密码、暴力爆破或 root 直接登录等风险,需同步收紧:

  • 禁用密码登录(推荐):设 PasswordAuthentication no,只允许密钥登录,从根源移除密码攻击面
  • 禁止 root 远程登录:设 PermitRootLogin no,日常用普通用户 + sudo 管理
  • 限制可登录用户:用 AllowUsers 或 AllowGroups 明确授权范围,例如:AllowUsers deploy ops
  • 检查账户实际密码状态:运行 sudo awk -F: '($2 == "" || $2 == "*") {print $1}' /etc/shadow,列出所有无密码或锁定账户,针对性处理

验证是否真正生效

改完别只信配置文件,要实测效果:

  • 新建一个测试用户:sudo adduser --disabled-password testnull(不设密码)
  • 尝试 SSH 登录:ssh testnull@your-server-ip
  • 若连接立即被拒绝,或提示 Permission denied (publickey)(在禁用密码前提下),说明空密码路径已被切断
  • 也可用 ssh -o PubkeyAuthentication=no testnull@ip 强制走密码流程,应返回认证失败

相关专题

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

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

2025.10.13

5085

12

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

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

2025.11.04

435

21

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

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

2026.10.28

40

16

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

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

2026.10.28

20

15

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

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

2026.10.28

40

10

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

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

2026.10.22

140

11

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

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

2026.10.22

80

10

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

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

2026.10.22

80

15

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

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

2026.10.22

40

10

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CLion 远程开发实战
CLion 远程开发实战

共0课时 | 0人学习

马士兵spring视频教程
马士兵spring视频教程

共25课时 | 9.9万人学习