服务器多因素认证怎么通过 PAM 模块将 SSH 登录绑定二次认证

冬宇小哥_1052

冬宇小哥_1052

2026-10-16

543人浏览

原创

服务器多因素认证需四环节严丝合缝:pam模块正确安装、用户独立生成并保护密钥文件、/etc/pam.d/sshd中精准添加auth规则、/etc/ssh/sshd_config启用usepam、challengeresponseauthentication及authenticationmethods组合;任一缺失则mfa不触发。

服务器多因素认证怎么通过 pam 模块将 ssh 登录绑定二次认证

服务器多因素认证通过 PAM 模块将 SSH 登录绑定二次认证,本质是让 OpenSSH 在完成首层验证(密钥或密码)后,再调用 Google Authenticator 的 TOTP 动态码做第二道校验。这需要四个环节严丝合缝:模块就位、用户密钥生成、PAM 规则生效、SSH 服务明确启用挑战响应流程。漏掉任一环,MFA 都不会触发。

安装并验证 pam_google_authenticator 模块

模块必须正确安装且系统能加载,否则后续全无效:

  • Ubuntu/Debian:运行 sudo apt update && sudo apt install libpam-google-authenticator,然后检查 /lib/security/pam_google_authenticator.so 是否存在
  • RHEL/CentOS/Rocky 8+:先启用 EPEL(sudo dnf install epel-release),再装 google-authenticator,确认 /usr/lib64/security/pam_google_authenticator.so 可访问
  • 执行 ldd /path/to/pam_google_authenticator.so | grep "not found",确保无缺失依赖;若报 cannot open shared object file,重点排查 EPEL 状态、SELinux 干预(临时 setenforce 0 测试)

为每个用户独立生成并保护密钥文件

root 不能代劳,也不能复制密钥。必须以目标用户身份操作,且权限控制极严格:

FakeYou
FakeYou

FakeYou是一款AI音频处理工具,Deep Fake文本转语音。

下载
  • 切换用户用 su - username(不是 sudo -u,避免环境变量不全)
  • 运行 google-authenticator -t -d -f -r 3 -R 30:启用 TOTP、禁用重用、保存配置、30 秒内最多 3 次失败
  • 按提示选 y 启用时间令牌、禁用重用、开启速率限制、保存配置、生成恢复码——5 个应急码务必离线保存
  • 立即执行:chmod 600 ~/.google_authenticator、chmod 700 ~、chmod 700 ~/.ssh
  • 同步时间:sudo timedatectl set-ntp true;TOTP 对时差敏感,超 ±30 秒即失效

在 /etc/pam.d/sshd 中精准添加 auth 规则

PAM 行的位置和参数决定 MFA 是否真正介入认证链:

  • 编辑 /etc/pam.d/sshd,在文件最上方插入一行(不是末尾,也不是中间):
    auth [success=ok default=die] pam_google_authenticator.so secret=/home/$USER/.google_authenticator
  • 该行必须出现在 auth [success=done] pam_unix.so 之后、auth required pam_deny.so 之前
  • 调试阶段可加 nullok 允许未配用户登录,但上线前必须删除,否则无法强制启用
  • 避免混入 debug 或 verbose 选项,它们会拖慢登录并暴露日志

修改 /etc/ssh/sshd_config 强制触发挑战响应流程

仅启用 UsePAM 或 ChallengeResponseAuthentication 不够,关键在 AuthenticationMethods 的组合逻辑:

  • 确保以下三项同时存在且未被注释:
    UsePAM yes
    ChallengeResponseAuthentication yes
    AuthenticationMethods publickey,keyboard-interactive
  • 如果只希望特定用户(如 admin)强制 MFA,可用 Match 块覆盖:
    Match User admin
     AuthenticationMethods publickey,keyboard-interactive
     PermitRootLogin no

    注意:所有 Match 块必须放在 sshd_config 末尾,且前面不能有全局 AuthenticationMethods
  • 改完后执行 sudo systemctl restart sshd,并用非 root 账户测试登录

整个过程不复杂但容易忽略细节:时间不同步、密钥文件权限过宽、PAM 行位置错误、sshd_config 缺少 AuthenticationMethods —— 这四类问题占了实际部署失败的九成以上。

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

920

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2952

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

976

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

889

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

454

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2676

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5012

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

787

5

热门下载

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

精品课程

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

共6课时 | 54.7万人学习

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

共89课时 | 133.7万人学习