【问题标题】:Getting error on deployment in capistrano 3.1在 capistrano 3.1 中部署时出错
【发布时间】:2014-07-24 12:17:22
【问题描述】:

我的 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 key有问题?

【问题讨论】:

    标签: ruby-on-rails ruby deployment capistrano3


    【解决方案1】:

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

    Permission denied (publickey,keyboard-interactive)
    

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

    fatal: Could not read from remote repository
    

    因为 git 无法连接到您的 git 存储库,它无法检索您的代码。因此,您的部署失败。


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-09
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多