加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 为什么我尝试限制部署时会收到“权限被拒绝”

发布时间:2020-12-17 03:16:40 所属栏目:百科 来源:网络整理
导读:我试图使用我的服务器上的远程git存储库使用capistrano部署我的rails 4应用程序.我的git repo在我部署应用程序的同一台服务器上.当我尝试上限部署时,我得到了这个错误 my/local/rails/app/directory$cap deploy triggering load callbacks * 2013-08-30 15:5
我试图使用我的服务器上的远程git存储库使用capistrano部署我的rails 4应用程序.我的git repo在我部署应用程序的同一台服务器上.当我尝试上限部署时,我得到了这个错误

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://git@myserver.com/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://git@myserver.com/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] git@myserver.com's password:
Password: 
 ** [myserver.com :: out]
 ** [myserver.com :: out] Permission denied,please try again.
 ** git@myserver.com's password:
Password: 
 ** [myserver.com :: out]
 ** [myserver.com :: out] Permission denied,please try again.
 ** git@myserver.com'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://git@myserver.com/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

当我在其中输入密码时,说权限被拒绝,我确定密码是正确的.这是我的deploy.rb

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

set :user,'user'
set :domain,'myserver.com'
set :application,"blog"
set :repository,"ssh://git@myserver.com/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

我可以使用ssh密钥从命令行ssh到我的服务器,以便工作正常.谁知道问题是什么?谢谢.

解决方法

这在过去对我有用.希望这对你有用:

ssh-add /.ssh/id_rsa

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读