Git 偶发性(大概率)报错: kex_exchange_identification: Connection closed by remote host

2022-03-29 20:49:29 +08:00
 xiaopanzi

通过.ssh/config配置了代理:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519
    ProxyCommand nc -X 5 -x 127.0.0.1:7890 %h %p% 

但是偶发性且大概率在git pull/push的时候会报错,但重复多次又能成功。排除是配置问题,否则不可能会偶尔成功。所以是我梯子问题?下面是连续两次git push的结果,先失败,然后成功:

图片: https://ibb.co/qBWTzym

请问大家是否有解决思路?

966 次点击
所在节点    git
14 条回复
defunct9
2022-03-29 20:54:17 +08:00
为啥不直接用
git config --global http.proxy <address>:<port>

而非要用 nc 去转一下呢
shawndev
2022-03-29 20:59:54 +08:00
@defunct9 因为在意 ssh 的安全性? https proxy 毕竟相当于套了 mitm
xiaopanzi
2022-03-29 21:01:46 +08:00
@defunct9 看了一些资料,设置 http.proxy 对 git 协议无效,只能支持 http/https ,即不支持 SSH URLs (i.e., git@github.com:<user name>/<project name>.git)
learningman
2022-03-29 21:30:47 +08:00
@shawndev #2 https proxy 也是直接转发 tcp 的,不会 mitm 吧
ysc3839
2022-03-29 21:31:57 +08:00
@shawndev http/https proxy 对于非 http 协议都不会进行 MITM ,会使用 CONNECT 请求直接连接目标服务器,传输的是 TLS 加密后的数据。
Kasumi20
2022-03-29 21:37:03 +08:00
$ cat .ssh/config
ProxyCommand nc -x 127.0.0.1:1108 %h %p

我就一行命令, 从来没发生过问题
ncepuzs
2022-03-29 22:07:33 +08:00
@defunct9 这种代理设置对于 git@github.com 连接方式无效吧

@Kasumi20 你这不过是默认所有连接都走代理了

@xiaopanzi 可以试试 ssh.github.com

```
Host ssh_github
HostName ssh.github.com
# Port 443
User git
ProxyCommand connect -S 127.0.0.1:1080 -a none %h %p
```
Host: 可以自由设置,相当于 alias ,例如可以直接 ssh dev 连上开发机
ncepuzs
2022-03-29 22:11:43 +08:00
靠,怎么缩进都没了,补个图。
如有不对的地方,请大佬指出。

chenxytw
2022-03-29 22:42:33 +08:00
dns 过代理了么?
zxw567
2022-03-29 22:56:40 +08:00
这和隔壁帖子说的情况貌似一模一样,端口换成 443 应该就行了。梯子对 22 端口做了限制
https://www.v2ex.com/t/843383#reply47
shawndev
2022-03-30 09:48:58 +08:00
@ysc3839 受教了,考虑到 git config http.proxy 指向电脑端配置的基于规则的代理,并设置类似于自动移除请求参数 affiliate 的规则。

讨教一下。正常情况下 HTTPS 只能通过 SNI 获取到域名,而获取不到参数,那么此处是否算发生了 MitM ?
ysc3839
2022-03-30 10:41:43 +08:00
@shawndev https 修改不了请求参数,没有 MITM
shawndev
2022-03-30 10:44:51 +08:00
ysc3839
2022-03-30 11:21:18 +08:00
@shawndev 简单看了下,里面并没有提到 https MITM

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/843706

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX