
通过.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的结果,先失败,然后成功:

请问大家是否有解决思路?
1 defunct9 Mar 29, 2022 为啥不直接用 git config --global http.proxy <address>:<port> 而非要用 nc 去转一下呢 |
3 xiaopanzi OP @defunct9 看了一些资料,设置 http.proxy 对 git 协议无效,只能支持 http/https ,即不支持 SSH URLs (i.e., [email protected]:<user name>/<project name>.git) |
4 learningman Mar 29, 2022 @shawndev #2 https proxy 也是直接转发 tcp 的,不会 mitm 吧 |
5 ysc3839 Mar 29, 2022 via Android @shawndev http/https proxy 对于非 http 协议都不会进行 MITM ,会使用 CONNECT 请求直接连接目标服务器,传输的是 TLS 加密后的数据。 |
6 Kasumi20 Mar 29, 2022 $ cat .ssh/config ProxyCommand nc -x 127.0.0.1:1108 %h %p 我就一行命令, 从来没发生过问题 |
7 ncepuzs Mar 29, 2022 @defunct9 这种代理设置对于 [email protected] 连接方式无效吧 @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 连上开发机 |
8 ncepuzs Mar 29, 2022 |
9 chenxytw Mar 29, 2022 dns 过代理了么? |
10 zxw567 Mar 29, 2022 这和隔壁帖子说的情况貌似一模一样,端口换成 443 应该就行了。梯子对 22 端口做了限制 t/843383#reply47 |
11 shawndev Mar 30, 2022 @ysc3839 受教了,考虑到 git config http.proxy 指向电脑端配置的基于规则的代理,并设置类似于自动移除请求参数 affiliate 的规则。 讨教一下。正常情况下 HTTPS 只能通过 SNI 获取到域名,而获取不到参数,那么此处是否算发生了 MitM ? |
13 shawndev Mar 30, 2022 |