Я перенёс свой Discourse с личного ПК на «всегда включённый» сервер, оба находятся в одной сети. Создал свежий Docker-контейнер с Discourse, а затем восстановил резервную копию, как показано здесь: Restore a backup from the command line
Всё работает отлично, кроме входа для пользователей, которые активировали двухфакторную аутентификацию (2FA) с помощью OTP. Я использую AndOTP на Android, и OTP больше не действителен. Кроме того, создание нового токена 2FA невозможно, потому что токен, созданный приложением, не принимается Discourse. То есть, даже несмотря на то, что я только что отсканировал QR-код, созданный токен оказывается неверным.
Нет, я не делал этого — спасибо вам за это. Я помог себе сам, создав нового администратора, войдя под этой учётной записью и используя веб-интерфейс для отключения двухфакторной аутентификации (2FA) для затронутых пользователей.
Теперь я перешёл по вашей ссылке (спасибо вам за это), и она сработала в том смысле, что моя 2FA с YubiKey была отключена.
Но использовать 2FA с OTP снова? Нет. Я не могу добавить приложение-аутентификатор, потому что после сканирования QR-кода сгенерированный токен не является действительным. Это не было проблемой на исходном экземпляре.
Обе версии (источник резервной копии и система, куда она была восстановлена) — 2.8.0.beta1
Проверю это завтра — сегодня у меня нет доступа к системе. Это может быть проблемой, но я довольно уверен, что ntp активен и должен корректировать внутренние часы сервера.
Вы были правы, это решило мою проблему. Хотя ntp был установлен, расхождение во времени было настолько большим, что ntp больше не мог его исправить. Я принудительно выполнил синхронизацию, и OTP снова работает.