![libpam-google-authenticator 在 kubuntu 23.04 上失败(似乎是由于 polkitd)](https://linux22.com/image/220474/libpam-google-authenticator%20%E5%9C%A8%20kubuntu%2023.04%20%E4%B8%8A%E5%A4%B1%E8%B4%A5%EF%BC%88%E4%BC%BC%E4%B9%8E%E6%98%AF%E7%94%B1%E4%BA%8E%20polkitd%EF%BC%89.png)
我已经使用 libpam-google-authenticator 好几年了。我总是将其设置为需要密码 + TOTP 令牌作为 pam 中的密码。我输入密码,然后按“onlykey”上的按钮,输入 TOTP 令牌并按 Enter 键。无痛且更安全。 SSH 显然使用 RSA,但所有其他登录:X、物理终端、sudo 等都需要密码 + TOKEN。这对于以前的安装来说完美无缺。然而现在,它神秘地失败了。在查看了 github 上的源代码后,我有一个想法,这可能与主机在调整时间偏差并尝试停止重播的多个代码实例中以 null 形式输入有关。
设置完成后,一切似乎都正常,但随着时间的推移,TOTP 令牌每次都失败。我做了以下事情:
- 实时检查服务器日期/时间是否与 pool.ntp.org 匹配
- 使用 oathtool 手动计算 TOTP 并比较唯一的关键输出(对于感兴趣的人,oathtool -b --totp "SECRET")
我可以在每个实例中看到时间是正确的并且 TOTP 是正确的,但 google 身份验证器声明它不正确。
我想在这里提出这个问题,看看是否有其他人看到过这个。现在,我的下一步行动是看看重启是否会改变什么。如果可行,那么我需要查看哪些服务需要重新启动。
编辑:
重新启动会很痛苦,而且我很懒,所以我运行了 systemctl 并发现了这个:
polkit.service loaded active running Authorization Manager
重新启动该服务,它现在又可以工作了。所以我们有一个解决方法。有答案吗?