如何在GitLab中禁用双因素身份验证?

时间:2015-06-24 11:00:09

标签: gitlab

我改变了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'

如何为一个用户禁用双因素身份验证?

问候

5 个答案:

答案 0 :(得分:5)

Gitlab已更新命令以禁用所有用户的双因素身份验证:

sudo gitlab-rails runner 'User.find_each(&:disable_two_factor!)'

@poldixd的回答应该仍然有效。如果它没有尝试将 encrypted_opt_secret 设置为nil而不是""

在此处找到: https://gitlab.com/gitlab-org/gitlab-ce/issues/1960

答案 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