5

我正在使用 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 网络交换的更多信息?

4

5 回答 5

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 证书验证失败(我的证书是自动签名的,没有第三部分授权)

所以我修改 了 /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

于 2013-03-19T15:45:58.500 回答
5

从 5.4 版本开始,您可以在gitlab-shell/config.yml上进行编辑

self_signed_cert:真

于 2013-09-02T09:48:24.490 回答
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/

于 2013-08-16T13:56:06.473 回答
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

成一个文本文件。

于 2013-05-08T19:32:36.187 回答
0

万一有人像我一样来到这个线程搜索错误..

很明显,当 git 无法访问 gitlab 网络服务器时,错误就来了。对我来说,这是我在 nginx 上进行的 http 用户身份验证。删除后,错误消失了。

于 2014-04-07T17:54:16.040 回答