Подтвердить что ты не робот

Развертывание Capistrano ** Ошибка проверки ключа хоста

Я следил за несколькими предложениями с других сайтов, но безрезультатно. Когда я пытаюсь cap deploy:cold Я последовательно получаю "Ошибка проверки ключа хоста".

Я пробовал все. Я передал ssh'd с моего компьютера на удаленный, удалил и прочитал оба ключа из известных хостов, клонировал из github, настроил свой открытый ключ как на сервере, так и на локальном в github.

Что мне здесь не хватает?


Capfile: https://gist.github.com/1308243


Ошибка: https://gist.github.com/1308255

4b9b3361

Ответ 1

Добавьте к вашему deploy.rb:

ssh_options[:forward_agent] = true
default_run_options[:pty] = true

Или войдите на сервер (ы), на который вы развертываете (как ваш пользователь развертывания) и запустите:

ssh [email protected]
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is **:**:**:.
Are you sure you want to continue connecting (yes/no)? yes

В большинстве случаев я вижу эту проблему, когда github.com не находится в вашем ~/.ssh/known_hosts

Ответ 2

Вместо использования git ssh url, который выглядит следующим образом: git @github.com: definelabs/urbanairship.git

используйте только URL-адрес для чтения, который выглядит следующим образом: git://github.com/definelabs/urbanairship.git

Ответ 3

Вы упомянули, что cap deploy:setup работал и cap deploy не удалось. Поэтому похоже, что сообщение об ошибке не связано с подключением ssh и связано с его проверкой git. Возможно, это связано с тем, что ваш удаленный сервер git работает с аутентификацией на основе ключа и на сервере отсутствует требуемый ключ.

Ответ 4

В дополнение к

ssh_options[:forward_agent] = true
default_run_options[:pty] = true

Мне также понадобился этот, ниже:

def add_domain_to_known_hosts(hostname)
  ip_address = "`dig +short A #{hostname}`"
  run "ssh-keygen -R #{hostname}"
  run "ssh-keygen -R #{ip_address}"
  run "ssh-keygen -R #{hostname},#{ip_address}"
  run "ssh-keyscan -H #{hostname},#{ip_address} >> ~/.ssh/known_hosts"
  run "ssh-keyscan -H #{ip_address} >> ~/.ssh/known_hosts"
  run "ssh-keyscan -H #{hostname} >> ~/.ssh/known_hosts"
end

Хотя, следует отметить, что PTY не приветствуется capistrano: https://github.com/capistrano/capistrano#a-word-about-ptys

Ответ 5

Один файл, связанный с ~/YOUR_USER_NAME /.ssh/authorized_keys2 на сервере. Я считаю, что он должен содержать открытый/закрытый ключ (один из двух, я думаю, частный?)