统信UOS V20 (1070u1) 及以上版本支持MFA,需安装pam-google-authenticator、配置PAM策略(lightdm/sshd)、启用TOTP并妥善保管备用码,SSH还需调整sshd_config;失败时可回退PAM配置恢复登录。

在统信UOS桌面环境中为关键账户启用多因素认证(MFA),可显著提升登录环节的安全强度,防止仅凭密码泄露导致的未授权访问。
确认系统版本与服务支持
打开“控制中心”→“关于本机”,核对系统版本是否为 统信UOS V20 (1070u1) 或更高版本。低于此版本的系统内核与PAM模块不支持标准TOTP/U2F协议栈,无法启用完整MFA流程。
执行 sudo apt list --installed | grep pam-google-authenticator,若返回空结果,说明系统未预装MFA基础组件,需先联网更新源并安装。
安装并初始化Google Authenticator PAM模块
打开终端,依次执行:
sudo apt update && sudo apt install libpam-google-authenticator -y
运行 google-authenticator,按提示选择“是”启用时间戳模式(Time-based)、“是”禁止重复使用验证码、“是”启用速率限制——这三项为强制安全选项,禁用任意一项将使MFA形同虚设。
命令会生成二维码、密钥及5个应急备用码。请立即用手机Authy或Microsoft Authenticator扫码绑定,并将5个备用码抄写保存至离线安全位置;该步骤无备份则丢失即锁死账户。
配置PAM策略启用登录级MFA
第一步:备份原始PAM配置:sudo cp /etc/pam.d/lightdm /etc/pam.d/lightdm.bak
第二步:编辑登录管理器配置:sudo nano /etc/pam.d/lightdm
第三步:在文件顶部插入新行:auth [success=done new_authtok_reqd=done default=ignore] pam_google_authenticator.so nullok。注意末尾nullok参数仅用于首次过渡,正式启用后必须删除,否则未配置MFA的用户仍可绕过验证直接登录。
第四步:重启显示管理器:sudo systemctl restart lightdm。此时图形界面登录框将自动追加“验证码”输入栏。
为SSH远程登录单独启用MFA
方法一:启用PAM联动(推荐)
编辑 sudo nano /etc/pam.d/sshd,在首行添加:auth required pam_google_authenticator.so。
方法二:强制密钥+验证码双因子(更严格)
修改 /etc/ssh/sshd_config,确保含三行:PubkeyAuthentication yes、AuthenticationMethods publickey,keyboard-interactive、ChallengeResponseAuthentication yes;改完执行 sudo systemctl restart ssh。
注意:启用SSH MFA后,所有密钥登录必须同步输入6位动态码,PuTTY等客户端需勾选“Attempt authentication using TIS or CryptoCard”选项,否则连接直接被拒绝。
测试与故障回退
新建一个非root测试账户,在另一台设备上尝试图形登录和SSH登录,分别输入密码+正确验证码,确认双因子生效。
若主账户被锁定,立即使用root权限执行:sudo nano /etc/pam.d/lightdm,删掉刚添加的pam_google_authenticator.so那一行,再重启lightdm服务即可恢复单因子登录。











