我正在尝试通过 lightdm 在 Xubuntu 主机上配置 google-authentication。我只想使用 OTP 代码登录(即用户不提供密码,只提供他们的 google 身份验证代码)。
我修改了 /etc/pam.d/lightdm-greeter,添加了一行以使用 google authenticator。最初,我省略了“use_first_pass”,后来又添加了它。每次编辑后,我都会重新启动机器以确保 pam 堆栈配置正确。
#%PAM-1.0
auth required pam_permit.so
auth optional pam_gnome_keyring.so
auth optional pam_kwallet.so
auth optional pam_kwallet5.so
auth sufficient pam_google_authenticator.so use_first_pass
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required pam_limits.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
session optional pam_gnome_keyring.so auto_start
session optional pam_kwallet.so auto_start
session optional pam_kwallet5.so auto_start
session required pam_env.so readenv=1
session required pam_env.so readenv=1 user_readenv=1 envfile=/etc/default/locale
(我还为几个账户填充了密钥)
但在这两种情况下,当我在欢迎程序的密码提示中输入 google 身份验证码时,它只会报告一个错误的密码(因为 google 模块“足够”我仍然可以使用密码登录)。
googleauth pam 模块在启动或验证时未在 syslog 或 auth.log 中报告任何内容。
我如何使用 google 身份验证来验证以密码形式显示的代码?
更新
我在 /etc/pam.d/lightdm 中添加了相同的条目,现在得到...
Aug 28 18:28:44 ubuntu-jumpbox lightdm(pam_google_authenticator)[901]: Invalid verification code for administrator
撇开为什么 /etc/pam.d 中有两个单独的文件的问题不谈,我仍然没有实现我的目标。
(是的,我在我的移动设备上设置了正确的代码,并且移动设备和主机上的时钟是同步的)。
答案1
在手机上尝试了不同的身份验证应用程序后(似乎没有一个应用程序允许我看到从二维码扫描的代码,包括谷歌自己的应用程序),我在 /etc/pam.d/lightdm 中将“use_first_pass”更改为“try_first_pass”。成功了。太棒了!