我正在使用gitlab-shell来管理git连接,这是我的问题:
$ git push -v -u origin master
Pushing to git@git.my-srv.fr:monProjet.git
fatal: The remote end hung up unexpectedly
# tail -f /var/log/auth.log
Mar 15 15:53:12 my-srv sshd[3133]: Accepted publickey for git from my-ip port 50790 ssh2
Mar 15 15:53:12 my-srv sshd[3133]: pam_unix(sshd:session): session opened for user git by (uid=0)
Mar 15 15:53:12 my-srv sshd[3285]: Received disconnect from my-ip: 11: disconnected by user
Mar 15 15:53:12 my-srv sshd[3133]: pam_unix(sshd:session): session closed for user git
所以每个人都说这是另一个错误?!如何获得有关git / ssh网络交换的更多信息?
答案 0 :(得分:12)
我试过这个: $ ssh -vT git@git.my-srv.fr
我在日志中看到http重定向301.(我的代理服务器将http重定向到https)
我在gitlab-shell配置中更正了它,文件: /home/git/gitlab-shell/config.yml
# Url to gitlab instance. Used for api calls
gitlab_url: "https://git.my-srv.fr/"
新的错误消息是ssl证书验证失败(我的证书是自动签名的,没有第三部分的autority)
所以我修改了 /home/git/gitlab-shell/lib/gitlab_net.rb 添加这个:
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if (http.use_ssl?)
这两行之间:
http.use_ssl = (url.port == 443)
http.verify_mode = OpenSSL::SSL::VERIFY_NONE if (http.use_ssl?)
request = Net::HTTP::Get.new(url.request_uri)
就像在这个gitlab-shell关闭拉取请求(和问题)上描述一样: https://github.com/gitlabhq/gitlab-shell/pull/9
以下是原始提交内容: https://github.com/jcockhren/gitlab-shell/commit/846ee24697f386cd9fcbc4ab1a7fb8ae1ccb46ee
答案 1 :(得分:5)
从版本5.4开始,您可以在 gitlab-shell / config.yml
上进行编辑self_signed_cert:true
答案 2 :(得分:4)
修改gitlab-shell的config.yml以指向正确的URL为我修复它(虽然我正在使用git @ ..)
https://github.com/gitlabhq/gitlab-shell/issues/65
gitlab-shell的config.yml应正确指向URL。就我而言,它是http://git.domain.com:8080/。
答案 3 :(得分:1)
我在gitlab安装上有完全相同的行为。在我的情况下,这是ssl证书的问题。这很难理解,因为:
https://gitlab.example.com ==> padlock shows up, everything seems OK
openssl s_client -connect ==> Verify return code: 21 (unable to verify...
由于gitlab使用openssl来验证ssl连接,因此当openssl抱怨时它会退出致命。通过粘贴:
为我的服务器gitlab.example.com创建一个“正确”的证书来解决这个问题ROOT-issuers-cert
Intermediate-cert
cert-for-example.com
成一个文本文件。
答案 4 :(得分:0)
如果有人来这个帖子就像我在搜索错误那样..
当git无法访问gitlab webserver时,很明显错误到了。对我来说,这是我在nginx上使用的http用户身份验证。删除后,错误消失了。