通过.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 2022-03-29 20:54:17 +08:00
为啥不直接用
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 2022-03-29 21:30:47 +08:00
@shawndev #2 https proxy 也是直接转发 tcp 的,不会 mitm 吧
|
5
ysc3839 2022-03-29 21:31:57 +08:00 via Android
@shawndev http/https proxy 对于非 http 协议都不会进行 MITM ,会使用 CONNECT 请求直接连接目标服务器,传输的是 TLS 加密后的数据。
|
6
Kasumi20 2022-03-29 21:37:03 +08:00
$ cat .ssh/config
ProxyCommand nc -x 127.0.0.1:1108 %h %p 我就一行命令, 从来没发生过问题 |
7
ncepuzs 2022-03-29 22:07:33 +08:00
@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 2022-03-29 22:11:43 +08:00
|
9
chenxytw 2022-03-29 22:42:33 +08:00
dns 过代理了么?
|
10
zxw567 2022-03-29 22:56:40 +08:00
这和隔壁帖子说的情况貌似一模一样,端口换成 443 应该就行了。梯子对 22 端口做了限制
https://www.v2ex.com/t/843383#reply47 |
11
shawndev 2022-03-30 09:48:58 +08:00
@ysc3839 受教了,考虑到 git config http.proxy 指向电脑端配置的基于规则的代理,并设置类似于自动移除请求参数 affiliate 的规则。
讨教一下。正常情况下 HTTPS 只能通过 SNI 获取到域名,而获取不到参数,那么此处是否算发生了 MitM ? |
13
shawndev 2022-03-30 10:44:51 +08:00
|