2016-09-22 4 views
1

Я после этого учебника:Ошибка аутентификации Ошибка при развертывании AWS EC2 AMI с Capistrano

https://www.sitepoint.com/deploy-your-rails-app-to-aws/ 

приложение полностью создан и запущен в развитии (в том числе базы данных). Ключи добавлены в GIT и SSH, хотя из учебника я очень уверен, кто из них идет именно туда.

И эта ошибка, которую я получаю.

$ gem list net 

*** LOCAL GEMS *** 

net-http-digest_auth (1.4) 
net-http-persistent (2.9.4) 
net-scp (1.2.1) 
net-ssh (3.2.0, 3.1.1) 
net-telnet (0.1.1) 
contactbook liviu-mac $ cap production deploy --trace 
** Invoke production (first_time) 
** Execute production 
** Invoke load:defaults (first_time) 
** Execute load:defaults 
** Invoke rvm:hook (first_time) 
** Execute rvm:hook 
** Invoke rvm:check (first_time) 
** Execute rvm:check 
cap aborted! 
Net::SSH::AuthenticationFailed: Authentication failed for user [email protected] 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/net-ssh-3.2.0/lib/net/ssh.rb:249:in `start' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/connection_pool.rb:59:in `call' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/connection_pool.rb:59:in `with' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/netssh.rb:155:in `with_ssh' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/netssh.rb:108:in `execute_command' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/abstract.rb:141:in `block in create_command_and_execute' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/abstract.rb:141:in `tap' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/abstract.rb:141:in `create_command_and_execute' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/abstract.rb:60:in `capture' 
/Users/liviu-mac/.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/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/abstract.rb:29:in `instance_exec' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/backends/abstract.rb:29:in `run' 
/Users/liviu-mac/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/sshkit-1.11.3/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute' 
Tasks: TOP => rvm:check 

Я попытался почти все исправления, предложенные в сообщениях, которые я нашел. Ничто не работает для меня.

Вот более подробная информация:

$ gem list net 

*** LOCAL GEMS *** 

net-http-digest_auth (1.4) 
net-http-persistent (2.9.4) 
net-scp (1.2.1) 
net-ssh (3.2.0, 3.1.1) 
net-telnet (0.1.1) 

Мои Capfile является:

# Load DSL and set up stages 
require "capistrano/setup" 

# Include default deployment tasks 
require "capistrano/deploy" 

require 'capistrano/rvm' 
# require 'capistrano/rbenv' 
# require 'capistrano/chruby' 
require 'capistrano/bundler' 
require 'capistrano/rails/assets' 
require 'capistrano/rails/migrations' 
require 'capistrano/puma' 
# require 'capistrano/passenger' 
require 'capistrano/ssh_doctor' 

# Load custom tasks from `lib/capistrano/tasks` if you have any defined 
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } 

Мой config/deply/production.rb файл (одна раскомментирована линия):

server '52.87.233.215', user: 'deploy', roles: %w{web app db} 

И мой config/deploy.rb файл является :

# config valid only for current version of Capistrano 
lock '3.6.1' 

set :application, 'contactbook' 
set :repo_url, '[email protected]:levi-l-damian/contactbook.git' 

# Default branch is :master 
# ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp 
set :branch, :master 

# Default deploy_to directory is /var/www/my_app_name 
# set :deploy_to, '/var/www/my_app_name' 
set :deploy_to, '/home/deploy/contactbook' 

# Default value for :pty is false 
set :pty, true 

# Default value for :linked_files is [] 
# append :linked_files, 'config/database.yml', 'config/secrets.yml' 
set :linked_files, %w{config/database.yml config/application.yml} 

# Default value for linked_dirs is [] 
# append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system' 
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system public/uploads} 

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

set :rvm_type, :user 
set :rvm_ruby_version, 'ruby-2.3.1' # Edit this if you are using MRI Ruby 

