我在 Ubuntu 18.04.4 LTS 上使用 Google Authenticator 进行 2FA。我已添加auth required pam_google_authenticator.so nullok
并/etc/pam.d/common-session
正确设置了 Google Authenticator。
在睡眠模式后恢复会话时,2FA 效果很好。但是,当我关闭计算机并再次启动时,2FA 不会提示,只会要求我输入主密码。你知道为什么吗?
答案1
问题与主目录加密有关。如 Google Authenticator libpam 中所述
如果您的系统在用户输入密码后才加密主目录,则您必须重新排列 PAM 配置文件中的条目以在要求输入 OTP 代码之前解密主目录,或者您必须将机密文件存储在非标准位置
。如果您是笔记本电脑的唯一用户,请按照以下步骤使用 2FA 启动 Ubuntu 18.04:
- 创建一个未加密的目录,我们称之为
ga
:
sudo mkdir -m 700 /home/ga
sudo chown yourname:yourgroup /home/ga
- 当你运行并配置 Google Authenticator(即
google-authenticator
终端中的命令)时,它会在根目录中创建一个配置文件。将此文件复制到未加密的目录中:
sudo cp ~/.google_authenticator /home/ga/.
- 最后在文件末尾添加这一行
/etc/pam.d/gdm-password
:
auth required pam_google_authenticator.so secret=/home/ga/.google_authenticator
启动计算机然后就可以开始了。
来源
https://github.com/google/google-authenticator-libpam#encrypted-home-directories
桌面版 Google Authenticator(lightdm 或 gdm 插件)
https://wiki.archlinux.org/index.php/Google_Authenticator#Desktop_logins