Google Authenticator PAM with SSH,服务器和客户端时间差导致认证失败

Google Authenticator PAM with SSH, server and client time difference causing authentication failure

我正在使用 Google authenticator PAM module 和 SSH 登录,我的设置在我的本地设置中通过我的家庭网络运行。但是当我在 public 服务器上安装时,服务器和客户端(Google 验证器 android 应用程序)之间的时间差导致 OTP 验证失败。我正在使用基于时间的 OTP 代码,正如 google 身份验证器 PAM wiki 所说,如果我连续 3 次输入正确的 OTP,则服务器端 PAM 模块会计算时间偏差并为以后的所有登录更正它,它是这样工作的。但是每个新用户输入 OTP 3 次都会很痛苦,有什么解决方法吗?

我为我的 Gmail 帐户激活了 OTP 验证,不需要我输入 OTP 三次。他们一定对 google 身份验证器 PAM 模块做了一些更改。任何解决这个问题的建议都会很有帮助。

您可以使用基于事件的令牌 (HOTP),它不需要在服务器和客户端上精确计时。不幸的是,google 验证器 pam 模块支持这一点,但是 OATH toolkit 中的 pam_oath 也可以很好地工作。所有应用程序(FreeOTP、Google 验证器)也支持此选项。