认证因capifony而失败

时间:2012-12-11 11:04:06

标签: symfony ssh capistrano capifony

我正在尝试使用基于capifony和Symfony2的Symfony 2项目部署Web应用程序。

它使用Process触发我的“cap deploy”任务并在Web浏览器中显示我的输出。

当在shell中时,如果我以用户www-data运行我的“cap deploy”(与Process使用的相同),我的部署工作正常,因此我的部署任务和我的身份验证密钥都没有错。 但是,当我从我的网络应用程序调用我的任务时,capifony告诉我它无法在远程服务器上进行身份验证。

triggering start callbacks for `deploy'

* executing `deploy:setdomain'
* executing `deploy'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'

triggering before callbacks for `deploy:update_code'

[32m--> Updating code base with checkout strategy[0m

executing locally: "git ls-remote [ myrepo ]"

command finished in 2068ms

* executing "git clone -q -o [ remote server ] [ my repo ] 
/var/www/spinfony/releases/20121211100449 && cd /var/www/spinfony/releases/20121211100449 && git checkout -q -b deploy be53233e51a4c542c3bc8603b424e57f988898a4 && (echo be53233e51a4c542c3bc8603b424e57f988898a4 > /var/www/spinfony/releases/20121211100449/REVISION)"

servers: ["[ remote server ]"]
Password: stty: standard input: Invalid argument
stty: standard input: Invalid argument
stty: standard input: Invalid argument

*** [deploy:update_code] rolling back

* executing "rm -rf /var/www/spinfony/releases/20121211100449; true"

servers: ["[ remote server ]"]
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: [ remote server ] (Net::SSH::AuthenticationFailed: [ user ])
connection failed for: [ remote server ] (Net::SSH::AuthenticationFailed: [ user ])

我正在试图找出为什么capifony似乎期望我无法提供的密码,因为我没有从shell运行它,而当我从shell运行它时,它工作正常而不问我什么

再一次,从同一个用户调用相同的文件。

2 个答案:

答案 0 :(得分:1)

这是一个已知的“bug”

你需要告诉capistrano使用

尝试将此添加到您的deploy.rb:

ssh_options[:keys] = %w(/what/ever/.ssh/id_rsa)

来源:http://adam.goucher.ca/?p=1253

答案 1 :(得分:0)

当您从Web应用程序调用任务时,您需要告诉它要使用的用户。

set :user, "www-data"
set :domain, "webserverdomainname.com"