代码之家  ›  专栏  ›  技术社区  ›  xuiqzy

更新后gitlab中通过ssh使用公钥身份验证进行克隆不起作用

  •  2
  • xuiqzy  · 技术社区  · 6 年前

    我通过arch包安装了gitlab和redis,gitlab workhorse,postgresql,nginx和tls,以及ssh访问。系统是arch主机上的arch nspawn容器。
    在为根用户在web界面中添加了我的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中建议的after upgrade命令,它没有 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独角兽正常启动。

    当我尝试通过 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 回复  |  直到 6 年前