使用ubuntu ec2实例的capistrano在rails上部署ruby

我正在尝试使用Capistrano在rails应用程序上实现ruby,我在staging服务器中运行apache rvm,在生产服务器中运行nginx REE版本。 我也在使用git。 我一直试图整合Capistrano,但我收到了这个错误

(Net::SSH::AuthenticationFailed: ubuntu) 

这是我的deploy.rb文件

 set :application, "capify" # The directory on the EC2 node that will be deployed to set :deploy_to, "/home/ubuntu/apps/#{application}" set :keep_releases, 3 # deploy with git set :scm, :git set :repository, "git@github.com:username/capify.git" set :git_shallow_clone, 1 set :branch, "master" set :use_sudo, false set :user, "ubuntu" ssh_options[:keys] = ["/path/tp/key.pem"] ssh_options[:forward_agent] = true default_run_options[:pty] = true # The address of the remote host on EC2 (the Public DNS address) set :location, "ip" # setup some Capistrano roles role :app, location role :web, location role :db, location, :primary => true after 'deploy:update_code', 'deploy:symlink_db' namespace :deploy do desc "Restart Application" task :restart, :roles => :app do run "touch #{deploy_to}/#{shared_dir}/tmp/restart.txt" end desc "Symlinks the database.yml" task :symlink_db, :roles => :app do run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml" end end 

无法确定确切的问题和集成capistrano的方法。

看起来很简单:Capistrano在部署时不会提示输入密码,而是希望您的SSH密钥在目标服务器上对您进行身份validation。

由于这个原因,您尝试部署的用户(ubuntu)似乎无法进行身份validation。

尝试将~/.ssh/id_rsa.pub的内容添加到服务器: /home/ubuntu/.ssh/authorized_keys文件中。

如果您可以在没有提示输入密码的情况下进入您的计算机,那么它正在运行

更新 :在您的情况下,您使用ssh_options[:keys]来定义用于SSH授权的另一个密钥。 您可以删除该指令以默认为标准ssh密钥(〜/ .ssh / id_rsa.pub中的那个),或者将您指定的其他密钥添加到服务器上的authorized_keys文件中。

我建议你尝试没有ssh_options[:keys]选项:)