我正在一台无法直接访问互联网的机器上工作,但域上的其他节点可以。这意味着我可以通过 ssh 连接到另一台机器来同步我的 git 仓库,但我无法从机器本身执行此操作。
> git clone https://git.example.com/git/myproj.git ~
fatal: unable to access 'https://git.example.com/git/myproj.git'
> ssh machine2
> git clone https://git.example.com/git/myproj.git ~
successfully cloned into '~/myproj'
我希望能够使用 来machine2
作为代理连接到 git 服务器。不幸的是,machine2
没有配置为 http 代理,并且 git 服务器未配置为使用git://
或ssh://
协议。有没有办法可以用作machine2
代理来与 建立 https 连接git.example.com
?请注意,我没有 sudo 权限machine2
。
更新:
一个复杂的因素似乎是我使用私钥来与 HTTPS 服务器进行身份验证。在我的文件中,~/.gitconfig
我有以下几行
[http]
sslkey = /home/nispio/.ssl/example.key.pem
sslkey = /home/nispio/.ssl/example.crt.pem
sslcainfo = /home/nispio/.ssl/example-ca.crt.pem
所有这些都配置正确,事实证明我可以machine2
使用这些凭据成功克隆存储库。尝试使用一个简单的 socks 服务器作为由@IporSircer 提出然而,似乎没有正确转发我的凭证。
答案1
使用 ssh socks 服务器:
ssh -D 1080 machine2
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
git clone https://git.example.com/git/myproj.git ~