从Bitbucket部署到Digital Ocean时出现“Permission denied(publickey)”错误

6
我正在尝试将我的Rails应用程序从Bitbucket部署到Digital Ocean。 我使用Git作为版本控制系统,我已完成以下操作:
  1. 获取本地计算机的ssh密钥:pbcopy < ~/.ssh/id_rsa.pub
  2. 将本地计算机的ssh密钥添加到Digital Ocean中(https://cloud.digitalocean.com/ssh_keys)
  3. 将本地计算机的ssh密钥添加到Bitbucket仓库作为部署密钥(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"

如果我将存储库克隆到本地,它可以正常工作。我查看了Bitbucket文档,但仍然无法确定缺少什么。我的ssh到Bitbucket也可以正常工作。
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问题,但是没有成功解决。

2个回答

13

好的,我找到了解决方案,我会在这里添加这个方案,以便有人可以找到它并且觉得它有用。

我通过在Digital Ocean中创建一个SSH密钥并将其添加到Bitbucket中来解决了问题。

以下是步骤:

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

第一个链接404了,第二个链接有一些额外的 / 符号。 - Rastalamm

0

如果您想要为已经存在SSH密钥的Droplet添加额外的SSH密钥,您需要启用SSH上的密码验证才能完成此操作。在控制面板中添加SSH密钥只能在创建Droplet时进行。

如果您无法使用现有的SSH密钥访问机器,则需要使用Droplet的Web控制台按照以下步骤操作。请按照以下步骤启用密码验证。

使用您喜欢的文本编辑器编辑此配置文件。

/etc/ssh/sshd_config

找到“PasswordAuthentication no”一行并将其更改为“PasswordAuthentication yes”,然后保存并退出编辑器。

回到命令提示符后,运行以下命令以允许新的SSH更改生效。

/etc/init.d/ssh restart

一旦SSH重新启动,您可以尝试SSH连接到您的Droplet。如果出现权限被拒绝的错误,则可能需要使用“passwd”命令更新密码。

当您成功通过计算机上的SSH登录到服务器时,我建议按照下面的文章中的步骤配置新的SSH密钥。

https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2

希望这些信息对您有所帮助!如果您在使用过程中遇到任何问题或疑问,请随时告诉我们!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接