Bitbucket/Github:权限被拒绝公钥

Sur*_*raj 4 git ruby-on-rails bitbucket

当我尝试克隆我已获得许可的 Rails 应用程序存储库时,我遇到了这个问题。

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

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

即使通过生成公钥添加公钥后,我也无法解决此问题。

虽然我可以使用他的https方法进行克隆,但进行更改后,当我尝试推送代码时会出现相同的错误。

请为此提出一个答案。

K M*_*lam 11

首先cd进入您的.ssh目录。打开终端并运行:

cd ~/.ssh && ssh-keygen
Run Code Online (Sandbox Code Playgroud)

其次,您需要将其复制到剪贴板:

 cat id_rsa.pub | pbcopy # On OSX
 cat id_rsa.pub | xclip # On Linux
Run Code Online (Sandbox Code Playgroud)

第三,通过 github/bitbucket 网站将新生成的 ssh 密钥添加到您的帐户(只需粘贴到那里)。

接下来,设置你的 git 配置:

git config --global user.name 'your_user_name'
git config --global user.email 'your_email'
Run Code Online (Sandbox Code Playgroud)

最后,重新启动命令行以确保重新加载配置。

现在,您应该能够从 github 存储库克隆和推送。

有关这方面的更多信息,请参阅此github 页面或此bitbucket 页面


小智 5

当尝试使用 Git 克隆、推送或拉取 SSH 时,如果 Bitbucket 无法使用 SSH 代理提供的密钥进行身份验证,您可能会收到以下消息之一。

以下是您可能会看到这些消息的最常见原因:

您在尝试连接时使用了 sudo

克隆、推送或拉取时不应使用 sudo,因为 ssh 代理在用户级别运行,而不是根级别运行。

您的公钥未加载到 Bitbucket 中

要检查您的公钥是否已加载到 Bitbucket 中,请执行以下操作:

在 Bitbucket 中,从左下角的头像中选择个人设置。将显示帐户设置页面。

单击 SSH 密钥。SSH 密钥页面显示任何现有密钥的列表。

如果您没有列出任何密钥,您可以按照我们的设置 SSH 密钥文档来设置一个。

您的密钥未加载到 SSH 代理中

如果您的 SSH 代理不知道向 Bitbucket 提供密钥,连接将失败。如果您最近重新启动了系统,则可能会遇到此问题。

您可以参考这篇文章了解更多信息: https://support.atlassian.com/bitbucket-cloud/docs/troubleshoot-ssh-issues/