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.
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
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 .
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.
Vous devez ajouter la ligne suivante à votre config/deploy.rb
ssh_options[:forward_agent] = true
Référer ce post.