SSH 代理与 git 服务器建立 HTTPS 连接

SSH 代理与 git 服务器建立 HTTPS 连接

我正在一台无法直接访问互联网的机器上工作,但域上的其他节点可以。这意味着我可以通过 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 ~

相关内容