Мне нужно, чтобы 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 использует правильные ключи на моей локальной машине, но не на машине развертывания.