0

0

Linux如何配置多因素认证_Linux SSH+Google Authenticator【安全】

冰火之心

冰火之心

发布时间:2026-01-19 12:09:25

|

169人浏览过

|

来源于php中文网

原创

可通过集成Google Authenticator实现SSH的TOTP多因素认证,步骤包括:安装PAM模块、为用户生成密钥并绑定验证器、配置PAM策略、启用SSH的ChallengeResponseAuthentication、测试登录并设置应急通道。

linux如何配置多因素认证_linux ssh+google authenticator【安全】

如果您希望增强Linux服务器SSH登录的安全性,防止仅依赖密码或密钥被破解的风险,则可以通过集成Google Authenticator实现基于时间的一次性密码(TOTP)多因素认证。以下是配置此功能的具体步骤:

一、安装Google Authenticator PAM模块

Google Authenticator以PAM(Pluggable Authentication Modules)模块形式工作,需在系统中安装对应软件包,使SSH服务能调用其验证逻辑。

1、以root用户执行更新软件源命令:apt update(Ubuntu/Debian)或yum update(CentOS 7)或dnf update(CentOS 8/RHEL 8/Fedora)。

2、安装google-authenticator-libpam包:apt install libpam-google-authenticator(Debian/Ubuntu)或yum install google-authenticator(CentOS 7)或dnf install google-authenticator(CentOS 8+)。

3、验证模块文件是否存在:ls /lib/security/pam_google_authenticator.sols /usr/lib64/security/pam_google_authenticator.so,确认路径下存在该文件。

二、为用户生成TOTP密钥并配置验证器

每个启用MFA的用户需独立运行初始化命令,生成唯一密钥、二维码及备用恢复码,该过程仅对当前shell用户生效,不涉及系统级密钥共享。

1、切换至目标用户(如ubuntu):su - ubuntu

2、执行初始化命令:google-authenticator

3、按提示依次选择:y(启用时间同步令牌)、y(禁用同一令牌多次使用)、y(启用速率限制,每30秒最多3次尝试)、y(保存设置到用户主目录的~/.google_authenticator文件)、y(生成并显示10个一次性应急恢复码)。

4、使用手机端Google Authenticator、Authy或Microsoft Authenticator扫描终端输出的QR码,或手动输入密钥完成绑定。

三、配置PAM策略启用MFA验证流程

PAM负责定义认证顺序与条件,需修改SSH专用PAM配置文件,将Google Authenticator设为必要验证环节,确保每次SSH登录均触发TOTP校验。

1、备份原始配置:cp /etc/pam.d/sshd /etc/pam.d/sshd.bak

2、在/etc/pam.d/sshd文件顶部添加以下行(Debian/Ubuntu):auth [success=ok default=die] pam_google_authenticator.so nullok secret=/home/${USER}/.google_authenticator

文心快码
文心快码

文心快码(Comate)是百度推出的一款AI辅助编程工具

下载

3、若系统为RHEL/CentOS且使用systemd-logind,还需添加:auth [success=done default=ignore] pam_google_authenticator.so nullok

4、确保该行位于其他auth段指令之前,避免被skip规则绕过。

四、修改SSH守护进程配置启用键盘交互认证

OpenSSH必须启用ChallengeResponseAuthentication机制,才能在密码验证后继续请求TOTP输入;若关闭此选项,PAM中的Google Authenticator将不会被调用。

1、编辑SSH服务配置文件:nano /etc/ssh/sshd_config

2、定位并修改以下三项参数值:ChallengeResponseAuthentication yesPasswordAuthentication yesUsePAM yes

3、若同时启用公钥认证,保留PubkeyAuthentication yes,但需注意:当PasswordAuthentication设为no时,TOTP将无法触发,除非额外配置AuthenticationMethods。

4、保存退出后重载服务:systemctl restart sshd(或service ssh restart)。

五、测试MFA登录流程并设置备用访问路径

验证配置是否生效需模拟真实登录场景,同时预留紧急通道以防TOTP失效导致锁死,保障运维可持续性。

1、从另一终端使用SSH连接服务器:ssh username@server_ip

2、输入用户密码后,等待提示输入“Verification code”:Enter verification code:,此时打开手机Auth应用查看6位动态码并输入。

3、若登录失败,检查/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(RHEL/CentOS)中pam_google_authenticator相关错误条目。

4、为防手机丢失或应用损坏,提前将应急恢复码存于离线安全位置,并确保至少一个备用管理员账户未启用MFA或已配置SSH密钥免密登录。

相关专题

更多
default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

220

2023.12.07

vsd文件打开方法
vsd文件打开方法

vsd文件打开方法有使用Microsoft Visio软件、使用Microsoft Visio查看器、转换为其他格式等。想了解更多vsd文件相关内容,可以阅读本专题下面的文章。

481

2023.10.30

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

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

1349

2023.06.21

如何安装LINUX
如何安装LINUX

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

703

2023.06.29

linux find
linux find

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

294

2023.06.30

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

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

776

2023.07.05

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

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

573

2023.07.06

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

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

545

2023.07.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号