Capistrano i Net::SSH::AuthenticationFailed

Posted on 27 listopada 2014

Przez długi czas moje Capistrano nie zawodziło mnie. Właściwie to nie licząc moich pomyłek przy początkowych ustawieniu pliku deploy.rb mógłbym powiedzieć, że działało zawsze idealnie. Kiedyś korzystałem z Capistrano do aktualizowania aplikacji w PHP, a dzisiaj wykorzystuję do sklepu opartego na Spree Commerce.

Sezon zakupowy się zaczął i zaszła awaryjna potrzeba uruchomienia Jednorożca.

$ cap unicorn:start
* executing `unicorn:start'
triggering before callbacks for `unicorn:start'
(...)
servers: ["server"] connection failed for: server (Net::SSH::AuthenticationFailed: Authentication failed for user user@server)

W internetach roiło się od informacji, że za błędy może być odpowiedzialny gem net-ssh w wersji 2.8.0 jednak ja posiadałem wersję późniejszą 2.9.1

Po wypróbowaniu wielu opcji (jak sh_options[:use_agent] = false) jedynym wyjściem okazało się wpisać do pliku config/deploy.rb:


set :ssh_options, {
config: false
}

W końcu Capistrano może się połączyć, a sklep znowu działa.