Rails Capistrano 3: Отказано в доступе (открытый ключ) на AWS EC2

Я пытаюсь развернуть приложение rails (4.2) на Amazon ec2 через битбакет. Я добавил свой ключ id_new_rsa.pub в authorized_keys на сервере. Также добавил те же ключи SSH в мою учетную запись bitbucket. Также добавлен агент для тех же ключей с помощью этих команд eval "$(ssh-agent -s)" и ssh-add ~/.ssh/id_new_rsa

Используя этот ключ id_new_rsa.pub, я могу получить доступ к обоим серверам (root и deploy), но когда я пытаюсь развернуть свое приложение, получаю следующие ошибки.

Я потратил 3 дня, чтобы выяснить решение, но пока не повезло. Пожалуйста помоги.

введите здесь описание изображения

deploy.rb

введите здесь описание изображения

production.rb

введите здесь описание изображения


person Parthiv    schedule 01.06.2017    source источник


Ответы (1)


Почти есть, но есть недостающая вещь. Вы используете publickey немного неправильно для метода авторизации. Просто добавьте следующее в ваш файл :ssh_options.

auth_methods: ["publickey"]

Это рабочий пример с EC2 и capistrano:

set :ssh_options, {
  forward_agent: true,
  user: fetch(:user),
  auth_methods: ["publickey"],
  keys: ["/path/to/key.pem"]
}

Обязательно дайте права доступа 0600 к файлу ключа.

person Evgeny    schedule 01.06.2017
comment
У вас есть USER на вашем сервере? - person Evgeny; 02.06.2017
comment
да Евгений. Пользователь «развертывание» находится на сервере. Я могу войти в систему, используя ssh -T [email protected] на сервере и моей локальной машине. Я попытался создать новый файл .pem на EC2 -> Key Pairs и добавил в настройки ssh_option. Но по-прежнему не удается подключиться к репозиторию EC2 и битбакета. - person Parthiv; 03.06.2017