Частный репозиторий Capistrano и GitHub - В доступе отказано (publickey)

Я унаследовал проект Rails, размещенный на Linode.

Предыдущий разработчик использовал хранилище BitBucket вместе с Capistrano для развертываний.

С тех пор я настроил частный репозиторий на GitHub, и я пытаюсь заставить рецепт Capistrano работать. У меня нет удачи. Я продолжаю получать ошибку открытого ключа во время развертывания.

Вот шаги, которые я предпринял -

Обновлен URL-адрес Git remote (origin) на сервере Linode, чтобы он указывал на мой новый репозиторийОбновлена ​​ссылка на репозиторий в Capfile, чтобы ссылаться на мой новый репозиторийОбеспечилssh_options[:forward_agent] был установлен в true в CapfileСгенерировал SSH-ключ локально (id_rsa.pub) и добавил его в мою учетную запись в GitHub.Выполнилssh-add команда, чтобы убедиться, что идентификатор был добавлен для агента аутентификацииРанssh -T [email protected] чтобы убедиться, что SSH был правильно настроен локальноЗашел на мой сервер Linode и запустилssh -T [email protected] чтобы убедиться, что это работает

Кроме того, на случай, если свойство forward_agent не сработало, я даже попытался сгенерировать ключ SSH на сервере Linode, а также добавить его в GitHub. Неудачно.

После всего этого, когда я бегуcap deployЯ получаю следующую ошибку:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly    

Ниже рецепт, который я использую -

require "bundler/capistrano"

server "----SERVER IP----", :web, :app, :db, primary: true

set :application, "blog"
set :user, "deployer"
set :deploy_to, "/var/www/blog"
set :deploy_via, :remote_cache
set :use_sudo, false

set :scm, "git"
set :repository, "[email protected]:--MY USERNAME--/blog.git"
set :branch, "master"

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

after "deploy", "deploy:cleanup" # keep only the last 5 releases

namespace :deploy do
  task :start do; end
  task :stop do; end
  task :restart, roles: :app, except: {no_release: true} do
    run "touch #{deploy_to}/current/tmp/restart.txt"
  end

  task :setup_config, roles: :app do
    sudo "ln -nfs #{current_path}/config/apache.conf /etc/apache2/sites-available/blog"
    run "mkdir -p #{shared_path}/config"
    put File.read("config/database.example.yml"), "#{shared_path}/config/database.yml"
    puts "Now edit the config files in #{shared_path}."
  end
  after "deploy:setup", "deploy:setup_config"

  task :symlink_config, roles: :app do
    run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml"
    run "ln -nfs #{shared_path}/public/avatars #{release_path}/public/avatars"    
  end
  after "deploy:finalize_update", "deploy:symlink_config"

  desc "Make sure local git is in sync with remote."
  task :check_revision, roles: :web do
    unless `git rev-parse HEAD` == `git rev-parse origin/master`
      puts "WARNING: HEAD is not the same as origin/master"
      puts "Run `git push` to sync changes."
      exit
    end
  end
  before "deploy", "deploy:check_revision"
end

Я не могу понять, где я иду не так - любая помощь будет принята с благодарностью.

ОБНОВИТЬ

Я также убедился, что в мой локальный файл ~ / .ssh / config было добавлено следующее ...

Host mydomain.com
  ForwardAgent yes

Ответы на вопрос(5)

Ваш ответ на вопрос