Невозможно клонировать любой репозиторий по протоколу git (используя git clone git://)

У меня Ubuntu 16.04. Я не могу клонировать какой-либо репозиторий (например, git://yoctoproject.org/poky; git://git.gnome.org/jhbuild; git://git.gnome.org/rhythmbox и т. д.) по протоколу git.

Я сгенерировал открытый и закрытый ключи ssh с помощью ssh-keygen и поместил их в папку ~/.ssh/.

Он работает с загрузкой репозиториев git по протоколу https (например, https://github.com/mozilla/gecko-dev< /а>). Я попробовал вариант «использовать https:// вместо git://» для клонирования вышеуказанных репозиториев git, но это не сработало. Проверял с разными подключениями к интернету (домашний и рабочий), удалял прокси, но не помогло.

Ошибки, которые я получаю при попытке клонирования: - фатальная: невозможно подключиться к "hostname"; errno=тайм-аут соединения / нет ошибок. - ssh: подключиться к хосту "имя хоста" порт 22: время ожидания подключения истекло Пожалуйста, убедитесь, что у вас есть правильные права доступа и репозиторий существует.

Моя идея заключается в том, что каким-то образом для каждого репозитория git:// мне нужно добавить свой публичный ключ в папку author_keys хоста, но я не знаю, как это сделать (и является ли это решением моей проблемы). Может ли кто-нибудь дать мне рабочий пример того, как клонировать репо с протоколом git://?


person Carlo Benussi    schedule 30.08.2016    source источник
comment
Вы уверены, что используете (или должны использовать) протокол git://? Согласно документации, git protocal не имеет нет аутентификации и используется очень редко. Скорее всего, вам следует использовать протокол SSH. В этом случае некоторые серверные программы также могут налагать ограничения (например, gitlab или github, которые требуют всегда использовать имя пользователя git).   -  person Martin Nyolt    schedule 31.08.2016
comment
Если вы используете протокол SSH, вам, вероятно, также придется указать, какой закрытый ключ использовать в файле ~/.ssh/config. (подсказка: HostName xyz - IdentityFile abc_rsa)   -  person Martin Nyolt    schedule 31.08.2016


Ответы (2)


Моя идея заключается в том, что каким-то образом для каждого репозитория git:// мне нужно добавить свой публичный ключ в папку author_keys хоста, но я не знаю, как это сделать (и является ли это решением моей проблемы).

Есть ли у вас доступ к машине, на которой работает репозиторий? Если да, вы можете использовать следующую команду, чтобы скопировать свой открытый ключ на сервер:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Если у вас нет доступа к машине, вы можете отправить (по электронной почте) свой открытый ключ администратору.

Может ли кто-нибудь дать мне рабочий пример того, как клонировать репо с протоколом git://?

Когда у вас есть доступ к репозиторию, используйте это:

git clone [email protected]:/opt/git/repository.git
person Community    schedule 30.08.2016
comment
Ошибка выглядит так, будто у пользователя нет доступа к репозиторию. @Philj0 прав. - person krishna_mee2004; 30.08.2016

У меня была та же проблема, когда я мог клонировать любое репо по протоколу 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
person Sachin Mokashi    schedule 03.11.2020