ssh跳过一些 PAM鉴权
ssh跳过一些 PAM鉴权
🧩 什么是 PAM?
PAM(Pluggable Authentication Modules)是 Linux 中一个可插拔的认证框架,它允许系统管理员灵活地配置用户认证机制。
在 SSH 登录过程中,PAM 是其中一个可选的认证机制。如果启用了 PAM,SSH 登录时就会调用 /etc/pam.d/sshd 文件中配置的模块进行一系列检查,比如:
- 密码复杂度验证
 - 是否允许特定用户或用户组登录
 - 是否启用双因子认证
 - 登录失败次数限制(如 
pam_tally2或pam_faillock) - SELinux/安全策略限制等
 
🛠️ SSH 配置文件中 PAM 相关项
在 /etc/ssh/sshd_config 中有一项:
1  | UsePAM yes  | 
含义如下:
yes:SSH 登录会调用 PAM 模块/etc/pam.d/sshd,应用一系列策略检查。no:不使用 PAM,跳过这些策略,可能只依赖sshd_config中的其它登录控制项(如AllowUsers、PasswordAuthentication等)来决定是否允许登录。
🧨 注意事项
把 UsePAM 改成 no 虽然能跳过一些 PAM 限制,但也可能造成:
- 绕过安全限制,如密码尝试次数限制、防暴力破解等;
 - 某些登录验证机制失效,如使用 LDAP、指纹识别、MFA 等基于 PAM 的认证方法。
 
✅ 示例场景
你遇到过一些限制登录的问题,可能就是 PAM 模块(比如 pam_access.so)限制了用户登录。
1  | # /etc/pam.d/sshd 示例片段  | 
对应的 /etc/security/access.conf 可能配置了:
1  | -:testuser:ALL  | 
这样就会拒绝用户 testuser 的 SSH 登录。
若此时你把 UsePAM no,SSH 就不会再执行上面的 pam_access.so 检查了,用户就能绕过登录限制。
🔐 总结
| 项 | 含义 | 
|---|---|
UsePAM yes | 调用/etc/pam.d/sshd中的模块,执行多种安全检查 | 
UsePAM no | 不调用 PAM,简单认证流程,登录限制会变少 | 
是否启用 PAM 取决于你对安全性和控制能力的需求。需要安全策略就启用,想简化登录就关闭。
是否需要我帮你审查一下 /etc/pam.d/sshd 里面有哪些模块可能影响登录?
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
 Comment



