自托管 Gitlab 无效的 reCaptcha 密钥类型

Self-Hosted Gitlab Invalid reCaptcha key type

我自己托管 Gitlab,并向 login/register 添加了强制 reCaptcha。

我不小心输入了 v3 密钥而不是 v2 密钥,现在我无法登录,因为它显示:

ERROR for site owner: Invalid key type. 

知道如何在文件中手动更改它吗?
我是 运行 Ubuntu Desktop 18.04.4

如果您可以连接到 GItLab 服务器,您可以,如 gitlab-org/gitlab-foss issue 46548

中所述

disable reCAPTCHA in the admin settings (admin/application_settings/reporting)

禁用后,您至少可以登录,并且re-enable the feature, this time entering a v2 key

我使用的另一种可能性:

如果您能够通过之前生成(并保存)的 GitLab ReST API - PERSONAL ACCESS TOKEN(使用 All Scopes / Full Admin 权限创建)获得访问权限,然后您可以使用该令牌通过以下 CLI 命令更新您的 reCAPTCHA 密钥:

user$ curl --request PUT --header \
       "PRIVATE-TOKEN: <PersonalAccessToken>" \
       "https://gitlab.example.com/api/v4/application/settings?recaptcha_private_key=<SecretKey>&recaptcha_site_key=<SiteKey>"

我希望这对其他人有帮助。

我也犯了同样的错误,把ReCaptcha v2 和v3 搞错了。我完全被锁在门外,没有个人访问令牌。

这个解决方案也适用于我。但是,我不建议这样做,如果您不熟悉 Postgres 甚至 GitLab 的配置,一旦您在管理面板中更新配置,您将不知道其他审计操作是否正在拦截,并且您可能会破坏其他东西。

此解决方案只是通过 gitlabhq_production 数据库更新 GitLab 的应用程序设置。以下步骤适用于我使用 Omnibus 包安装方法的情况。如果您可以直接访问数据库,我认为应该没有太大区别。

  1. gitlab-psql -d gitlabhq_production # 登录到 GitLab 的数据库
  2. UPDATE application_settings SET login_recaptcha_protection_enabled = 'f'; # 禁用 recaptcha 登录
  3. gitlab-ctl reconfigure # 重新配置 Gitlab 实例或重启你的 Gitlab 实例。