Capifony forward_agent не работает. Запрашивает пароль GitHub и терпит неудачу

Я использую capifony для развертывания веб-приложения symfony2 в Ubuntu. В моем файле deploy.rb есть следующее:

set :repository, "[email protected]:Username/Repo.git"
set :branch,      "develop"
set :scm_verbose, true
set :deploy_via,  :remote_cache

default_run_options[:pty] = true
set :ssh_options, {:forward_agent => true}
ssh_options[:keys] = ["/Users/myuser/Sites/file.pem"]
ssh_options[:auth_methods] = ["publickey"]

Capifony может войти по ssh, но затем запрашивает пароль GitHub во время развертывания. Я ввожу пароль правильно, но затем выдает следующую ошибку аутентификации:

remote: Invalid username or password
fatal: Authentication failed for 'https://[email protected]/UserName/Repo.git/'

Я не знаю, почему он запрашивает мой пароль Github и почему он не использует переадресацию агента с ssh на github?

Я добавил свой открытый ключ с сервера на GitHub, но меня немного смущают эти ключи и мои локальные ключи? он перенаправляет мой локальный ключ или использует серверный? Какие разрешения мне нужно установить и т.д.?

Я использую capifony v2.8.6. Недавно мне пришлось переустановить ruby ​​и capifony die для обновления до El Capitan, что полностью остановило работу capifony. Вот тогда и начались мои проблемы. Я развертываю Ubuntu 14.04.

Я попытался отредактировать /etc/ssh/ssh_config на сервере и добавить

ForwardAgent yes

Затем перезапустить ssh, но это не имеет никакого эффекта.

Спасибо


person Patrick    schedule 11.10.2015    source источник


Ответы (1)


Я больше не пользуюсь Capifony и пока не могу комментировать, поэтому попробую ответить :)

Во-первых, если вы выполняете развертывание со своего локального компьютера (вашего Mac), проверьте:

  • ваш ssh-агент запущен,
  • вы можете git клонировать один из ваших репозиториев github
  • вы можете подключиться по ssh к вашему серверу Ubuntu

Тогда вы можете просто установить эти две строки ниже.

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

Нет необходимости устанавливать другие ssh_options или настраивать конфигурацию вашего ssh-сервера, это может быть очень запутанным.

Во-вторых, вы можете проверить, работает ли переадресация ssh для выбранной среды, создав простые задачи rake внутри вашего проекта:

namespace :ssh do desc "Check if agent forwarding is working" task :forwarding do on roles(:all) do |h| if test("env | grep SSH_AUTH_SOCK") info "Agent forwarding is up to #{h}" else error "Agent forwarding is NOT up to #{h}" end end end end

И протестируйте с cap [env] ssh:forwarding

Наконец, если вы недавно переустанавливали ruby/capifony, попробуйте вместо этого переключиться на Capistrano v3 и его жемчужину Symfony. , это действительно стоит попробовать.

person Soifou    schedule 12.10.2015
comment
Привет, спасибо за совет. Я обновился до capistrano v3 и symfony gem. Я просматриваю документы по аутентификации здесь - capistranorb.com/documentation/getting-started / Меня немного смущает разница между моим файлом EC2 .pem и ключом ssh id_rsa. Нужно ли/могу ли я использовать оба? - person Patrick; 13.10.2015
comment
Я начал новый вопрос на основе моего сценария capistrano 3 - stackoverflow.com/questions/33105995/ - person Patrick; 13.10.2015
comment
Я думаю, вам нужно преобразовать ваш pem-файл Amazon в обычный ключ ssk и добавить его в свою учетную запись github, подробнее см. здесь stackoverflow.com/questions/24421096/ - person Soifou; 14.10.2015