3

我正在尝试在 AWS Windows Server 实例上托管我自己的私有 Git 设置。

这是我的设置:

  • OpenSSH 通过 cygwin 安装
    • 这行得通。我已成功通过 SSH 连接到我的服务器
  • 通过 cygwin 安装的 Git 守护进程
    • 这似乎有效。我已经使用 Git bash 在本地成功创建和克隆了 repos
  • 传出防火墙规则允许端口 22 和 9418 上的 TCP
  • 传入防火墙规则允许端口 22 和 9418 上的 TCP
    • 我不确定这是必需的。

据我所知,这就是我所需要的,除了我无法克隆回购。

我正在远程使用这个命令:

git clone ssh://myUser@myServer.com/git/myRepo

我得到这个输出:

Clone into 'myRepo'
fatal: Could not read from the remote repository

Please make sure you have the correct access rights
and the repository exists.

myServer但是,当我通过 Git bash运行它时,完全相同的命令可以正常工作......这让我相信这是一个防火墙问题。不过,我似乎找不到需要哪个端口。

额外细节:

  • 我的仓库是使用初始化的git init --bare --shared
  • 我的 AWS Instance 的安全组(SG)有以下规则(目前用于调试)
    • 入站
      • 港口,来源:ALL 0.0.0.0/0
    • 出境
      • 港口,来源:ALL 0.0.0.0/0

有谁知道我错过了什么?

谢谢。

4

2 回答 2

1

您确定“myUser”用户有权访问/git/myRepo吗?请注意,这是相对于根目录的,而不是相对于 myUser 的主目录。

如果您希望路径相对于用户的主目录,请尝试使用 format 的克隆 url myUser@myServer.com:git/myRepo

还要确保在其中创建了一个裸仓库——/git/myRepo即,如果你ls /git/myRepo看到了,,,,,等等。HEADhooksrefsconfig

于 2013-08-29T17:56:59.787 回答
0

确保端口 9418 和 22 在您的 SG 中打开,而不仅仅是您的 Windows 防火墙。

请记住,默认 SG 设置为拒绝所有流量,因此请确保您选择SSHCreate A New Rule确保指定的 CIDR 与您的 CIDR 匹配,或者0.0.0.0/0为所有人选择。

对于您的git协议端口,custom rule使用 9418 作为 SSH 选择中指定的端口和源创建一个。

如果这不能解决问题,请仔细检查您的安全组(确保您点击了应用规则!),如果可能,请发布您的规则。SG 中的某些东西很有可能导致了这个问题。

于 2013-08-28T13:10:40.083 回答