Ошибка Capistrano при развертывании на slicehost

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

  • выполнение `deploy'
  • выполнение `deploy:update' ** транзакция: начало
  • выполнение `deploy:update_code', обновляющее кэшированную проверку на всех серверах, выполняющихся локально: "git ls-remote git@git.assembla.com:xxx.git master"
  • выполнение "if [ -d /home/sdn/shared/cached-copy ]; затем cd /home/xxx/shared/cached-copy && git fetch -q origin && git reset -q --hard 910a97024a45f1304d6b50c8862605ea0f1cf829 && git clean -q -d -x -f; еще git clone -q git@git.assembla.com:xxx.git /home/xxx/shared/cached-copy && cd /home/xxx/shared/cached-copy && git checkout -q -b развернуть 910a97024a45f1304d6b50c8862605ea0f1cf829; fi"серверы: ["173.203.79.208"] *** [deploy:update_code] откат
  • выполнение "rm -rf /home/xxx/ Releases/20100506160548; true" серверов: ["173.203.79.208"] ** [deploy:update_code] исключение при откате: Capistrano::ConnectionError, сбой подключения для: 173.203.79.208 (Net::SSH::Disconnect: соединение закрыто удаленным хостом) соединение не удалось: 173.203.79.208 (Net::SSH::Disconnect: соединение закрыто удаленным хостом)

Что я делаю неправильно? что-нибудь, что я должен добавить в свой файл deploy.rb, чтобы заставить его работать с slicehost?

3 ответа

Имеет ли Slicehost разрешение на клонирование репозитория с вашего git-сервера? Если вашему git-серверу требуется ssh-аутентификация, вам нужно сгенерировать ssh-ключи на вашем хосте и поместить открытый ключ вашего хоста на ваш git-сервер.

Если это не так, то похоже, что это что-то еще, связанное с запуском git на вашем хосте. Но "(Net::SSH::Disconnect: соединение закрыто удаленным хостом)" пахнет как проблема аутентификации.

У меня та же проблема.

railsu@li:~/.ssh$ ls
authorized_keys

Я уже создаю файл.ssh в railsu и git . Но эта проблема также здесь.

Поэтому я не думаю, что эта ошибка - проблема аутентификации.

Вы можете сгенерировать ключ на своем сервере, как предлагает Клинтон, или вы можете включить SSH Agent Forwarding.

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

Можете добавить ssh_options[:forward_agent] = true к вашему рецепту capistrano или добавьте конфигурацию хоста к вашему ~/.ssh/config как это:

Host <name>
  HostName <ip or host>
  User <username>
  IdentityFile ~/.ssh/<filename>
  ForwardAgent yes

Я предпочитаю позже.

На сайте www.unixwiz.net вы найдете подробное руководство по переадресации агентов SSH.

Другие вопросы по тегам