gitlab-shell - > git push -u origin master - >致命:远程端意外挂断

100*_*100 5 git ssh gitlab

我正在使用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
Run Code Online (Sandbox Code Playgroud)
# 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
Run Code Online (Sandbox Code Playgroud)

所以每个人都说这是另一个错误?!我怎样才能获得有关git/ssh网络交换的更多信息?

100*_*100 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/"
Run Code Online (Sandbox Code Playgroud)

新的错误消息是ssl证书验证失败(我的证书是自动签名的,没有第三部分autority)

所以我修改了 /home/git/gitlab-shell/lib/gitlab_net.rb 来添加这个:

http.verify_mode = OpenSSL::SSL::VERIFY_NONE if (http.use_ssl?)
Run Code Online (Sandbox Code Playgroud)

这些行之间:

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)
Run Code Online (Sandbox Code Playgroud)

就像在这个gitlab-shell关闭拉取请求(和问题)上描述一样:https: //github.com/gitlabhq/gitlab-shell/pull/9

这是最初的提交内容:https: //github.com/jcockhren/gitlab-shell/commit/846ee24697f386cd9fcbc4ab1a7fb8ae1ccb46ee


Oro*_*ruk 5

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

self_signed_cert:true