set :puma_rackup, -> { File.join(current_path, 'config.ru') } 
set :puma_state, "#{shared_path}/tmp/pids/puma.state" 
set :puma_pid, "#{shared_path}/tmp/pids/puma.pid" 
set :puma_bind, "unix://#{shared_path}/tmp/sockets/puma.sock" #accept array for multi-bind 
set :puma_conf, "#{shared_path}/puma.rb" 
set :puma_access_log, "#{shared_path}/log/puma_error.log" 
set :puma_error_log, "#{shared_path}/log/puma_access.log" 
set :puma_role, :app 
set :puma_env, fetch(:rack_env, fetch(:rails_env, 'production')) 
set :puma_threads, [0, 8] 
set :puma_workers, 0 
set :puma_worker_timeout, nil 
set :puma_init_active_record, true 
set :puma_preload_app, false 

Не знаете, как исправить это и двигаться вперед?

+0

Что происходит, когда вы запускаете 'ssh -v deploy @ 52.87.233.215'? –

+0

Я отредактирую вопрос, чтобы предоставить подробности, но в сущности я получаю отказ от разрешения (публицик). –

+0

Извините, похоже, у меня нет прав на редактирование, не знаю, как отправить полную информацию? –

ответ

0

Единственное решение, которое работало для меня было:

ssh -i ~/.ssh/contactbook.pem [email protected] 
su - deploy 
chmod 400 /home/deploy/.ssh/authorized_keys 
chown deploy:deploy /home/deploy -R 

Только после того, что команды:

ssh -v [email protected] 

и

cap production deploy 

удалось.

2

При устранении неполадок authentication failed ошибок в Capistrano, полезно опуститься на более низкий уровень и проверить подключение с ssh. Таким образом, вы можете понять, действительно ли это проблема Capistrano или более простая проблема с подключением SSH.

В этом случае Capistrano заявляет, что не может подключиться к 52.87.233.215 в качестве пользователя deploy. Давайте проверим, что вручную, как это:

ssh -v [email protected] 

Флаг -v свалки кучу подробного журнала, так что мы можем увидеть, что методы аутентификации предпринимается попытка.

Если вы получаете permission denied (publickey), это указывает на то, что ваш открытый ключ не установлен правильно на сервере. Другими словами, сервер не имеет возможности проверить, кем вы являетесь, и отказывает в доступе.

Чтобы установить свой публичный ключ, скопируйте содержимое этого файла с локального компьютера:

~/.ssh/id_rsa.pub 

и вставить это содержимое в этот файл на сервере:

~deploy/.ssh/authorized_keys 

Убедитесь, что ~deploy/.ssh/authorized_keys принадлежит и доступен deploy пользователя:

$ ls -ld ~deploy/.ssh 
drwxr-xr-x 2 deploy deploy 4096 Jun 16 2015 /home/deploy/.ssh 
$ ls -ld ~deploy/.ssh/authorized_keys 
-rw------- 1 deploy deploy 1023 Sep 12 02:13 /home/deploy/.ssh/authorized_keys 

Теперь попробуйте команду ssh снова:

ssh -v [email protected] 

Он должен работать, и если да, то Capistrano должен теперь работать.

+0

Похоже, вот в чем проблема: [ec2-user @ ip-172-31-60-174 ~] $ su - развернуть Пароль: Последний вход: Чт Сен 22 15:36:10 UTC 2016 на очках/0 [deploy @ ip-172-31-60-174 ~] $ ls -ld .ssh/authorized_keys -rw-rw-r-- 1 развернуть развернуть 407 сент. 22 15:31 .ssh/authorized_keys [deploy @ ip-172-31-60-174 ~] $ ls -ld .ssh drwx ------ 2 deploy deploy 4096 Sep 22 02:58 .ssh Как я должен изменить это, чтобы соответствовать вашему «drwxr- xr-x "? –

+0

OK, я сделал это: [deploy @ ip-172-31-60-174 ~] $ chmod -R 755 .ssh [deploy @ ip-172-31-60-174 ~] $ ls -ld. ssh drwxr-xr-x 2 deploy deploy 4096 Sep 22 02:58 .ssh –

+0

И теперь это работает: ssh -v [email protected] –

Смежные вопросы