有一个类似的问题,但这不是我想要的。
我想知道是否有用于 lightdm 或 gdm 的插件或附加组件,允许我使用我的密码和谷歌身份验证器进行身份验证。我说的是将您的 GA 代码输入到桌面登录——GUI 或命令行,shell 登录——以便访问您的本地桌面。
mni*_*ess 15
像这样安装 Google Authenticator PAM 模块:
sudo apt-get install libpam-google-authenticator
Run Code Online (Sandbox Code Playgroud)
现在google-authenticator
为每个要使用 Google 身份验证器的用户运行(在终端内)并按照说明进行操作。您将获得可使用智能手机(或链接)和紧急代码扫描的二维码。
要激活 Google 身份验证器,请查看目录/etc/pam.d/。有一个文件可用于对您的计算机进行身份验证的各种方式。您需要为要与 Google 身份验证器一起使用的每项服务编辑配置文件。如果要在 SSH 中使用它,请编辑sshd,如果要在 LightDM 中使用它,请编辑lightdm。在这些文件中,添加一个以下行:
auth required pam_google_authenticator.so nullok
auth required pam_google_authenticator.so
Run Code Online (Sandbox Code Playgroud)
使用第一行,同时您仍在将用户迁移到 Google 身份验证器。没有配置的用户仍然可以登录。第二行将强制使用谷歌身份验证器。没有它的用户将无法再登录。对于 sshd,将这一行放在文件顶部以防止对密码的暴力攻击非常重要。
要将其添加到 LightDM,您可以运行以下命令:
echo "auth required pam_google_authenticator.so nullok" | sudo tee -a /etc/pam.d/lightdm
Run Code Online (Sandbox Code Playgroud)
现在,当您登录时,系统会分别要求您输入密码和两步验证码。
如果您使用家庭加密 (ecryptfs) ,则 PAM 模块将无法读取文件$HOME/.google_authenticator(因为它仍然是加密的)。在这种情况下,您需要将它移到其他地方并告诉 PAM 在哪里可以找到它。可能的行可能如下所示:
auth required pam_google_authenticator.so secret=/home/.ga/${USER}/.google_authenticator
Run Code Online (Sandbox Code Playgroud)
您需要为/home/.ga中具有用户名的每个用户创建一个目录,并将该目录的所有权更改为该用户。然后用户可以运行google-authenticator
并将创建的 .google-authenticator 文件移动到该目录。用户可以运行以下几行:
sudo install -g $(id -rgn) -o $USER -m 700 -d /home/.ga/$USER
google-authenticator
mv $HOME/.google_authenticator /home/.ga/$USER
Run Code Online (Sandbox Code Playgroud)
这将允许模块访问该文件。
对于其他选项,请查看自述文件。
小智 8
看看这篇博客文章,标题是:桌面上的谷歌两步验证是什么?
sudo apt-get install libpam-google-authenticator
Run Code Online (Sandbox Code Playgroud)
google-authenticator
Run Code Online (Sandbox Code Playgroud)
根据博客文章,有一个包含 2 因素身份验证的 lightdm-kde 版本,当您将包含的 PAM 模块添加到您的环境时,它可以利用 Google Authenticator。
auth required pam_google_authenticator.so
Run Code Online (Sandbox Code Playgroud)
导致您的 GUI 登录如下所示: