【问题标题】:GitLab: lost gitlab-secrets.json - CipherError (bad decrypt)GitLab:丢失 gitlab-secrets.json - CipherError(解密错误)
【发布时间】:2018-04-23 13:06:35
【问题描述】:

我重新安装了 GitLab,忘记备份 gitlab-secrets.json 文件。

现在我无法启用 2FA(被禁用)并且我在 production.log 文件中看到此错误:

Completed 500 Internal Server Error in 15ms (ActiveRecord: 1.3ms)

OpenSSL::Cipher::CipherError (bad decrypt):
  app/controllers/profiles/two_factor_auths_controller.rb:5:in `show'
  lib/gitlab/i18n.rb:47:in `with_locale'
  lib/gitlab/i18n.rb:53:in `with_user_locale'
  app/controllers/application_controller.rb:337: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:17:in `call'
  lib/gitlab/etag_caching/middleware.rb:11:in `call'
  lib/gitlab/middleware/read_only.rb:30:in `call'
  lib/gitlab/request_context.rb:18:in `call'
  lib/gitlab/metrics/requests_rack_middleware.rb:27:in `call'

有什么办法可以在不丢失任何数据的情况下修复它吗?

GitLab CE 版本。 10.1.0

【问题讨论】:

  • 在我的例子中,只有 2FA 存在问题,我只是重新创建了有问题的用户,现在一切似乎都运行良好。我正在使用在重新安装期间创建的新秘密 json 文件。当然,我现在把它保存在一个安全的地方,这样它就可以随时恢复了:)

标签: gitlab gitlab-omnibus


【解决方案1】:

很抱歉,如果您找不到备份,那您就不走运了。

如果您需要恢复 GitLab 应用程序备份,您还需要恢复 gitlab-secrets.json。如果您不这样做,使用双因素身份验证的 GitLab 用户将无法访问您的 GitLab 服务器,并且存储在 GitLab CI 中的“安全变量”将丢失。

https://docs.gitlab.com/omnibus/settings/backups.html#backup-and-restore-omnibus-gitlab-configuration

【讨论】:

    【解决方案2】:

    如果您使用omnibus 安装gitlab,也许我的方法会有所帮助。 出于某种原因,我不得不重新安装 gitlab,并且在我完成之后遇到了几乎相同的 500 bad decrypt 错误。那时我根本不知道要备份那个秘密文件。 我假设你可以访问你的 gitlab 网站,可以看到项目列表,但不能直接打开它们,因为错误的解密错误(可以通过添加 /tree/master 来打开它)。 以下是我的方法:

    1. /var/opt/gitlab ------ 这里是 Gitlab 数据文件。备份它们。
    2. 下载次要升级版本,这可能有助于将数据库加密信息迁移到新版本。
    3. 找一台新机器,安装gitlab(以前的版本),恢复数据文件,然后升级到新下载的版本。
    4. 看看有没有解决

    对于我来说,我以前的 gitlab 版本是 8.9.3,在我重新安装完全相同的版本而不备份 gitlab-secrets.json 后,我遇到了 500 bad decrypt 错误。然后我把它升级到了8.17.7,这只是一个小版本升级。我注意到数据库迁移,之后所有数据库加密信息都更新了。然后我可以在没有 500 的情况下打开我所有的项目。

        Checking PostgreSQL executables: OK
    Shutting down all GitLab services except those needed for migrations
    ok: down: gitlab-workhorse: 0s, normally up
    ok: down: logrotate: 0s, normally up
    ok: down: postgresql: 1s, normally up
    ok: down: sidekiq: 0s, normally up
    ok: down: unicorn: 1s, normally up
    ok: run: postgresql: (pid 14987) 0s
    run: postgresql: (pid 14987) 0s; run: log: (pid 15964) 159018s
    Reconfiguring GitLab to apply migrations
    init (upstart 0.6.5)
    
    
      * Moving existing certificates found in /opt/gitlab/embedded/ssl/certs
    
      * Symlinking existing certificates found in /etc/gitlab/trusted-certs
    gitlab Reconfigured!
    

    【讨论】:

    • 实际上,我唯一的问题是为用户启用 2fa。我可以成功地完成其他所有事情,例如访问项目并与之合作。
    猜你喜欢
    • 2017-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    相关资源
    最近更新 更多