Gitlab CE 不向 authorized_keys 添加 Public 键

Gitlab CE Doesn't Add a Public Key to authorized_keys

我刚刚在 CentOS 7 中安装了最新的 Omnibus Gitlab。我已经将我的 public 密钥添加到我的帐户,但是每次我尝试使用 ssh 连接时 gitlab 一直提示我输入密码,比如 ssh git@mygitlab.com。 git 主文件夹是 /var/opt/gitlab

以下是我做过的各种事情:

虽然我不知道根本原因是什么,但我已经解决了一半的问题。我查看了此页面文档。https://docs.gitlab.com/ee/administration/raketasks/maintenance.html#rebuild-authorized_keys-fileabout 使用此命令重建 authorized_keys:sudo gitlab-rake gitlab:shell:setup,gitlab 重建密钥并在 .ssh 文件夹中创建了 authorized_keys.lock .现在,我可以 ssh -T git@mygitlab.com,虽然用户名已更改为 Anonymous,但现在我面临另一个问题。当我尝试克隆或推送时,gitlab 说找不到该项目。 :( 。我想我得再找找看。

编辑:幸运的是,我设法通过创建一个新用户解决了这个问题,为该用户添加了 ssh 密钥并再次 运行 gitlab-rake gitlab:shell:setup 使 Gitlab 添加了 public authorized_keys 文件的键。

Gitlab 真是一团糟,我看到很多关于这个 authorized_keys 和很久以前的 ssh 的问题(5 - 6 年前,仍然是类似的问题),现在仍然发生。

您可能需要配置 Fast lookup of authorized SSH keys in the database

这应该可以解决您面临的问题,并且只要有人在 GitLab 中添加或删除 SSH/deploy 密钥,就不需要手动重建 authorized_keys 文件。

编辑:这个错误是在 GitLab 12.9 中引入的。是confirmed,应该会在12.9.1补丁发布时解决,预计很快就会发布。