GitLab Двухфакторная аутентификация: ArgumentError (необходимо указать ключ)
Я использую GitLab 10.2.2, а двухфакторная аутентификация (2FA) вообще не работает. Я вскоре перенес и обновил экземпляр GitLab. Я просто скопировал старый config/secrets.yml
с базовым ключом на свое место. Но даже если я этого не сделаю, я смогу активировать 2FA.
Когда я пытаюсь активировать 2FA, логи говорят:
==> production.log <==
Started GET "/profile/two_factor_auth" for 87.138.100.36 at 2017-11-29 16:52:59 +0100
Processing by Profiles::TwoFactorAuthsController#show as HTML
Completed 500 Internal Server Error in 191ms (ActiveRecord: 4.1ms)
ArgumentError (must specify a key):
app/controllers/profiles/two_factor_auths_controller.rb:6:in `show'
lib/gitlab/i18n.rb:47:in `with_locale'
lib/gitlab/i18n.rb:53:in `with_user_locale'
app/controllers/application_controller.rb:340:in `set_locale'
lib/gitlab/middleware/multipart.rb:93:in `call'
lib/gitlab/request_profiler/middleware.rb:14:in `call'
lib/gitlab/middleware/go.rb:18:in `call'
lib/gitlab/etag_caching/middleware.rb:11:in `call'
lib/gitlab/middleware/read_only.rb:31:in `call'
lib/gitlab/request_context.rb:18:in `call'
lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'
Другой пользователь с уже включенным 2FA не может войти в систему с почти такой же ошибкой.
Кто-нибудь знает, как это исправить?
1 ответ
Решение
Решение не было таким очевидным. Я обновил libssl и libssl-dev до 1.1.0 (с помощью Sury). Я удалил все драгоценные камни и переустановил их. Некоторые части снова компилируются с новым libssl. И после этого 2FA работал без ошибок.
# add sury APT repo
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
# update libssl
sudo apt-get install libssl libssl-dev
# uninstall all Gems
# https://stackru.com/a/21385516/3898725
bundle list | ruby -e 'ARGF.readlines[1..-1].each {|l| g = l.split(" "); puts "Removing #{g[1]}"; `gem uninstall --force #{g[1]} -v #{g[2].gsub(/\(|\)/, "")}`; }'
# reinstall all gems (with MySQL)
sudo -u git -H bundle install --without postgres development test --deployment