更新后在Gitlab中使用ssh进行克隆并使用公钥身份验证无法正常工作

时间:2018-08-07 17:11:36

标签: git gitlab updates ssh-keys archlinux

我根据Arch Wiki页面通过Arch软件包安装了带有Redis,gitlab-workhorse,postgresql,nginx和TLS以及ssh访问的Gitlab。该系统是Arch主机上的Arch nspawn容器。
在将Web界面上的root用户添加到ssh公钥后,通过git进行克隆是可行的,但是通过具有公钥身份验证的https进行克隆却无法完成,通过https进行克隆的公共密钥身份验证也无法进行,但是使用密码进行https克隆可以进行。
现在,升级后,甚至无法通过具有公共密钥身份验证的git进行克隆!

gitlab从11.1.3-1版本升级到11.1.4-1后,它说:
directory permissions differ on /var/lib/gitlab/ filesystem: 711 package: 750 我修好了。
我还执行了软件包升级su - gitlab -s /bin/sh -c "cd '/usr/share/webapps/gitlab'; EXECJS_RUNTIME=Disabled bundle-2.3 exec rake db:migrate RAILS_ENV=production"之后显示的推荐命令,以及ArchWiki中建议的升级后命令,该命令错过了EXECJS_RUNTIME=Disabled,它是:su - gitlab -s /bin/sh -c "cd '/usr/share/webapps/gitlab'; bundle-2.3 exec rake db:migrate RAILS_ENV=production"
两个命令均成功。

之后,重启gitlab服务失败并显示
gitlab-unicorn.service: Failed at step USER spawning /usr/bin/bundle-2.3: No such process gitlab-unicorn.service: Main process exited, code=exited, status=217/USER
PostgreSQL也有类似的错误:
postgresql.service: Failed at step USER spawning /usr/bin/postgresql-check-db-dir: No such process Aug 07 16:26:28 adornisventures systemd[1]: postgresql.service: Control process exited, code=exited status=217

在重新启动服务后,网站和/或存储库网站甚至无法正常工作(503和404错误),Web功能再次开始工作,并且postgresql和gitlab-unicorn正常启动。

当我尝试通过git clone gitlab@domain.tld:root/privateproject.git克隆私有或内部项目时,错误是:

Cloning into 'privateproject'...
/usr/share/webapps/gitlab-shell/lib/gitlab_net.rb:168:in `parse_who': who='-c/usr/share/webapps/gitlab-shell/bin/gitlab-shell key-3' is invalid! (ArgumentError)
    from /usr/share/webapps/gitlab-shell/lib/gitlab_shell.rb:25:in `initialize'
    from /usr/share/webapps/gitlab-shell/bin/gitlab-shell:20:in `new'
    from /usr/share/webapps/gitlab-shell/bin/gitlab-shell:20:in `<main>'
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我的密钥在/var/lib/gitlab/.ssh/authorized_keys的末尾:
command="/usr/share/webapps/gitlab-shell/bin/gitlab-shell key-3",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 public_key_here 该文件中似乎有些部分用散列隔开,并且上面还有其他行中有key-3,但是删除它们并重新启动gitlab服务并不会改变任何内容。 尝试克隆存储库后,/var/log/gitlab/中的所有日志都没有任何新条目。

如何进一步调试此问题?

0 个答案:

没有答案