问题

在代理环境中使用 git 的 SSH 传输出现问题。

解决方案

使用 socat 代理指定主机(域名)的流量。

安装

以 Ubuntu 为例,可以直接使用apt安装

sudo apt install socat

配置

编辑用户目录~/中的.ssh/config文件,

Host=foo.server.com
ProxyCommand=socat - PROXY:your.proxy.ip:%h:%p,proxyport=3128,proxyauth=user:pwd

说明

使用 SSH 的 git 命令可以正常运行。

git clone ssh://foo.server.com/var/git/myrepo.git