$ bundle exec cap production deploy
(Backtrace limité aux tâches importées) cap avorté!
SSHKit :: Runner :: ExecuteError:
Exception lors de l'exécution en tant que Psara @ sakura: état de sortie git: 128 git stdout: Rien écrit git stderr: Autorisation refusée (publickey).
fatal: l'extrémité distante a raccroché de façon inattendueSSHKit :: Command :: Échec:
état de sortie git: 128
git stdout: Rien d'écrit
git stderr: Autorisation refusée (publickey).
fatal: l'extrémité distante a raccroché de façon inattendue
Tâches: TOP => git: check (Voir la trace complète en exécutant la tâche avec --trace) Le déploiement a échoué avec une erreur:
Exception lors de l'exécution en tant que Psara @ sakura:
git exit status: 128 git stdout: Rien d'écrit
git stderr: Autorisation refusée (publickey).
fatal: l'extrémité distante a raccroché de façon inattendue
*
deploy.rb
set: application, 'Psara'
set: repo_url, '[email protected]: CBLaughter/psara.git'
set: deploy_to, '/ home/Psara/Psara'
set: default_run_options,: pty => trueespace de noms: deploy do
après: redémarrage,: clear_cache faire sur les rôles (: web), dans:: groupes, limite: 3, attendre: 10 faire # Ici, nous pouvons faire n'importe quoi comme: # dans release_path faire # exécuter: rake, 'cache: clear' # end end end
fin
set: ssh_options, {forward_agent: true, paranoid: true, keys: "~/.ssh/id_rsa"}
*
production.rb
décor: scène,: mise en scène
set: Rails_env,: productionrôle: application,% w {sakura}
rôle: web,% w {sakura}
rôle: db,% w {sakura}serveur 'sakura', utilisateur: 'Psara', rôles:% w {application web}, my_property:>: my_value
set: ssh_options, {
touches:% w (~/.ssh/id_rsa),
forward_agent: false,}
Je serais heureux, si vous pouviez m'apprendre ce que je peux faire pour résoudre ce problème.
J'ai déjà ajouté une clé publique sur le bitbucket, mais cela ne fonctionne pas.
*
rapport de transfert d'agent SSH
[Succès]
repo_url
réglage ok[succès] le fichier de clé privée ssh existe
[Succès]
ssh-agent
le processus semble s'exécuter localement[Succès]
ssh-agent
processus reconnu parssh-add
commande[succès] clés privées ssh ajoutées à
ssh-agent
[succès] référentiel d'applications accessible depuis la machine locale
[succès] tous les hôtes utilisant une connexion sans mot de passe
[Succès]
forward_agent
ok pour tous les hôtes[succès] agent ssh transféré avec succès vers des hôtes distants
[succès] référentiel d'applications accessible à partir d'hôtes distants
Il semble que le transfert d'agent SSH soit correctement configuré! Vous pouvez poursuivre le processus de déploiement.
Il a réussi tous les tests, mais fait toujours la même erreur.
Assurez-vous que ssh-agent est en cours d'exécution sur votre machine, car vous utilisez le transfert ssh, vos clés locales devraient pouvoir accéder et cloner votre dépôt à partir de bitbucket. Vous pouvez l'exécuter avec:
eval `ssh-agent`
ssh-add ~/.ssh/id_rsa
Plus d'informations sur ssh-forwarding vous pouvez trouver ici .
Une autre chose que vous devez vérifier manuellement est que vous pouvez ssh sur votre serveur (votre clé publique doit être ajoutée à ~/.ssh/authorized_keys
sur le serveur), et bien sûr que vous pouvez cloner votre dépôt localement (ce que vous pouvez probablement faire).
Mettre à jour:
Maintenant, je me suis rendu compte que vous désactivez le transfert pour la production, dans ce cas, vous devez vous assurer que la paire de clés qui se trouve sur votre serveur (vous devez l'avoir, car le transfert est désactivé), est capable de cloner le dépôt à partir de bitbucket, vous pouvez essayer clonage sur le serveur à la main aussi.
Comme le dit le backtrace, cela est probablement lié aux clés publiques ssh. Je recommanderais de dépanner le problème avec capistrano-ssh-doctor . Vous obtiendrez un rapport indiquant précisément ce qui n'a pas fonctionné dans la configuration.
Avertissement, je suis l'auteur de capistrano-ssh-doctor
brancher.