Capistrano - Net :: SSH :: AuthenticationFailed

时间:2017-01-20 12:21:54

标签: ruby-on-rails capistrano

我无法弄清楚如何解决这个问题。卡皮斯特拉诺没有正常工作。因此无法部署我的应用。 这是错误。

$ bundle exec cap staging deploy
(Backtrace restricted to imported tasks)
cap aborted!
Net::SSH::AuthenticationFailed: Authentication failed for user ec2-user@13.112.91.105

这是配置文件,名为config / deploy.rb

# config valid only for Capistrano 3.1
lock '3.5.0'

set :application, 'dola'
set :repo_url, 'git@ghe.intelligence-dev.com/inolab/eiicon-dola.git'

# Default branch is :master
# ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call
set :branch, 'master'

# Default deploy_to directory is /var/www/my_app
set :deploy_to, '/var/www/dola'

# Default value for keep_releases is 5
# set :keep_releases, 5

set :rbenv_type, :user
set :rbenv_ruby, '2.3.2-p217'
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all
set :linked_dirs, %w{bin log tmp/backup tmp/pids tmp/cache tmp/sockets vendor/bundle}
role :web, %w{13.112.91.105}

namespace :deploy do

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      # Your restart mechanism here, for example:
      # execute :touch, release_path.join('tmp/restart.txt')
    end
  end

  after :publishing, :restart

  after :restart, :clear_cache do
    on roles(:web), in: :groups, limit: 3, wait: 10 do
      # Here we can do anything such as:
      # within release_path do
      #   execute :rake, 'cache:clear'
      # end
    end
  end

end

这里是config / deploy / staging.rb

 Simple Role Syntax
# ==================
# Supports bulk-adding hosts to roles, the primary server in each group
# is considered to be the first unless any hosts have the primary
# property set.  Don't declare `role :all`, it's a meta role.

role :app, %w{ec2-user@13.112.91.105}
role :web, %w{ec2-user@13.112.91.105}

# Extended Server Syntax
# ======================
# This can be used to drop a more detailed server definition into the
# server list. The second argument is a, or duck-types, Hash and is
# used to set extended properties on the server.
server '13.112.91.105', user: 'ec2-user', roles: %w{web app}, my_property: :my_value

# Custom SSH Options
# ==================
set :stage, :staging
set :rails_env, 'staging'
server '13.112.91.105', user: 'ec2-user',
roles: %w{web app} 
set :ssh_options, {
   keys: [File.expand_path('~/.ssh/id_rsa_ec2.pem)')]
}

任何人,拜托!

1 个答案:

答案 0 :(得分:2)

Capistrano正在尝试在您的计算机与您尝试部署应用程序的计算机之间建立SSH会话 - 在这种情况下为13.112.91.105。为了做到这一点,给定您的Capistrano配置,您需要能够使用您的SSH私钥对作为用户ec2-user在13.112.91.105上运行的SSH服务器进行身份验证,我假设它是{ {1}}。为此,必须在计算机13.112.91.105上~/.ssh/id_rsa_ec2.pem的{​​{1}}文件中列出相应的SSH 公开密钥。