如何配置系统通过 ssh 反向隧道/代理使用 git?
Posted
技术标签:
【中文标题】如何配置系统通过 ssh 反向隧道/代理使用 git?【英文标题】:how to configure system to use git via an ssh reverse tunnel / proxy? 【发布时间】:2021-03-07 21:16:20 【问题描述】:环境: 我的本地主机可以访问我的 ***。 我的远程主机需要通过我的本地主机访问 ***。 我只能从本地主机 ssh 到远程主机。我已经设置了一个隧道来访问我的远程主机上的 shell。
我使用密钥从 localhost 到 remotehost 设置了 ssh,没有密码提示。
这允许我从本地主机运行 VNC 以访问我的远程主机。
问题:
我的远程主机有 git repos 需要更新,但是通过本地主机的 ***。即当我在远程主机上执行git pull
命令时,它将通过从本地主机创建的隧道访问 *** git 存储库。
我已经阅读了关于 ssh -R
和 ssh .config 具有 ProxyCommand 的信息,但是把它放在一起是一团糟。
【问题讨论】:
【参考方案1】:您可以在.ssh/config
中使用RemoteForward
选项
HOST remoteHost
hostname remotehost.somewhere.com
user <username>
RemoteForward 127.0.0.1:2022 <***-GitHost>:22
这会将端口 22 从您的 *** 发布到您的远程主机,但将端口号更改为 2022。
在您的远程主机上,您可以通过 ssh(以及 git)使用该端口,例如
ssh myuser@localhost -p 2022
或者编辑远程主机上的 .ssh/config
HOST ***-gitHost
hostname localhost
port 2022
那么您的git pull
应该无需任何修改即可工作
【讨论】:
杰布,这行得通!也谢谢你的解释。当我现在 git pull 时,系统会提示我输入密码。带有和不带有 ForwardAgent 的 IdentityFile 指令都不起作用。这是我的最后一块拼图。 所有与 localhost 配置中使用的 ForwardAgent 一起工作。 @Harry 对于不同的问题,您应该提出一个新问题。评论区不适合这个以上是关于如何配置系统通过 ssh 反向隧道/代理使用 git?的主要内容,如果未能解决你的问题,请参考以下文章
将 ssh 隧道反向访问公司防火墙后面的系统的最佳方法是啥?