Capistrano и несколько ключей SSH

Мне нужно, чтобы Capistrano использовал 2 разных ключа SSH. Один предназначен для репозитория git, другой - для сервера, на котором выполняется развертывание.

Какой бы ключ я не переименовал в id_rsa в моей папке .ssh, работает. Другой - нет. Если я переименую ключ git в id_rsa, Capistrano сможет подключиться к репозиторию git, но затем не сможет пройти аутентификацию на сервере для развертывания. Если я назову его по-другому, он не сможет подключиться к репозиторию git. Я знаю, что другой ключ работает, потому что я могу выполнить ssh -i ~ / .ssh / otherKey.pem, и он успешно подключится к серверу.

Это то, что у меня есть в моем файле deploy.rb Capistrano.

ssh_options[:keys] = [
        File.join(ENV["HOME"], ".ssh", "id_rsa"),
        File.join(ENV["HOME"], ".ssh", "deploy")
    ]

ssh_options[:forward_agent] = true 

Как я могу сказать Capistrano использовать ОБЕ клавиши? Кажется, используется только тот, который называется id_rsa.

edit:

Вот вывод Capistrano с сообщением об ошибке:

$ cap yii deploy
  * executing `yii'
Yii
  * executing `deploy'
  * executing `deploy:update'
 ** transaction: start
  * executing `deploy:update_code'
    executing locally: "git ls-remote git@project.beanstalkapp.com:/projectyii.git HEAD"
  * executing "git clone -q git@project.beanstalkapp.com:/projectyii.git /var/www/projectyii-trunk/releases/20110824174629 && cd /var/www/projectyii-trunk/releases/20110824174629 && git checkout -q -b deploy 5e14521285ca04a605353e97bdf31c3a2889dbfb && (echo 5e14521285ca04a605353e97bdf31c3a2889dbfb > /var/www/projectyii-trunk/releases/20110824174629/REVISION)"
    servers: ["yii.project.com"]
    [yii.project.com] executing command
 ** [yii.project.com :: err] Error reading response length from authentication socket.
 ** [yii.project.com :: err] Permission denied (publickey,keyboard-interactive).
 ** [yii.project.com :: err] fatal: The remote end hung up unexpectedly
    command finished
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/projectyii-trunk/releases/20110824174629; true"
    servers: ["yii.project.com"]
    [yii.project.com] executing command
    command finished
failed: "sh -c \"git clone -q git@project.beanstalkapp.com:/projectyii.git /var/www/projectyii-trunk/releases/20110824174629 && cd /var/www/projectyii-trunk/releases/20110824174629 && git checkout -q -b deploy 5e14521285ca04a605353e97bdf31c3a2889dbfb && (echo 5e14521285ca04a605353e97bdf31c3a2889dbfb > /var/www/projectyii-trunk/releases/20110824174629/REVISION)\"" on yii.project.com

edit:

Еще одна вещь: он полностью работает на моей локальной машине, только не на сервере развертывания - с точно такими же файлами конфигурации! Кажется, Capistrano использует правильные ключи на моей локальной машине, но не на машине развертывания.

19
задан MrB 24 August 2011 в 18:42
поделиться