52 votes

Capistrano SSH :: AuthenticationFailed, ne demandant pas de mot de passe

J'ai été en utilisant capistrano avec succès pour un certain temps maintenant, et tout d'un coup dans chaque projet que j'ai perdu la capacité de déployer.

Environnement:

  • os X (Mavericks)
  • ruby 1.9.3p194
  • rvm (en local, pas sur le serveur)
  • rails 3.2 et
  • RubyGems 1.8.25

Je ne suis pas en utilisant rsa_keys ou quoi que ce soit je veux capistrano à inviter l'utilisateur et le mot de passe. Tout à coup, il a décidé de ne pas demander de mot de passe, mais ne demander de l'utilisateur. Puis il revient et me donne l'erreur suivante.

[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user user@sub.example.com)
connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user user@sub.example.com)

Cela s'est produit sur mon ordinateur portable et mon iMac au travail. Il se produit lors du déploiement à deux serveurs différents (linux)

Je suis complètement à perte ici. Des idées?

94voto

Sparkmasterflex Points 923

Deviner! Apparemment, cette question était avec net-ssh gem. J'avais la version 2.8.0 installée récemment avec certaines mises à jour de mon environnement de développement et j'en étais la cause.

Je ne sais pas pourquoi cela a échoué, mais gem uninstall net-ssh -v 2.8.0< corrigé pour moi.

Si quelqu'un savait réellement pourquoi c'était un problème ou comment je pouvais le corriger avec la version plus récente de net-ssh je serais intéressé de l'entendre.

18voto

La réponse peut casser votre application rails, en raison de gem dépendances.

Le problème est avec le net-ssh comme l'a correctement répondu par Sparkmasterflex, cependant tout cela permet d'obtenir des capistrano de travail sur ok, il peut briser votre application rails:

Ces étapes fixe à la fois capistrano et les rails pour moi ...

  1. Dans votre Gemfile ajouter gem 'net-ssh', '2.7.0'
  2. Exécutez bundle update net-ssh
  3. Exécutez bundle (juste pour être sûr que tout fonctionne ok"
  4. Exécutez gem uninstall net-ssh -v 2.8.0

Si vous êtes un rails de l'utilisateur, vous devriez maintenant être en mesure d'exécuter le serveur rails et capistrano.

11voto

Scott Weldon Points 62

J'ai une solution qui ne nécessite pas de déclassement net-ssh, par un commentaire sur le lien que Zach Lipton posté. Placez ce code dans config/deploy.rb:

set :ssh_options, {
  config: false
  #Other options...
}

Après ça, j'ai eu une autre erreur, Error reading response length from authentication socket. Trouvé la solution pour que ici. Exécuter ces commandes dans votre invite Bash:

$ eval $(ssh-agent)
$ ssh-add

8voto

FierceSquirrel Points 81

Mettre à jour votre version de net-ssh en 2.8.1 résoudra le problème. Ils ont publié une version bosse le 19 février 2014 qui corrige ce problème et d’autres.

  1. Désinstallez votre gem net-ssh actuel (gem install net-ssh -v 'version')
  2. Il suffit de coller ceci sur votre Gemfile:

    bijou 'net-ssh', '~> 2.8.1',: git => " https://github.com/net-ssh/net-ssh "

  3. Exécuter l'installation du paquet

8voto

Anbazhagan p Points 269

J'ai eu le même problème lors du déploiement à l'aide de capistrano Net :: SSH :: AuthenticationFailed: l'authentification a échoué pour l'utilisateur deployer @ IP

ssh-copy-id deployer @ ip

Cela ajoutera vos clés au serveur et vous pourrez vous connecter sans mot de passe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X