git - 从 Bitbucket 部署到 Digital Ocean - 权限被拒绝(公钥)错误

标签 git ruby-on-rails-4 capistrano bitbucket digital-ocean

我正在尝试将我的 Rails 应用程序从 Bitbucket 部署到 Digital Ocean。我使用 Git 作为我的版本控制系统,我做了以下事情:

  1. 获取我的计算机 ssh key pbcopy < ~/.ssh/id_rsa.pub
  2. 将我的计算机 ssh key 添加到 Digital Ocean (https://cloud.digitalocean.com/ssh_keys)
  3. 将我的计算机 ssh key 添加到 Bitbucket 存储库作为部署 key (https://bitbucket.org/<account name>/<project admin/deploy-keys)

但是当我运行 cap deploy它给出了这个错误

    servers: [<server ip>]
    [<server ip>] executing command
 ** [<server ip> :: out] Permission denied (publickey).
 ** [<server ip> :: out]
 ** [<server ip> :: out] fatal: Could not read from remote repository.
 ** [<server ip> :: out]
 ** [<server ip> :: out]
 ** [<server ip> :: out] Please make sure you have the correct access rights
 ** [<server ip> :: out]
 ** [<server ip> :: out] and the repository exists.
 ** [<server ip> :: out]

这是我的 deploy.rb文件

set :scm, "git"
set :repository, "git@bitbucket.org:<user name>/<project name>.git"
set :branch, "master"

如果我clone repo 到我本地,它工作正常。我浏览了 Bitbucket 文档,但仍然无法弄清楚缺少什么。

我到 Bitbucket 的 ssh 工作正常:

ssh -T git@bitbucket.org
authenticated via a deploy key.


You can use git or hg to connect to Bitbucket. Shell access is disabled.

This deploy key has read access to the following repositories:

<repor name>

找到这个 SO question但没有任何运气。

最佳答案

好的,我找到了解决方案,我将其添加在这里,以便有人觉得它有用。

我解决了在 Digital Ocean 中创建 SSH key 并将其添加到 Bitbucket 的问题。

步骤如下

  • 在 Digital Ocean 中创建 SSH key
  • 将该 SSH key 添加为 Digital Ocean SSH key
  • 将相同的 key 添加到 Bitbucket 部署 key ( https://bitbucket.org/<user>/<project>/admin/deploy-keys )

关于git - 从 Bitbucket 部署到 Digital Ocean - 权限被拒绝(公钥)错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25245075/

相关文章:

git - 使用 git pull request 为开源项目做出贡献的工作流程是什么? (例如,通过 Github)

git - git镜像后无法从远程存储库读取

git - 如何将 Visual Studio for Macos 连接到 Azure Devops/VSTS?

ruby-on-rails - Rails 按一天中的小时对created_at 列进行分组

ruby-on-rails - 连接两个表以获取数据 rails 4

ruby-on-rails - Capistrano 3.0 Assets :precompile failed on rails

ruby-on-rails - 有没有办法告诉 Capistrano 将本地存储库部署到远程服务器?

ruby - Capistrano 2 -> 3 git 部署差异?

git - 为什么 git 挂起 - 必须在命令后按 enter 两次?

ruby-on-rails - Rails 实际上在哪里为 _session_id 编写 Set-Cookie header ?