我正在跟踪tutorial,使用Capistrano3
,Puma
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
我也尝试使用密码来部署应用程序,但是当我在提示符下输入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 )
答案 0 :(得分:2)
用户ubuntu@18.191.247.244的身份验证失败
此问题是作为body{
margin: 0;
padding: 0;
}
嵌入到您的部署目标中,而不是与Github的连接中。确保您可以与ubuntu
用户一起使用该IP;如果可以,请尝试将SSH密钥添加到您的代理(ubuntu
或其他任何方式)中,以确保Capistrano可以与您的代理建立SSH连接部署目标计算机。