#git #amazon-ec2
#git #amazon-ec2
Вопрос:
Я пытаюсь разместить пустой репозиторий git на сервере Ubuntu, работающем на Amazon EC2. Сложность, с которой я сталкиваюсь, заключается в том, чтобы заставить git клонировать репозиторий с моего локального компьютера.
Когда я пытаюсь:
git clone git@ec2-blah.compute-1.amazonaws.com:/opt/git/project.git
Я получаю:
Cloning into project...
Unable to open connection:
Host does not existfatal: The remote end hung up unexpectedly
Тем не менее, у меня нет никаких трудностей с подключением по ssh к тому же серверу. Например, следующее работает нормально:
ssh git@ec2-blah.compute-1.amazonaws.com
Я думал, что если это работает, то мои ключи соответствующим образом настроены на клиенте и на сервере. Следовательно, команда git clone также должна работать.
Но нет.
Я исследовал и попробовал несколько вариантов, но у меня просто есть подозрение, что мне не хватает чего-то очень простого.
Ответ №1:
Убедитесь, что git выполняет то, что вы думаете, а затем попробуйте точную команду, которую git использует для связи с удаленным сервером.
Выполнить GIT_TRACE=1 git clone git@ec2-blah.compute-1.amazonaws.com:/opt/git/project.git
Git сообщит вам, какую команду он выполняет, например
trace: run_command: 'ssh' 'git@ec2-blah.compute-1.amazonaws.com' 'git-upload-pack '''/opt/git/project.git''''
Затем вы можете попробовать выполнить эту команду самостоятельно, чтобы удалить git с картинки:
ssh git@ec2-blah.compute-1.amazonaws.com git-upload-pack '/opt/git/project.git'
Хотя это кажется маловероятным, учитывая ваше сообщение об ошибке, упорядочивание команды также может дать подсказки:
strace -o/tmp/tr -s128 -f ssh git@ec2-blah.compute-1.amazonaws.com git-upload-pack '/opt/git/project.git'
Сообщите об отладочной информации, указанной выше, если проблемы все еще существуют.
Комментарии:
1. Спасибо за помощь в отладке. Это натолкнуло меня на несколько идей. Я не могу объяснить почему, но обновление моей версии msysgit 1.7.3.1 preview до 1.7.4 preview, казалось, решило проблему. Я надеялся на что-то более понятное, чем это, но вот оно.
Ответ №2:
Интересно. У меня возникла аналогичная проблема при попытке клонирования из внешнего источника GIT на хост EC2. У меня все заработало, используя некоторые из вышеперечисленных способов.
Произошел сбой с:
[ec2-user@*.*.*. mediagoblin]$ sudo git clone git://gitorious.org/mediagoblin/mediagoblin.git
Cloning into mediagoblin...
gitorious.org[0: 87.238.52.168]: errno=Connection timed out
gitorious.org[0: 2a02:c0:1014::1]: errno=Network is unreachable
fatal: unable to connect a socket (Network is unreachable)
Затем я попытался заменить git://
на ssh://
и получил:
sudo git clone ssh://gitorious.org/mediagoblin/mediagoblin.git
Cloning into mediagoblin...
The authenticity of host 'gitorious.org (87.238.52.168)' can't be established.
RSA key fingerprint is *:*:*:*:*:**:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'gitorious.org,87.238.52.168' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Затем я выполнил исходный git://
запрос, и он сработал.
Я надеюсь, что это поможет.
Ответ №3:
Возможно, учетная запись git не имеет доступа на чтение / запись к этому репозиторию / ветке.
Комментарии:
1. В процессе проверки вашего предложения. Но вам нужно больше, чем доступ на чтение для клона?
Ответ №4:
Git использует порт 9418. Открыто ли это в вашем экземпляре?
Комментарии:
1. Действительно? Я думал, что git работает по протоколу ssh (порт 22), что я и пытался сделать. У меня открыты порты 80 и 22. Я не использую сервер git (gitosis?).
2. Единственным протоколом git / демоном git является 9418
Ответ №5:
Попробуйте добавить ssh: // к удаленному адресу. Мне никогда не удавалось заставить git стабильно работать без него.
git clone ssh://git@ec2-blah.compute-1.amazonaws.com/opt/git/project.git