【问题标题】:Deploying Rails app with Capistrano - Permission denied (publickey)使用 Capistrano 部署 Rails 应用程序 - 权限被拒绝(公钥)
【发布时间】:2014-03-27 23:44:38
【问题描述】:

我正在尝试部署一个应用程序,当我运行 cap deploy 时:检查一切看起来都很好,但是当我尝试部署它时,我收到以下错误:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
*** [deploy:update_code] rolling back
  * executing "rm -rf /var/www/app/releases/20140327233712; true"
    servers: ["IP"]
    [IP] executing command
    command finished in 676ms
Command git ls-remote git@bitbucket.org:user/app.git staging returned status code pid 5458 exit 128

我已经在我的服务器中生成了密钥 (ssh-keygen -t rsa -C "lorem.."),然后我在 bitbucket 中添加了这个密钥,但我的权限仍然存在问题。

编辑:

在 deploy.rb 文件中,我使用 AWS 在创建新实例时生成的密钥并将其保存到本地计算机:ssh_options[:keys] = ["/Users/user/Documents/app. pem"] 然后我在我的服务器中生成了密钥并将其添加到 Bitbucktet ("home/ubuntu/.ssh/id_rsa.pub"),所以我认为我需要添加我本地的密钥("app.pem" ) 机器到 Bitbucket,但是当我尝试这样做时,我在 Bitbucket 中得到错误:无效的 SSH 密钥 (ssh-keygen)。

【问题讨论】:

    标签: ruby-on-rails amazon-web-services capistrano bitbucket


    【解决方案1】:

    确保 capistrano 进程连接到 Bitbucket 的用户有权访问您生成的私钥,并在尝试连接到 Bitbucket 时传递它。

    您得到的错误:Permission denied (publickey) 是由于 capistrano 用于连接的私钥与您存储在 Bitbucket 中的公钥不匹配。

    【讨论】:

    • 在 deploy.rb 文件中,我使用 AWS 在创建新实例时生成的密钥并将其保存到本地计算机:ssh_options[:keys] = ["/Users/user /Documents/app.pem"] 然后我在我的服务器中生成了密钥并将其添加到 Bitbucktet ("home/ubuntu/.ssh/id_rsa.pub"),所以我认为我需要添加本地的密钥( “app.pem”)机器到 Bitbucket,但是当我尝试这样做时,我在 Bitbucket 中得到错误:无效的 SSH 密钥(ssh-keygen)。
    • 您不需要对 AWS 生成的密钥执行任何操作。如果您以“ubuntu”用户身份运行 capistrano,那么您通过将公钥添加到 Bitbucket 来做正确的事情。将您的 capistrano 配方更改为:ssh_options[:keys]="/home/ubuntu/.ssh/id_rsa"。请注意,它是私钥。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多