【发布时间】:2020-01-01 23:21:41
【问题描述】:
我正在关注tutorial,使用Capistrano3、Puma Web 服务器和nginx 在AWS 上托管我的Rails 6 应用程序。我处于最后阶段,但是当我尝试使用 Capistrano 部署我的 Ruby on Rails 应用程序时,不断收到 Authentication failed 错误。我使用的命令是cap production deploy。我创建了一个 ssh 密钥对,将公钥添加到包含应用程序代码的 Github 存储库中,并将私钥文件路径添加到文件中的以下 sn-p:/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 那样通过 ssh 进入 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 )
【问题讨论】:
标签: ruby-on-rails ruby nginx ssh puma