Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在capistrano 3.1中获取部署错误_Ruby On Rails_Ruby_Deployment_Capistrano3 - Fatal编程技术网

Ruby on rails 在capistrano 3.1中获取部署错误

Ruby on rails 在capistrano 3.1中获取部署错误,ruby-on-rails,ruby,deployment,capistrano3,Ruby On Rails,Ruby,Deployment,Capistrano3,我的deploy.rb文件是 lock '3.2.1' set :application, 'my_app' set :repo_url, 'path_to_git_repo.git' set :deploy_user, 'root' set :deploy_to, '/var/www' set :branch, 'master-final_code' set :scm, :git set :deploy_via, :copy

我的deploy.rb文件是

    lock '3.2.1'
    set :application, 'my_app'
    set :repo_url, 'path_to_git_repo.git'
    set :deploy_user, 'root'
    set :deploy_to, '/var/www'
    set :branch, 'master-final_code'
    set :scm, :git
    set :deploy_via, :copy
    set :format, :pretty
    set :stages, ["staging"]
    set :log_level, :debug
    set :pty, true
我的staging.rb是

    set :stage, :staging
    role :app, %w{root@my_ip_add}
     %w{[root]}
    server 'my_ip_add', user: 'root', roles: %w{app}
    set :ssh_options, {
        forward_agent: false,
        auth_methods: %w(password),
        password: 'my_pass',
        user: 'root'
    }
获取错误:

Permission denied (publickey,keyboard-interactive).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

在这种情况下我该怎么办?我应该编辑配置吗。是deploy.rb还是staging.rb?或者ssh密钥有问题吗?

这是一个ssh/git问题。错误消息分为两部分:

Permission denied (publickey,keyboard-interactive)
这意味着“我试图连接到git repo,但我做不到。”它没有这么明确地说,但它的格式是来自SSH的错误。括号中的部分告诉您它是如何尝试进行身份验证的:首先使用,然后通过键盘提示

fatal: Could not read from remote repository
因为git无法连接到您的git repo,所以它无法检索您的代码。因此,部署失败


关于您的代码,有一件令人担忧的事情是您正试图以root用户的身份进行部署。这是一个可怕的坏主意;您不仅将根凭据存储在配置文件中,而且如果您(或Capistrano作者)在部署任务或配置中有错误,可能会破坏系统。创建一个具有部署目录权限的
deploy
用户要好得多。这样,如果出现问题,或者有人获得了对
deploy
帐户的访问权,他们就没有对服务器的完全访问权。您还应该知道,许多系统通常是默认的