本文是在Windows下已经安装Git为前提
在网上可以找到让git clone走socks5的方法
但是都是讲用nc
命令,windows没有而且还不想安装怎么办?当然是有办法的~
简单来说就是在~/.ssh/config
中添加下面这样的配置即可
Host github.com
ProxyCommand connect -S 127.0.0.1:1080 %h %p
然后,在git bash中使用git clone xxx的时候,就会走代理
这个方法最早在 https://www.v2ex.com/t/423121 看到
但是我尝试也这样配置,然后试图让ssh也走socks5,但是各种写法都试了,没用.exe
最终发现connect
应该写成完整路径才行
在 https://serverfault.com/questions/956613/windows-10-ssh-proxycommand-posix-spawn-no-such-file-or-directory 下面的回答中,提到ssh要用完整路径
于是我把ssh写了完成路径,然后折腾了很久都不行
因为里面提到的是ssh完整路径,就被误导了
最终意识到应该是connect
写完整路径hhh,折腾了好几个小时
现在~/.ssh/config
中增加下面的配置
- 其中
id_rsa
这个可以通过ssh-keygen
生成,可以自定义路径和文件名,记得将公钥上传服务端 remoteserver
就是个别名,这个配置好了之后,直接ssh remoteserver
就可以连接了User
就是用户名,Port
就是ssh的端口,可以不写,默认是22ProxyCommand
就是下面的形式了,最最重要的就是connect.exe
必须是完整路径,这个exe在git的安装目录下
Host remoteserver
HostName 1.2.3.4
User root
Port 22
IdentityFile ~/.ssh/id_rsa
ProxyCommand C:\Program Files\Git\mingw64\bin\connect.exe -S 127.0.0.1:1080 %h %p
然后给Terminal添加一个配置,现在直接一键连接~
{
// ssh profile.
"guid": "{8caa0dad-35be-5776-a8ff-afceeeaa6101}",
"name": "remoteserver",
"commandline": "cmd.exe /K ssh remoteserver",
"hidden": false
},
补充一点,connect.exe的全路径,git bash的配置的话,需要加引号。