恢复备份后2FA与OTP中断

我将 Discourse 从个人电脑迁移到了同一网络中的一台“常开”服务器上。我创建了一个全新的 Discourse Docker 容器,然后按照此处所示恢复了备份:Restore a backup from the command line

一切正常,但启用了 OTP 双重验证(2FA)的用户无法登录。我在 Android 上使用 AndOTP,但 OTP 已失效。此外,无法创建新的 2FA 令牌,因为应用生成的令牌不被 Discourse 接受。因此,尽管我刚刚扫描了二维码,生成的令牌仍然不正确。

我怀疑自己哪里做错了?

1 个赞

为了缩小问题范围:我刚刚尝试使用 YubiKey 保护我的账户,一切正常。

问题仅出在 OTP 上。

1 个赞

您是否尝试过在重新创建 OTP 记录之前先删除它们?请参考此帖子获取帮助:通过控制台禁用 2FA - 操作指南 / 系统管理员 - Discourse Meta

3 个赞

不,我没有这样做——所以非常感谢你。我通过创建一个新管理员用户并以此身份登录,然后使用 Web 界面禁用了受影响用户的两步验证(2FA),从而自行解决了问题。

现在我已经按照你提供的链接操作(非常感谢),并且成功了:我的 YubiKey 两步验证已被禁用。

但再次使用 OTP 进行两步验证?不行。我无法添加身份验证器应用,因为扫描 QR 码后生成的令牌无效。这在原始实例上并不是问题。

哦,我最近没遇到过这种情况,你当前运行的是哪个版本的 Discourse?

也许是服务器和客户端之间存在时间差异?

5 个赞

两个版本(备份的源系统和恢复备份的目标系统)都是 2.8.0.beta1。

我明天会检查一下——今天我没有访问该系统的权限。这可能是问题所在,但我相当确定 ntp 已启用,应该能校正服务器的内部时钟。

2 个赞

你说得对,这解决了我的问题。虽然已安装 ntp,但时间差异过大,导致 ntp 无法再自动修正。我现在已强制同步,OTP 功能已恢复正常。

5 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.