我改变了gitlab服务器。在旧的我创建了备份,现在我已将备份导入新系统。一切正常!
现在我遇到了问题,因为双因素身份验证我无法登录。我想,秘密盐会改变。
这是日志:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"[FILTERED]", "user"=>{"otp_attempt"=>"[FILTERED]"}}
Completed 500 Internal Server Error in 10ms (ActiveRecord: 0.9ms)
OpenSSL::Cipher::CipherError (bad decrypt):
app/controllers/sessions_controller.rb:95:in valid_otp_attempt?'
app/controllers/sessions_controller.rb:63:in authenticate_with_two_factor'
如何为一个用户禁用双因素身份验证?
问候
答案 0 :(得分:5)
Gitlab已更新命令以禁用所有用户的双因素身份验证:
sudo gitlab-rails runner 'User.find_each(&:disable_two_factor!)'
@poldixd的回答应该仍然有效。如果它没有尝试将 encrypted_opt_secret 设置为nil
而不是""
。
答案 1 :(得分:4)
此命令可以为所有用户启用双因素身份验证 :sudo gitlab-rails runner 'User.update_all(otp_required_for_login: false, encrypted_otp_secret: "")'
答案 2 :(得分:3)
对于从源代码安装,您可以运行
cd /home/git/gitlab
sudo -u git -H bundle exec rails console production
获取rails控制台然后输入
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)
运行命令。
答案 3 :(得分:0)
适用于只想对单个用户禁用2FA的任何人。我找到了一个可行的解决方案是:
User.where(username: "username_goes_here").each(&:disable_two_factor!)
答案 4 :(得分:0)
我为具有以下条件的所有用户禁用了Gitlab Docker的2FA:
sudo -u git -H捆绑执行rake gitlab:two_factor:disable_for_all_users RAILS_ENV = production