【问题标题】:how to configure system to use git via an ssh reverse tunnel / proxy?如何配置系统通过 ssh 反向隧道/代理使用 git?
【发布时间】:2021-03-07 21:16:20
【问题描述】:

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

我使用密钥从 localhost 到 remotehost 设置了 ssh,没有密码提示。

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

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

我已经阅读了关于 ssh -R 和 ssh .config 具有 ProxyCommand 的信息,但是把它放在一起是一团糟。

【问题讨论】:

    标签: git ssh proxy ssh-tunnel


    【解决方案1】:

    您可以在.ssh/config 中使用RemoteForward 选项

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

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

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

    ssh myuser@localhost -p 2022
    

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

    HOST VPN-gitHost
       hostname localhost
       port 2022
    

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

    【讨论】:

    • 杰布,这行得通!也谢谢你的解释。当我现在 git pull 时,系统会提示我输入密码。带有和不带有 ForwardAgent 的 IdentityFile 指令都不起作用。这是我的最后一块拼图。
    • 所有与 localhost 配置中使用的 ForwardAgent 一起工作。
    • @Harry 对于不同的问题,您应该提出一个新问题。评论区不适合这个
    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 2017-04-15
    • 2018-01-18
    • 2016-10-23
    • 2012-06-06
    • 2013-11-17
    • 2020-10-16
    相关资源
    最近更新 更多