Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why am I getting a "Permission Denied" when trying to cap deploy?

Im trying to deploy my rails 4 app with capistrano using a remote git repository on my server. My git repo is on the same server I am deploying my app to. When ever I try a cap deploy I get this error

my/local/rails/app/directory$ cap deploy
    triggering load callbacks
  * 2013-08-30 15:51:20 executing `deploy'
  * 2013-08-30 15:51:20 executing `deploy:update'
 ** transaction: start
  * 2013-08-30 15:51:20 executing `deploy:update_code'
    updating the cached checkout on all servers
    executing locally: "git ls-remote ssh://[email protected]/var/repos/test.git master"
    command finished in 684ms
  * executing "if [ -d /var/www/test/www/shared/cached-copy ]; then cd /var/www/test/www/shared/cached-copy && git fetch  origin && git fetch --tags  origin && git reset  --hard 9de1df43a7959b953dc0b35c2ab27ba84698602a && git clean  -d -x -f; else git clone -b master ssh://[email protected]/var/repos/test.git /var/www/test/www/shared/cached-copy && cd /var/www/test/www/shared/cached-copy && git checkout -b deploy 9de1df43a7959b953dc0b35c2ab27ba84698602a; fi"
    servers: ["myserver.com"]
    [myserver.com] executing command
 ** [myserver.com :: out] Cloning into '/var/www/test/www/shared/cached-copy'...
 ** [myserver.com :: out]
 ** [myserver.com :: out] [email protected]'s password:
Password: 
 ** [myserver.com :: out]
 ** [myserver.com :: out] Permission denied, please try again.
 ** [email protected]'s password:
Password: 
 ** [myserver.com :: out]
 ** [myserver.com :: out] Permission denied, please try again.
 ** [email protected]'s password:
Password: 
 ** [myserver.com :: out]
 ** [myserver.com :: out] Permission denied (publickey,password).
 ** fatal: Could not read from remote repository.
 ** 
 ** Please make sure you have the correct access rights
 ** and the repository exists.
    command finished in 18891ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/test/www/releases/20130830225140; true"
    servers: ["myserver.com"]
    [myserver.com] executing command
    command finished in 700ms
failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell 'ruby-2.0.0-p247' -c 'if [ -d /var/www/test/www/shared/cached-copy ]; then cd /var/www/test/www/shared/cached-copy && git fetch  origin && git fetch --tags  origin && git reset  --hard 9de1df43a7959b953dc0b35c2ab27ba84698602a && git clean  -d -x -f; else git clone -b master ssh://[email protected]/var/repos/test.git /var/www/test/www/shared/cached-copy && cd /var/www/test/www/shared/cached-copy && git checkout -b deploy 9de1df43a7959b953dc0b35c2ab27ba84698602a; fi'" on myserver.com

When ever I enter my password in it says permission denied and I'm sure the password is correct. Here is my deploy.rb

require 'bundler/capistrano'
require 'rvm/capistrano'

set :user, 'user'
set :domain, 'myserver.com'
set :application, "blog"
set :repository,  "ssh://[email protected]/var/repos/test.git"
set :scm_passphrase, "password"
set :deploy_to, '/var/www/test/www'
set :deploy_via, :remote_cache
set :scm, :git
set :branch, 'master'
set :scm_verbose, true
set :use_sudo, false
set :normalize_asset_timestamps, false
set :rails_env, :production

set :rvm_type, :system
set :rvm_ruby_string, 'ruby-2.0.0-p247'
# set :scm, :git # You can set :scm explicitly or Capistrano will make an intelligent guess based on known version control directory names
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`

role :web, domain                         # Your HTTP server, Apache/etc
role :app, domain                         # This may be the same as your `Web` server
role :db,  domain, :primary => true # This is where Rails migrations will run

default_run_options[:pty] = true
ssh_options[:forward_agent] = true
after "deploy", "deploy:migrate", "deploy:restart"
after "deploy:update", "deploy:restart"

# if you want to clean up old releases on each deploy uncomment this:
# after "deploy:restart", "deploy:cleanup"

# if you're still using the script/reaper helper you will need
# these http://github.com/rails/irs_process_scripts

# If you are using Passenger mod_rails uncomment this:
# namespace :deploy do
#   task :start do ; end
#   task :stop do ; end
#   task :restart, :roles => :app, :except => { :no_release => true } do
#     run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
#   end
# end

namespace :deploy do
    desc "cause Passenger to restart"
    task :restart do
        run "touch #{current_path}/tmp/restart.txt"
    end
end

I am able to ssh into my server from the command line with a ssh key, so thats working fine. Anyone know what the problem is? Thanks.

like image 256
oobie11 Avatar asked Aug 30 '13 23:08

oobie11


1 Answers

This has worked for me in the past. Hope it works for you:

ssh-add /.ssh/id_rsa
like image 62
kikuchiyo Avatar answered Nov 09 '22 03:11

kikuchiyo