如何在 GitLab 中禁用双因素身份验证?
How to disable the Two-factor authentication in 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'
如何为一个用户禁用双因素身份验证?
问候
此命令为所有用户关闭双因素身份验证:sudo gitlab-rails runner 'User.update_all(otp_required_for_login: false, encrypted_otp_secret: "")'
对于从源安装,您可以运行
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)
到运行命令。
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
对于正在研究如何仅为单个用户禁用 2FA 的任何人。我发现一个可行的解决方案是:
User.where(username: "username_goes_here").each(&:disable_two_factor!)
我为所有用户禁用 Gitlab Docker 的 2FA:
sudo -u git -H bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production
我知道 OP 很旧,但我是第一次遇到这个问题,并采取了以下步骤来重置用户帐户的 2FA:
- 以 Gitlab 管理员身份登录。
- 通过 Admin\Users 面板找到被锁定的用户。
- 将用户密码重置为临时密码(保留副本)。
- 打开锁定的用户个人资料。
- 点击右上角的“模拟”。
- 现在用户点击“编辑个人资料”。
- 单击“帐户”,单击“管理双因素身份验证”。
- 输入第 3 步中的密码,然后:
一种。单击“禁用双因素身份验证”并让用户重新启用,或者
b.单击“重新生成恢复代码”并将这些传递给用户。
无论哪种情况,您还需要向用户提供新的临时密码。
我换了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'
如何为一个用户禁用双因素身份验证?
问候
此命令为所有用户关闭双因素身份验证:sudo gitlab-rails runner 'User.update_all(otp_required_for_login: false, encrypted_otp_secret: "")'
对于从源安装,您可以运行
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)
到运行命令。
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
对于正在研究如何仅为单个用户禁用 2FA 的任何人。我发现一个可行的解决方案是:
User.where(username: "username_goes_here").each(&:disable_two_factor!)
我为所有用户禁用 Gitlab Docker 的 2FA:
sudo -u git -H bundle exec rake gitlab:two_factor:disable_for_all_users RAILS_ENV=production
我知道 OP 很旧,但我是第一次遇到这个问题,并采取了以下步骤来重置用户帐户的 2FA:
- 以 Gitlab 管理员身份登录。
- 通过 Admin\Users 面板找到被锁定的用户。
- 将用户密码重置为临时密码(保留副本)。
- 打开锁定的用户个人资料。
- 点击右上角的“模拟”。
- 现在用户点击“编辑个人资料”。
- 单击“帐户”,单击“管理双因素身份验证”。
- 输入第 3 步中的密码,然后: 一种。单击“禁用双因素身份验证”并让用户重新启用,或者 b.单击“重新生成恢复代码”并将这些传递给用户。
无论哪种情况,您还需要向用户提供新的临时密码。