0

我一直在尝试使用 Capistrano 部署 Rails 应用程序,但是当我运行时,cap production deploy我得到:

(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as 
deploy@12.34.56.789: Authentication failed for user deploy@12.34.56.789

Net::SSH::AuthenticationFailed: Authentication failed for user 
deploy@12.34.56.789

Tasks: TOP => rvm:check
(See full trace by running task with --trace)

我试过跑步cap production rvm:check --trace,我得到了这个

** Invoke production (first_time)
** Execute production
** Invoke load:defaults (first_time)
** Execute load:defaults
** Invoke bundler:map_bins (first_time)
** Execute bundler:map_bins
** Invoke rvm:hook (first_time)
** Execute rvm:hook
** Invoke rvm:check (first_time)
** Execute rvm:check
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@12.34.56.789: Authentication failed for user deploy@12.34.56.789
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
Net::SSH::AuthenticationFailed: Authentication failed for user deploy@12.34.56.789
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/net-ssh-4.2.0/lib/net/ssh.rb:254:in `start'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/connection_pool.rb:59:in `call'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/connection_pool.rb:59:in `with'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/netssh.rb:174:in `with_ssh'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/netssh.rb:127:in `execute_command'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/abstract.rb:141:in `block in create_command_and_execute'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/abstract.rb:141:in `tap'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/abstract.rb:141:in `create_command_and_execute'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/abstract.rb:60:in `capture'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/capistrano-rvm-0.1.2/lib/capistrano/tasks/rvm.rake:9:in `block (3 levels) in <top (required)>'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/abstract.rb:29:in `instance_exec'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/backends/abstract.rb:29:in `run'
/Users/k/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.14.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
Tasks: TOP => rvm:check

这就是我的 ssh 部分的deploy.rb样子:

set :keep_releases, 5
set :rvm_type, :user
set :rvm_ruby_version, 'ruby-2.3.1'
set :ssh_options, { forward_agent: true }
# set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/mykey.pem) }

我有这条线config/deploy/production.rb

server "12.34.56.789", user: "deploy", roles: %w{app db web}, my_property: :my_value

当我运行evalssh-agent`` 并且ssh-add ~/.ssh/id_rsa它工作正常。

我在这里错过了什么吗?我该如何解决这个问题?

谢谢你。

4

0 回答 0