讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 系统中怎么使用 SSH 的 Match 块为不同用户定制安全规则

酷芳大大_4604

酷芳大大_4604

发布时间:2026-10-27 14:09:20

|

938人浏览过

|

来源于php中文网

原创

Match块通过条件匹配+精准覆盖为不同用户定制安全规则,支持User、Group、Address等条件组合,配合ForceCommand、ChrootDirectory等指令实现一人一策、上下文感知访问控制与SFTP隔离。

linux 系统中怎么使用 ssh 的 match 块为不同用户定制安全规则

Linux 系统中用 SSH 的 Match 块为不同用户定制安全规则,核心是“条件匹配 + 精准覆盖”。它不修改全局配置,而是在连接建立时,根据用户、组、IP 等条件动态启用一组专属参数。只要位置正确、逻辑清晰、权限闭环,就能实现一人一策,无需改 shell、不依赖 PAM 或外部脚本。

Match User:锁定单个或多个用户的操作边界

适用于审计员、只读监控账号、SFTP 专用账号等角色明确的用户。

  • 语法要求严格:必须写在 /etc/ssh/sshd_config 文件末尾,不能嵌套在其他 Match 块内;多个用户名用英文逗号分隔,如 Match User auditor1,auditor2,不支持通配符
  • 强制接管会话:配合 ForceCommand 可完全屏蔽用户原本的 shell 行为。例如让审计用户登录后自动进入只读日志界面:
    ForceCommand /usr/local/bin/audit-shell(该脚本只允许 journalctl -f、tail -f 等白名单命令)
  • 关闭逃逸通道:显式禁用所有可能被滥用的功能:
    AllowTcpForwarding no
    X11Forwarding no
    PermitTunnel no
    PermitTTY no(禁用交互终端,仅留命令执行能力)
  • 关键细节:用户在 /etc/passwd 中的登录 shell 必须保留为 /bin/bash 或 /bin/sh,不能直接设为 audit-shell,否则 ForceCommand 不生效

Match Group:按部门或职能批量管理权限

适合运维、开发、测试等按组划分的团队,避免重复配置每个用户。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 典型场景:开发组禁止端口转发和隧道,但允许交互式 shell;运维组则通过 ForceCommand 自动跳转到指定跳板机:
    Match Group dev_team<br>AllowTcpForwarding no<br>PermitTunnel no

    Match Group ops_team<br>ForceCommand /usr/local/bin/ops-access.sh
  • 脚本需轻量可靠:/usr/local/bin/ops-access.sh 应以 #!/bin/bash 开头,使用 exec ssh -o ProxyJump=... 实现无缝跳转,并确保无交互、不回退到本地 shell
  • 权限继承注意:Match Group 不影响用户主目录权限或 sudo 权限,这些仍需单独通过 /etc/sudoers 或文件系统 ACL 控制

Match Address + User:结合来源 IP 实现上下文感知访问

同一用户从不同网络登录,权限应不同——比如管理员在家用公网 IP 登录只能密钥+只读,但在公司内网可免二次认证并启用端口转发。

  • 顺序决定结果:规则自上而下匹配,首个完全满足的块生效。建议顺序为:具体 IP → 子网段 → 兜底公网规则。错误示例:Match Address 0.0.0.0/0 写在最前,会导致所有用户都走该规则
  • 组合条件更精准:可用 Match Address 192.168.10.0/24 User admin 表示“仅对来自该网段的 admin 用户启用宽松策略”,比单独 Match Address 或 Match User 更安全
  • 支持的参数有限:Match 块中只能设置运行时可覆盖的选项,如 PasswordAuthentication、MaxAuthTries、LoginGraceTime、ClientAliveInterval 等,不能改 Port 或 ListenAddress

搭配 ChrootDirectory 实现 SFTP 用户隔离

专用于纯文件传输账号,防止用户访问系统其他路径。

  • 基础结构:一个 Match User 块中必须同时包含三要素:
    ChrootDirectory /sftp/%u(路径必须由 root 拥有且不可写)
    ForceCommand internal-sftp(禁用 shell,只启 SFTP 子系统)
    AllowTcpForwarding no(防绕过)
  • 权限陷阱要避开:/sftp/username 目录必须属主 root、权限 755;其下的子目录(如 /sftp/username/upload)才可属用户、设 755 或 775。任何环节权限过宽都会导致 chroot 失败
  • 不要和 UsePAM 冲突:Match 块必须放在 UsePAM yes 之后,否则 sshd 启动报错;若已启用 PAM 认证,还需确认 /etc/pam.d/sshd 中未强制要求 home 目录可写

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

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

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

4985

2025.10.13

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

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

415

2025.11.04

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4250

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3593

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2833

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

6930

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6582

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3773

2023.07.20

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

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

100

2026.10.22

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn