我在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的工作示例吗?
答案 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