Мне нужно, чтобы 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 использует BOTH ключи? Кажется, что используется только одно имя id_rsa.
изменить:
Здесь вывод из Capistrano с сообщением об ошибке:
$ cap yii deploy
* executing `yii'
Yii
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
executing locally: "git ls-remote [email protected]:/projectyii.git HEAD"
* executing "git clone -q [email protected]:/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 [email protected]:/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
изменить:
Другое дело: он отлично работает с моей локальной машины, а не на сервере развертывания - с точно такими же конфигурационными файлами! Кажется, что Capistrano использует правильные ключи на моей локальной машине, но не на машине развертывания.