设置 HTTP Proxy

git config --global http.proxy http://127.0.0.1:7890

git config --global https.proxy http://127.0.0.1:7890

设置 SSH Proxy

Linux

安装软件包:openbsd-netcat(注意不是gnu-netcat

配置文件:~/.ssh/config

Host github.com
  Hostname ssh.github.com
  Port 443
  User git
  ForwardAgent yes
  ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p

Windows

Windows 下与之对应的程序是connect.exe,程序位于 Git 安装路径git/mingw64/bin/connect.exe

Host github.com
  Hostname ssh.github.com
  Port 443
  User git
  ForwardAgent yes
  ProxyCommand connect -H 127.0.0.1:7890 %h %p

补充说明

  • Host为用户显示连接的主机名(ip),Hostname为 SSH 实际解析并尝试连接的主机名(ip)

  • 为什么Hostnamessh.github.com,为什么要用443端口,SSH 默认不是22端口么?

    因为有些梯子对于22端口做了限制,要么禁止了,要么有些抽风,这时经常会遇到如下错误: kex_exchange_identification: Connection closed by remote host 所以如果22端口不畅就使用443,安全可靠

Reference