Проблема клонирования частного репозитория GitHub на удаленный сервер - PullRequest
6 голосов
/ 13 марта 2012

Обратите внимание, что это оригинальная статья, которой я следовал вместе:
http://www.markdotto.com/2011/11/02/how-to-deploy-sites-via-github/

Чтобы дать вам представление: у нас есть частное хранилище репо под учетной записью организации. У нас есть три разработчика (включая меня), которые имеют собственные учетные записи в GitHub и имеют права администратора для частного репо.

Во время работы над проектом мы клонируем репозиторий, а затем создаем ветку 'dev'. Каждый из нас работает с собственной ветки dev и вносит изменения в ветку dev на GitHub.

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

Отсюда мы следуем приведенным выше пунктам статьи, чтобы подключиться к нашему серверу через SSH, перейдите в соответствующий каталог, где расположен наш веб-сайт, и выполните следующую команду ...

git clone git@github.com:ORGANISATION/REPO.git dev

Первая проблема, с которой мы столкнулись, - наш сервер вернул сообщение ...

Cloning into dev...
ssh: connect to host github.com port 22: Connection refused
fatal: The remote end hung up unexpectedly

... где бы я ожидал, что он попросит у нас пароль?

Итак, вместо этого мы попробовали URL-адрес HTTP ...

git clone https://USER@github.com/ORGANISATION/REPO.git dev

... вы заметите, что URL-адрес HTTP теперь использует мое собственное имя пользователя при клонировании. Я ввожу свой пароль, и он отображает Cloning into dev..., но затем отображается следующая ошибка ...

error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://Integralist@github.com/StormCreative/MoneyRepublic.com.git/info/refs
fatal: HTTP request failed

... Я не понимаю ошибку.

Так как же мы клонируем это частное хранилище на наш сервер?

Любая помощь приветствуется!

С уважением, Mark

Ответы [ 2 ]

11 голосов
/ 13 марта 2012

Первая проблема возникает из-за того, что у вас нет локального ключа rsa, связанного с вашей учетной записью на GitHub (и да, вы связываете ключ rsa с вашей учетной записью, и организация также связана с вашей учетной записью).

На локальном компьютере (или удаленном сервере), на котором вы пытаетесь клонировать хранилище, вам необходимо сгенерировать ключ rsa:

ssh-keygen -t rsa

Когда вы генерируете ключ, вы выбираете пароль и место для хранения файла id_rsa.pub, который фактически содержит ключ.

В GitHub вам нужно добавить этот ключ, точный контент id_rsa.pub, к вашим ssh-ключам на панели администрирования вашей учетной записи.

0 голосов
/ 13 марта 2012

Я не уверен, что смогу помочь вам с ошибкой, которая выглядит для меня проблемой SSL.Но я могу предложить вам другой подход.Я развертываю свой блог на своем сервере следующим образом:

  • Я создал git-репо на сервере с именем deploy.
  • Я добавил это репозитарий развертывания в качестве удаленного к моему локальномуСделки рЕПО.
  • Я помещаю изменения в этот репозиторий, когда хочу развернуть.
  • Внутри моего репозитория развертывания я настроил хук пост-получения, чтобы при каждом внесении изменений он автоматически клонировал репо на сервере в каталоге хостов Apache, который обслуживает последнюю версию моего веб-сайта.

Я могу предоставить вам суть моего пост-получения хука, если вам это нужно.Если ваш сайт находится в рельсах, вы можете использовать Capistrano для развертывания.

edit: вот мой хук после получения

GIT_REPO=$HOME/aliirz.git
PUBLIC_WWW=/var/www/myrepo

git clone $GIT_REPO $PUBLIC_WWW
exit

С уважением

edit: приведенный выше ответ drgomesp - это полное решение.Мне пришло в голову, что вам нужно, чтобы ваши ключи SSH были подключены к Github.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...