无法在git协议下克隆任何存储库(使用git clone git://)

时间:2016-08-30 09:25:00

标签: git github ssh git-clone

我在Ubuntu 16.04下。我无法在git协议下克隆任何存储库(即git://yoctoproject.org/poky; git://git.gnome.org/jhbuild; git://git.gnome.org/rhythmbox等)。

我使用ssh-keygen生成了公共和私有ssh密钥,并将它们放在〜/ .ssh /文件夹中。

它适用于在https协议下下载git存储库(如https://github.com/mozilla/gecko-dev)。我已经尝试使用选项“使用https://而不是git://”来克隆上面的git repos,但它没有用。我检查了不同的互联网连接(家庭和工作),删除了代理,但它没有工作。

我尝试克隆时遇到的错误是:   - 致命:无法连接到“主机名”; errno =连接超时/无错误。   - ssh:连接到主机“hostname”端口22:连接超时    请确保您拥有正确的访问权限并且存储库已存在。

我的想法是,在每个git://存储库的某种方式我需要将我的公钥添加到主机authorized_keys文件夹,但我不知道如何做(如果它是我的问题的解决方案) 。有人可以给我一个关于如何使用git:// protocol克隆repo的工作示例吗?

2 个答案:

答案 0 :(得分:0)

  

我的想法是,在每个git://存储库的某种方式我需要将我的公钥添加到主机authorized_keys文件夹,但我不知道如何做到这一点   (如果它是我的问题的解决方案)。

您是否可以访问运行存储库的计算机?如果是,您可以使用以下命令将公钥复制到服务器:

cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

如果您无法访问本机,则可以将您的公钥发送(发送)给管理员。

  

有人可以给我一个关于如何使用git:// protocol克隆回购的实例吗?

当您有权访问存储库时,请使用:

git clone git@123.45.56.78:/opt/git/repository.git

答案 1 :(得分:0)

我遇到了同样的问题,即我能够根据ssh://http://协议克隆任何回购协议,但是只有在使用git://协议时才会失败。我可以克服这个问题。您需要设置gitproxy。要求是任何双向中继工具,例如socat

在家庭环境中创建一个gitproxy文件。在声明您的PROXY

后添加此行
exec socat STDIO SOCKS4:$PROXY:$1:$2

在〜/ .gitconfig [core]标签中添加以下行:

gitproxy = /home/<linux username>/bin/gitproxy

使其成为可执行文件:

chmod +x ~/.gitproxy