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
Другие вопросы по тегам