Google 双因素身份验证不适用于 'su' 命令

Google two factor authentication not work on 'su' command

我在 linux 服务器上安装了 google 双因素身份验证。
(感谢:https://github.com/google/google-authenticator-libpam

当我尝试通过 ssh 访问 root 帐户时,身份验证器工作正常。

Verification code: .....  
Password: ....   
[root@hostname] works fine :)

但是!!访问其他用户帐户并尝试使用 su 访问 root 帐户, 验证器只需要密码。

[user@hostname] whoami   
user  
[user@hostname] su  
password: .....  
[root@hostname] What?!!!

我将所有配置设置为默认值。

我该如何解决?

这是默认的工作方式。由于您使用的是 google-authenticator-libpam 模块,因此您只是通过将 auth required pam_google_authenticator.so 添加到 sshd 配置文件来向实际的外部接口登录添加两因素身份验证。

正确的安全实施(或至少一种正确的方法)是不允许 root 用户进行外部登录,更进一步并锁定 ssh 以仅允许启用双重身份验证的用户登录更好。

为此,您需要在 sshd 配置中添加以下内容:

AllowUsers admin bob

要为 su - 启用 Google 双因素身份验证,您必须在文件 /etc/pam.d/su 末尾添加以下参数:

auth required pam_google_authenticator.so

保存并尝试使用普通用户登录,然后su -,它会提示输入验证码。 即不需要重新启动 sshd 服务。