Rails Capistrano身份验证失败错误

时间:2020-01-01 23:21:41

标签: ruby-on-rails ruby nginx ssh puma

我正在跟踪tutorial,使用Capistrano3Puma Web服务器和nginx在AWS上托管我的Rails 6应用程序。我已经进入最后阶段,但是当我尝试使用Capistrano部署Ruby on Rails应用程序时,总是出现验证失败错误。我使用的命令是cap production deploy。我创建了一个ssh密钥对,将公钥添加到包含应用程序代码的Github存储库中,并将私钥文件路径添加到文件中的以下片段中:/Users/edward/Project/EdwardBlog/blog/config/deploy/production.rb

set :ssh_options, { 
  forward_agent: true, 
  auth_methods: %w[publickey],
  keys: %w[/Users/edward/.ssh/id_rsa]
}

我可以像ssh -T git@github.com那样进入github,然后再次检查密钥对是否匹配我添加到github帐户中的公共SSH密钥。我还使用ssh-add -l

向ssh-agent添加了私钥。

我也尝试使用密码来部署应用程序,但是当我在提示符下输入github帐户密码时仍然没有运气:

set :ssh_options, {
   keys: %w(/Users/edward/.ssh/id_rsa),
   forward_agent: true,
   auth_methods: %w(password)
 }

我不知道为什么不使用本地凭据进行身份验证。将不胜感激任何可能的解决方案或解决方法。

这是我运行命令cap production deploy --trace时的消息:

#<Thread:0x00007f9b70963d00@/Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
    12: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
    11: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:31:in `run'
    10: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:31:in `instance_exec'
     9: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/capistrano-3.11.2/lib/capistrano/scm/tasks/git.rake:8:in `block (3 levels) in eval_rakefile'
     8: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:80:in `execute'
     7: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:148:in `create_command_and_execute'
     6: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:148:in `tap'
     5: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/abstract.rb:148:in `block in create_command_and_execute'
     4: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/netssh.rb:130:in `execute_command'
     3: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/netssh.rb:177:in `with_ssh'
     2: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/connection_pool.rb:63:in `with'
     1: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/backends/connection_pool.rb:63:in `call'
/Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/net-ssh-5.2.0/lib/net/ssh.rb:263:in `start': Authentication failed for user ubuntu@18.191.247.244 (Net::SSH::AuthenticationFailed)
    1: from /Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/edward/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/sshkit-1.20.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as ubuntu@18.191.247.244: Authentication failed for user ubuntu@18.191.247.244 (SSHKit::Runner::ExecuteError)
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as ubuntu@18.191.247.244: Authentication failed for user ubuntu@18.191.247.244


Caused by:
Net::SSH::AuthenticationFailed: Authentication failed for user ubuntu@18.191.247.244

Tasks: TOP => deploy:check => git:check => git:wrapper
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing as ubuntu@18.191.247.244: Authentication failed for user ubuntu@18.191.247.244


** DEPLOY FAILED
** Refer to log/capistrano.log for details. Here are the last 20 lines:


Please make sure you have the correct access rights

and the repository exists.

  INFO ---------------------------------------------------------------------------

  INFO START 2020-01-01 13:58:01 -0800 cap production deploy

  INFO ---------------------------------------------------------------------------

  INFO rbenv: rbenv_ruby is not set; ruby version will be defined by the remote hosts via rbenv

  INFO [ca90e3ef] Running /usr/bin/env mkdir -p /tmp as ubuntu@18.191.247.244

 DEBUG [ca90e3ef] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="" ; /usr/bin/env mkdir -p /tmp )

  INFO ---------------------------------------------------------------------------

  INFO START 2020-01-01 13:58:35 -0800 cap production deploy

  INFO ---------------------------------------------------------------------------

  INFO rbenv: rbenv_ruby is not set; ruby version will be defined by the remote hosts via rbenv

  INFO [cd0c878a] Running /usr/bin/env mkdir -p /tmp as ubuntu@18.191.247.244

 DEBUG [cd0c878a] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="" ; /usr/bin/env mkdir -p /tmp )

  INFO ---------------------------------------------------------------------------

  INFO START 2020-01-01 14:28:49 -0800 cap production deploy

  INFO ---------------------------------------------------------------------------

  INFO rbenv: rbenv_ruby is not set; ruby version will be defined by the remote hosts via rbenv

  INFO [a745cde8] Running /usr/bin/env mkdir -p /tmp as ubuntu@18.191.247.244

 DEBUG [a745cde8] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="" ; /usr/bin/env mkdir -p /tmp )

1 个答案:

答案 0 :(得分:2)

用户ubuntu@18.191.247.244的身份验证失败

此问题是作为body{ margin: 0; padding: 0; } 嵌入到您的部署目标中,而不是与Github的连接中。确保您可以与ubuntu用户一起使用该IP;如果可以,请尝试将SSH密钥添加到您的代理(ubuntu或其他任何方式)中,以确保Capistrano可以与您的代理建立SSH连接部署目标计算机。