Пол дня убил на выяснение причин и теперь просто необходимо записать результат расследования.
Предположим вы достигли стадии использования гема Capistrano и даже нашли хороший ман (хоть и старенький), в котором всё складно рассказывается. Вы всё настроили, прописали конфиги и в какой-то момент подходит время дрожащими руками запустить первую команду:
cap production setup:upload_config
и мгновенно получаете по рукам острой ошибкой:
cap production setup:upload_config --trace
** Invoke production (first_time)
** Execute production
** Invoke load:defaults (first_time)
** Execute load:defaults
** Invoke rvm:hook (first_time)
** Execute rvm:hook
#<Thread:0x0000000001bd4c18@/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
1: from /home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as blabla@00.000.000.00: disconnected: Too many authentication failures (2) (SSHKit::Runner::ExecuteError)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as blabla@00.000.000.00: disconnected: Too many authentication failures (2)
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
Caused by:
Net::SSH::Disconnect: disconnected: Too many authentication failures (2)
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/transport/session.rb:198:in `block in poll_message'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/transport/session.rb:190:in `loop'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/transport/session.rb:190:in `poll_message'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/transport/session.rb:175:in `next_message'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/session.rb:101:in `block in next_message'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/session.rb:100:in `loop'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/session.rb:100:in `next_message'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/methods/publickey.rb:53:in `authenticate_with'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/methods/publickey.rb:20:in `block in authenticate'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/key_manager.rb:112:in `block in each_identity'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/key_manager.rb:104:in `each'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/key_manager.rb:104:in `each_identity'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/methods/publickey.rb:19:in `authenticate'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/session.rb:85:in `block in authenticate'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/session.rb:71:in `each'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh/authentication/session.rb:71:in `authenticate'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/net-ssh-5.0.2/lib/net/ssh.rb:246:in `start'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/connection_pool.rb:59:in `call'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/connection_pool.rb:59:in `with'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/netssh.rb:176:in `with_ssh'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/netssh.rb:129:in `execute_command'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/abstract.rb:141:in `block in create_command_and_execute'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/abstract.rb:141:in `tap'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/abstract.rb:141:in `create_command_and_execute'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/abstract.rb:55:in `test'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/capistrano-rvm-0.1.2/lib/capistrano/tasks/rvm.rake:21:in `block (3 levels) in <top (required)>'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/abstract.rb:29:in `instance_exec'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/backends/abstract.rb:29:in `run'
/home/mbaev/.rvm/gems/ruby-2.5.1/gems/sshkit-1.16.1/lib/sshkit/runners/parallel.rb:12:in `block (2 levels) in execute'
Tasks: TOP => rvm:hook
Главная строчка в этой ошибке
Too many authentication failures (2)
Обычно это говорит о том, что вы ввели неправильно имя пользователя или пароль (если есть), или ключ указан не тот. Иногда это может быть порт не 22ой и т.д.
Начинаете проверять: первым делом пробуете вручную законнектиться с сервером - в порядке! Ip: 00.000.000.00 указан верно, ключик id_rsa лежит на месте и даже пользователь blabla существует! Дальше дебажите, беситесь, пьёте кофе, разбиваете клавиатуру, соседа. Как обычно успокаивает только кот... А тем временем, решение крайне не очевидное: нужно добавить ключ в окружение через
ssh-add -K ~/.ssh/id_rsa