Git clone via ssh使用http代理

来自三线的随记

对所有git clone via ssh protocol生效的代理配置

前提条件

安装了ncat 或者 socat

步骤

修改 ~/.ssh/config (windows系统也是)

Host github.com
    IdentityFile C:\Users\83588\.ssh\github_rsa
    ProxyCommand "C:\Program Files (x86)\Nmap\ncat.exe" -v --proxy-type http --proxy 127.0.0.1:8092 %h %p


如果在mac或其他系统下,ncat 不支持http proxy导致用不了的话,可以安装socat,按如下配置即可

Host github.com
# 配置通过 ncat 提供代理tunnel
# ProxyCommand /usr/local/bin/ncat -v --proxy-type http --proxy 127.0.0.1:8090 %h %p

# 配置通过 socat 提供代理tunnel
ProxyCommand /usr/local/bin/socat - PROXY:127.0.0.1:%h:%p,proxyport=8090

# 配置默认免密认证key
# IdentityFile /Users/sanxian/.ssh/github-private-key


配置完毕后使用 git clone [email protected]:******.git 即可看到效果

其他 git repo (gitlab / gogs / gitea )管理站点同理配置

Other tips

查看ssh-key 公钥SHA256、算法等信息的命令

ssh-keygen -lf gogs_rsa.pub
256 SHA256:OKRNTP3gG9RyU9GtBY/ppgj8n3LzNvqjdFkj40+GSPU test@PC-test (ED25519)