需要在防火墙后面使用 git:尝试 ssh 隧道
Posted
技术标签:
【中文标题】需要在防火墙后面使用 git:尝试 ssh 隧道【英文标题】:need to use git behind firewall: trying ssh tunneling 【发布时间】:2011-02-01 17:53:04 【问题描述】:我正在尝试使用 ssh 端口转发来破解公司防火墙:
ssh git@GIT_SERVER -L9418:GIT_SERVER:9418
我在另一个终端运行
git clone git://localhost:repositories/project.git
但我收到以下错误:
在 /Users/aboxer/tmp/glucosia/.git/ 中初始化空的 Git 存储库
致命:无法查找本地主机(端口存储库)(提供节点名或服务名,或未知)
谢谢!
【问题讨论】:
这个更适合serverfault。 @Ikke:事实上,答案(我相信)完全与 git url 语法有关,并且 *** 已经被确立为关于如何使用 git 的问题的地方。跨度> 后来我意识到了。我以为是关于如何设置防火墙的。 【参考方案1】:我很确定您的问题(或至少是导致此特定错误的问题)在这里:
git clone git://localhost:repositories/project.git
如果您查看 man git push 中的 list of url notations,您会看到相关示例:
git://host.xz[:port]/path/to/repo.git/
使用冒号,您使用“存储库”作为端口名称,而 git(可以理解)在连接到本地主机上的端口存储库时遇到问题!您正在寻找的是:
git://localhost/path/to/repositories/project.git
或许
git://localhost/~user/repositories/project.git
编辑:
我可能从一开始就应该这么说,但我实际上想不出你需要在 git 中使用 SSH 隧道的原因。它的默认传输协议是 ssh; git 协议实际上只存在于允许从没有帐户的情况下获取公共存储库。如果你可以通过 SSH 连接到存储库所在的机器,你可以通过 ssh 获取:
git clone ssh://[user@]host.xz/path/to/repo.git
git clone ssh://[user@]host.xz/~/path/to/repo.git
git clone ssh://[user@]host.xz/~user/path/to/repo.git
【讨论】:
是的,有趣的是,当我不在防火墙后面时,命令 git clone git://GIT_SERVER:repositories/project.git 工作正常,但 git clone git://GIT_SERVER/ repositories/project.git 没有 @Jacko:我认为你的意思是在这里删除冒号没有帮助?另外,你有什么理由不能简单地使用git clone ssh://GIT_SERVER/path/to/repositories/project.git
? Git 的默认传输协议是 ssh...
谢谢,杰弗罗米。如您的编辑中所述,通过 ssh 获取工作正常。
传奇,等着它... dary。
ssh 隧道是通过防火墙所必需的,对吧?例如,如果 git repo 位于我无法“正常”访问但只能通过 ssh 访问的服务器上,那么我不需要通过隧道访问该服务器上的 git 吗? (这是我目前遇到的问题。)【参考方案2】:
我在这里写了一个完整的回复/指南:http://vladzloteanu.wordpress.com/2010/12/18/git-through-ssh-port-forwarding-ssh-tunneling/。
【讨论】:
【参考方案3】:Vlad Zloteanu 回答的简短版本:
设置隧道:
ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , &
克隆仓库
git clone ssh://user@localhost:2000/my_repo.git
【讨论】:
【参考方案4】:以下是对我有用的步骤。我的系统位于公司防火墙后面,并且已加入域:
需要安装第一个 npm Fiddler 也需要处于运行模式。 Fiddler 需要在启用“规则”下的“自动验证”选项下运行 通过命令安装 Git:npm 安装 git
将协议从 git 更新为 https:git config --global url.https://github.com/.insteadOfgit://github.com/
【讨论】:
以上是关于需要在防火墙后面使用 git:尝试 ssh 隧道的主要内容,如果未能解决你的问题,请参考以下文章