Web・IT うんたらら

業務系とWeb系の狭間でIT業界を彷徨いながら備忘録と足跡を残していきます

GitLabサーバ移行後にTwo-factor authentication(二段階認証)が上手くいかない問題の対処

ずっとVagrantのマシンで稼働していたGitLabをクラウドに移行中です。

移行作業自体は、こちらの記事を参考にさせていただき、そりゃあもう完璧に上手くいったのですが(ありがとうございます!)

その後Two-factor authentication(二段階認証)を設定していたユーザでログインしようとすると500番エラーが発生。

色々と調べたのですが、ターミナルから以下のコマンドで一度2段階認証周りをリセットするしかないみたい。

(実行すると全ユーザの2段階認証を解除します)

gitlab-rails console production #コンソール起動。結構待ちます
User.update_all(otp_required_for_login: false, encrypted_otp_secret: nil, encrypted_otp_secret_iv: nil, encrypted_otp_secret_salt: nil, otp_backup_codes: nil)
exit #コンソール終了

これでOK。

ポイントとして、otp_required_for_login: false だけでも2段階認証の解除自体はできるのですが、上記のように他の鍵周りを一度nilにしてリセットしてあげないと、次回二段階認証を設定しようとした場合に500番エラーが出たり謎のQRが作られたりするので注意が必要です。