我正在尝试在全新干净的服务器上设置 gitlab (6.5.1)。一切似乎都正常,但 git 无法推送到任何项目。按照新创建的项目页面中的命令并通过 ssh 推送到远程给出:
$ git push -u origin master
fatal: Could not read from remote repository.
Please make sure you have the correct access
rights and the repository exists.
这似乎是一个相当普遍的问题。不幸的是,它似乎有许多潜在的原因,但似乎没有一个是匹配的。从旧版本的issue 3424 和其他各种在线资源中,我看到并检查了以下建议:
剩余的 ssh 密钥
这是一个干净的设置,没有剩菜。我的密钥已正确添加到授权密钥文件中,并且是唯一列出的密钥。
使用调试日志运行 ssh 会显示与 Ruby 环境变量相关的错误。
我的干净。SSH 调试显示连接成功。关于身份验证握手的一切都正常,那么这是输出的结尾:
debug1: Sending command: git-receive-pack 'username/reponame.git' debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK
gitlab-shell 环境的问题。
与上面许多具有相同错误消息的其他人不同,我的 gitlab-shell 检查脚本返回了一份干净的健康单:
% sudo -u gitlab -H ~gitlab/gitlab-shell/bin/check Check GitLab API access: OK Check directories and files: /var/lib/gitlab/repositories: OK /var/lib/gitlab/.ssh/authorized_keys: OK Test redis-cli executable: redis-cli 2.8.5 Send ping to redis server: PONG
重启 {unicorn,sidekiq,redis}
重新启动一项或多项服务可以清除此问题的报告似乎不适用于此处。这不是重新引导守护程序修复的间歇性问题。
回购没有物理创建
但它是。每次第一次,每次
~gitlab/repositories/username/reponame.git
都会创建裸 git repo 并且似乎具有正确的权限。Gitlab-shell 无法与 API 服务器通信,因为 A) DNS 问题,B) 错误的 ip/port/interface 绑定 C) 没有/有斜杠。
检查脚本说 API 访问很好。
我没有运行 nginx,因此与此相关的默认 ip 绑定问题是 n/a。
我已经尝试了
*:8080
和127.0.0.1:8080
中的监听值unicorn.yml
。除此之外,我尝试了 localhost、127.0.0.1 和完全限定域名(DNS 解析良好)的各种迭代,无论是否使用斜杠
shell.yml
都无济于事。我还尝试将其直接连接到端口 8080 上的独角兽服务器,而不是端口 80 上的 Apache SSL / 代理主机。似乎没有任何区别。我的证书不是自签名的,在浏览器上运行良好,但我还是尝试设置self_signed_cert: true
。没有什么。报告的 git 路径错误,从 gitlab 用户家添加完全限定路径。
如果 gitlab-shell 没有做一些猴子业务来纠正这个问题,这似乎是一个合法的建议,但我尝试更改
git remote add origin gitlab@server:username/reponame.git
为 `git remote add origin gitlab@server:repositories/username/reponame.git` 无济于事。同样的错误。
这似乎是建议的一连串解决方案,但似乎没有一个是正确的。注意我可以通过 http 推送。登录提示接受我的 ldap 用户名和密码并接受推送。这只是尝试使用 SSH 时的问题。仅测试 ssh 登录部分可以ssh -T gitlab@server
正常工作。
还有什么可能导致此错误?
如何在 gitlab 中调试这样的问题?中似乎没有任何相关内容~gitlab/gitlab-shell/gitlab-shell.log
。在哪里可以找到更多信息的错误消息?