【问题标题】:need to use git behind firewall: trying ssh tunneling需要在防火墙后面使用 git:尝试 ssh 隧道
【发布时间】: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 语法有关,并且 stackoverflow 已经被确立为关于如何使用 git 的问题的地方。跨度>
  • 后来我意识到了。我以为是关于如何设置防火墙的。

标签: git ssh portforwarding tunnel


【解决方案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】:

【讨论】:

    【解决方案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/

      【讨论】:

        猜你喜欢
        • 2016-07-27
        • 2012-12-26
        • 1970-01-01
        • 2013-05-31
        • 1970-01-01
        • 2013-10-16
        • 1970-01-01
        • 2012-02-06
        • 1970-01-01
        相关资源
        最近更新 更多