首页 > 解决方案 > 如何配置系统通过 ssh 反向隧道/代理使用 git?

问题描述

环境: 我的本地主机可以访问我的 VPN。我的远程主机需要通过我的本地主机访问 VPN。我只能从本地主机 ssh 到远程主机。我已经设置了一个隧道来访问我的远程主机上的外壳。

我使用密钥从本地主机到远程主机的 ssh 设置,没有密码提示。

这允许我从本地主机运行 VNC 来访问我的远程主机。

问题: 我的远程主机有 git repos 需要更新,但通过本地主机的 VPN。即,当我在远程主机上执行git pull命令时,它将通过从本地主机创建的隧道访问 VPN git 存储库。

我已经阅读过ssh -Rssh .config 有一个 ProxyCommand,但是把它放在一起是一团糟。

标签: gitsshproxyssh-tunnel

解决方案


您可以RemoteForward在您的.ssh/config

HOST remoteHost
   hostname remotehost.somewhere.com
   user <username>
   RemoteForward 127.0.0.1:2022 <VPN-GitHost>:22

这会将端口 22 从您的 VPN 发布到您的 remoteHost,但将端口号更改为 2022。

在您的远程主机上,您可以通过 ssh(以及 git)使用该端口,例如

ssh myuser@localhost -p 2022

或者编辑远程主机上的 .ssh/config

HOST VPN-gitHost
   hostname localhost
   port 2022

那么您git pull应该无需任何修改即可工作


推荐阅读