2015-02-06 5 views
16

$ bundle exec cap production deploySSHKit :: Runner :: ExecuteError

(Backtrace restricted to imported tasks) cap aborted!
SSHKit::Runner::ExecuteError:
Exception while executing as [email protected]: git exit status: 128 git stdout: Nothing written git stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

SSHKit::Command::Failed:
git exit status: 128
git stdout:Nothing written
git stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Tasks: TOP => git:check (See full trace by running task with --trace) The deploy has failed with an error:
Exception while executing as [email protected]:
git exit status: 128 git stdout: Nothing written
git stderr: Permission denied (publickey).

fatal: The remote end hung up unexpectedly

*

deploy.rb

set :application, 'Psara'
set :repo_url, '[email protected]:CBLaughter/psara.git'
set :deploy_to, '/home/Psara/Psara'
set :default_run_options, :pty => true

namespace :deploy do

after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do # Here we can do anything such as: # within release_path do # execute :rake, 'cache:clear' # end end end

end

set :ssh_options, { forward_agent: true, paranoid: true, keys: "~/.ssh/id_rsa" }

*

production.rb

set :stage, :staging
set :rails_env, :production

role :app, %w{sakura}
role :web, %w{sakura}
role :db, %w{sakura}

server 'sakura', user: 'Psara', roles: %w{web app}, my_property: >:my_value

set :ssh_options, {
keys: %w(~/.ssh/id_rsa),
forward_agent: false, }



Ich würde mich freuen, wenn Sie mir beibringen könnten, was ich tun kann, um dieses Problem zu lösen.

Ich habe bereits einen öffentlichen Schlüssel auf dem bitbucket hinzugefügt, aber es funktioniert nicht.

*

SSH Agent-Forwarding Bericht


  1. [success] repo_url setting ok

  2. [success] ssh private key file exists

  3. [success] ssh-agent process seems to be running locally

  4. [success] ssh-agent process recognized by ssh-add command

  5. [success] ssh private keys added to ssh-agent

  6. [success] application repository accessible from local machine

  7. [success] all hosts using passwordless login

  8. [success] forward_agent ok for all hosts

  9. [success] ssh agent successfully forwarded to remote hosts

  10. [success] application repository accessible from remote hosts


It seems SSH agent forwarding is set up correctly! You can continue with the deployment process.

It succeeded in all tests, but still makes same error.

+0

Bitte bearbeiten Sie Ihre Frage, um Codeblöcke zu verwenden, damit wir sie lesen können. Definieren Sie auch klar, was Ihr Fehler ist. –

+0

@Shion Yamaguchi: Wie hast du dein Problem gelöst, als ich auch steckte !!! und auf derselben Seite wie du? – VKatz

Antwort

5

Wie die Backtrace sagt, ist wahrscheinlich im Zusammenhang öffentliche Schlüssel ssh. Ich würde empfehlen, das Problem mit capistrano-ssh-doctor zu beheben. Sie erhalten einen Bericht, der genau sagt, was beim Setup schief gelaufen ist.

Disclaimer, ich bin der Autor von capistrano-ssh-doctor Plugin.

+2

funktioniert nicht für mich :( – VKatz

39

Stellen Sie sicher, dass ssh-agent auf Ihrem Computer ausgeführt wird. Da Sie die ssh-Weiterleitung verwenden, sollten Ihre lokalen Schlüssel in der Lage sein, auf Ihr Repository von bitbucket zuzugreifen und es zu klonen. Sie können Agenten mit laufen:

eval `ssh-agent` 
ssh-add ~/.ssh/id_rsa 

Mehr Infos über ssh-Weiterleitung Sie find here können.

Andere Sache, die Sie manuell überprüfen sollten, ist, dass Sie SSH auf Ihrem Server (Ihr öffentlicher Schlüssel sollte ~/.ssh/authorized_keys auf Server hinzugefügt werden), und natürlich, dass Sie Ihre Repo lokal klonen können (das können Sie wahrscheinlich tun).

Update:

Jetzt habe ich erkannt, dass Sie für die Produktion biegen Spedition, in diesem Fall sollten Sie sich vergewissern, dass Schlüsselpaar, das auf dem Server ist (man muss es haben, weil Forwarding ausgeschaltet ist), sind in der Lage, Repo von Bitbucket zu klonen, können Sie auch versuchen, auf dem Server von Hand zu klonen.

+0

Hey Rastasheep Auch Im Blick auf die gleiche Frage .. Ich ging durch Aber nicht in der Lage zu sortieren. – VKatz

+0

@rastasheep Ich habe ein ähnliches Problem hier: http://StackOverflow.com/Questions/ 36900222/ssh-agent-forwarding-with-capistrano-3-nicht-arbeiten-wenn-deploying-rails-app Meldet sich Capistrano auf dem Produktionsserver und versucht dann, Code aus dem Repository auf den Produktionsserver zu ziehen? Wenn das der Fall ist Gibt es eine Möglichkeit, Capistrano Code vom Repository auf den Produktionsserver zu pushen? – massaskillz

+0

@massaskillz Ja, Capistrano loggt sich einfach per SSH in Ihren Rechner ein und führt Befehle aus, die von seinem DSL generiert werden. Sie können benutzerdefinierte Capistrano-Aufgaben erstellen um zu tun, was immer du willst.Leider denke ich, dass es nicht möglich ist, vom Repository "zu pushen", es ist möglich, Code (vom scp-Befehl) vom Host-Computer auf Ihren Server zu kopieren. – rastasheep

Verwandte Themen