web-dev-qa-db-fra.com

Net :: SSH :: AuthenticationFailed: l'authentification a échoué pour l'utilisateur

Nom d'utilisateur de l'ordinateur local: Christopher

Nom d'utilisateur du serveur Ubuntu: my_app_name

J'ai suivi la documentation de Digital Ocean pour configurer un serveur Ubuntu 16.04 avec Ruby on Rails et c'est ma première fois de le faire, bien que lorsque j'arrive à cap production deploy:initial la console renvoie Net::SSH::AuthenticationFailed: Authentication failed for user [email protected] même si je peux ssh sans problème dans mes comptes root et utilisateur.

J'ai suivi ces instructions:

Comment connecter votre gouttelette à Digital Ocean https://www.digitalocean.com/community/tutorials/how-to-connect- to-your-droplet-with-ssh

Configuration initiale du serveur avec Ubuntu 16.04
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04

J'ai généré une paire de clés publique/privée ssh sur mon ordinateur local en utilisant:

ssh-keygen -t rsa

J'ai ajouté la clé publique de mon ordinateur local aux serveurs ~/.ssh/authorized_keys fichier. J'ai ensuite pu accéder à mes comptes root et utilisateur.

J'ai ensuite suivi ces instructions:

Déploiement d'une application Rails sur Ubuntu 14.04 avec Capistrano, Nginx et Puma https: // www .digitalocean.com/community/tutorials/deploying-a-Rails-app-on-ubuntu-14-04-with-capistrano-nginx-and-puma

J'ai généré une autre clé ssh, cette fois sur le serveur et ajouté la clé publique à la liste des clés de déploiement de mon github. J'ai ensuite pu cloner avec succès mon dépôt via ssh.

J'exécute les commandes suivantes:

cat ~/.ssh/id_rsa.pub | ssh -p your_port_num deploy@your_server_ip 'cat >> ~/.ssh/authorized_keys'

cap production deploy:initial

Et revenez:

Net::SSH::AuthenticationFailed: Authentication failed for user [email protected]

J'apprécierais vraiment toute aide car c'est la toute première fois que je déploie sur un serveur Ubuntu et j'aimerais vraiment savoir ce que je fais mal. Merci d'avance.

12
Ctpelnar1988

Avez-vous ajouté votre clé à l'agent?

Que voyez-vous lorsque vous exécutez:

$ ssh-add -l

Si vous obtenez "L'agent n'a pas d'identité.", Ajoutez votre clé avec:

$ ssh-add id_rsa_key_name
31
bryanus

Tout d'abord, vous devez vous connecter à votre serveur et exécuter

eval `ssh-agent`

puis

ssh-add ~/.ssh/id_rsa

et maintenant changer

set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa.pub) }
# 

à

set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa) }
#

Je viens de supprimer pub de id_rsa.pub.

Et puis exécutez

cap production deploy:initial

Ça devrait marcher maintenant. Les mêmes changements ont résolu les problèmes de mon application https://www.wiki11.com .

5
Neeraj Kumar

Vous avez: set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa.pub) }

Changez-le en: set :ssh_options, { forward_agent: true, user: fetch(:user), keys: %w(~/.ssh/id_rsa) }

Les clés doivent avoir un emplacement de clé privée uniquement. Activez également ssh-agent sur la machine locale à l'aide de ssh-add. Ajouter ForwardAgent yes dans ~/.ssh/config pour votre hôte.

3
Vivek

Vous devez ajouter la ligne suivante à votre config/deploy.rb

ssh_options[:forward_agent] = true

Référer ce post.

0
Gaurav Reddy