我正在尝试将我的 Rails 应用程序从 Bitbucket 部署到 Digital Ocean。我使用 Git 作为我的版本控制系统,我做了以下事情:
- 获取我的计算机 ssh key
pbcopy < ~/.ssh/id_rsa.pub
- 将我的计算机 ssh key 添加到 Digital Ocean (https://cloud.digitalocean.com/ssh_keys)
- 将我的计算机 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/