Linux系统如何禁止用户SSH登录_LinuxSSH用户限制方案讲解

发布时间 - 2025-11-23 00:00:00    点击率:
禁止用户通过SSH登录可通过四种方式实现:1. 配置/etc/ssh/sshd_config使用DenyUsers或AllowUsers限制特定用户;2. 将用户shell设为/sbin/nologin阻止交互式登录;3. 利用PAM模块结合denied_users文件控制认证;4. 禁止root直接登录,提升安全性。修改后需重启sshd服务,并建议保留备用会话以防锁定。

如果需要禁止某些用户通过SSH登录Linux系统,可以通过多种方式实现,常见于安全加固或权限管理场景。核心思路是利用SSH服务配置和系统用户管理机制来限制访问。

1. 使用sshd_config限制用户或用户组

OpenSSH的主配置文件/etc/ssh/sshd_config支持通过AllowUsers、DenyUsers、AllowGroups、DenyGroups等指令控制登录权限。

禁止特定用户登录:

DenyUsers username1 username2

该配置会阻止username1和username2通过SSH登录,无论其属于哪个用户组。

仅允许指定用户登录:

AllowUsers admin user1

只有列出的用户才能登录,其他所有用户默认被拒绝。这种方式更安全,适合生产环境。

按用户组限制:

DenyGroups ssh_restricted

将不想让SSH登录的用户加入ssh_restricted组,即可统一禁用。

修改配置后必须重启SSH服务:

systemctl restart sshd

2. 修改用户Shell为/sbin/nologin

将用户的登录Shell设置为/sbin/nologin/usr/sbin/nologin,可阻止其交互式登录,但保留系统账户功能。

执行命令修改指定用户:

usermod -s /sbin/nologin username

若需恢复登录权限:

usermod -s /bin/bash username

此方法不影响该用户运行计划任务或被其他服务调用。

3. 结合PAM模块进行访问控制

Linux的PAM(Pluggable Authentication Modules)可增强SSH登录验证逻辑。

编辑PAM SSH配置文件:/etc/pam.d/sshd,添加:

auth required pam_listfile.so onerr=succeed item=user sense=deny file=/etc/ssh/denied_users

然后创建/etc/ssh/denied_users文件,每行写一个被禁止的用户名:

user1
test
backup

该配置表示:如果用户名出现在denied_users文件中,则拒绝认证。onerr=succeed表示当文件读取失败时仍允许登录,避免配置错误导致锁死。

4. 禁止root用户直接SSH登录(推荐)

出于安全考虑,应禁止root用户直接通过SSH登录。

编辑/etc/ssh/sshd_config

PermitRootLogin no

保存后重启sshd服务。如需管理员权限,建议普通用户登录后使用su或sudo。

基本上就这些常用方法。根据实际需求选择一种或组合使用,能有效控制SSH访问权限,提升系统安全性。修改任何SSH配置前建议保留一个活跃会话,防止误操作导致无法远程连接。


# linux  # 配置文件  # linux系统  # red  # bash  # ssh  # 重启  # 用户登录  # 出现在  # 设为  # 可以通过  # 想让  # 四种  # 可通过  # 如需 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python文本处理实践_日志清洗解析【指导】  JS碰撞运动实现方法详解  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Android利用动画实现背景逐渐变暗  如何用低价快速搭建高质量网站?  教学论文网站制作软件有哪些,写论文用什么软件 ?  高端建站如何打造兼具美学与转化的品牌官网?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  详解jQuery中的事件  phpredis提高消息队列的实时性方法(推荐)  如何在阿里云高效完成企业建站全流程?  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何在阿里云购买域名并搭建网站?  Windows Hello人脸识别突然无法使用  Laravel如何升级到最新版本?(升级指南和步骤)  JS经典正则表达式笔试题汇总  Swift开发中switch语句值绑定模式  html5的keygen标签为什么废弃_替代方案说明【解答】  如何确保FTP站点访问权限与数据传输安全?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何快速上传自定义模板至建站之星?  微信小程序 canvas开发实例及注意事项  5种Android数据存储方式汇总  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  JS弹性运动实现方法分析  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  Laravel如何配置任务调度?(Cron Job示例)  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  如何快速生成高效建站系统源代码?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  微信小程序 五星评分(包括半颗星评分)实例代码  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  php485函数参数是什么意思_php485各参数详细说明【介绍】  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Win11关机界面怎么改_Win11自定义关机画面设置【工具】