Bitbucket/Github:公钥权限被拒绝

4
当我试图克隆一个我有权限的Rails应用程序仓库时,我遇到了这个问题。
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

即使我生成了公钥并添加了进去,仍然无法解决这个问题。

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

请为此提供一个解答。


尝试运行 eval $(ssh-agent) - Nithin
代理进程编号 6108 - Suraj
6个回答

10

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

cd ~/.ssh && ssh-keygen

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

 cat id_rsa.pub | pbcopy # On OSX
 cat id_rsa.pub | xclip # On Linux

第三步,通过 Github/Bitbucket 网站将您新生成的 SSH 密钥添加到您的账户中(只需粘贴)。

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

git config --global user.name 'your_user_name'
git config --global user.email 'your_email'

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

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

如需更多信息,请参阅此github页面或此bitbucket页面


对我来说不起作用。它给出了相同的消息。也许知道如何使用特定的ssh密钥,以及如何不使用全局git配置会有所帮助。此外,当我有超过2个SSH密钥时,我不明白设置全局配置如何帮助git找到要使用的哪一个。 - makkasi

5
在使用 Git 进行 SSH 克隆、推送或拉取时,如果 Bitbucket 无法验证你的 SSH 代理提供的密钥,则可能会收到以下消息之一。
以下是出现此类消息的最常见原因:
- 在连接时使用了 sudo。
不应在克隆、推送或拉取时使用 sudo,因为 ssh-agent 运行在用户级别,而不是 root 级别。
- 你的公钥未加载到 Bitbucket 中。
要检查你的公钥是否已加载到 Bitbucket,请执行以下操作:
从 Bitbucket 中选择左下角下面的头像中的“个人设置”。
显示“帐户设置”页面。
单击“SSH 密钥”。
“SSH 密钥”页面将显示任何现有密钥的列表。
如果没有列出任何密钥,可以按照我们的“设置 SSH 密钥文档”设置一个密钥。
- 你的密钥未加载到你的 SSH 代理中。
如果你的 SSH 代理不知道如何向 Bitbucket 提供密钥,则连接失败。如果最近重新启动了计算机,则可能会遇到此问题。
您可以参考这篇文章获取更多信息:https://support.atlassian.com/bitbucket-cloud/docs/troubleshoot-ssh-issues/

0

检查一些事情。

  1. 生成的新密钥是否是您的ssh代理程序在尝试ssh到服务器时使用的密钥。 (您的ssh代理程序可能正在使用与您生成的密钥不同的密钥) 使用此命令列出代理程序当前加载的密钥。

    ssh-add -L

  2. 您已将公钥正确添加到存储库托管位置。

上述1和2对应的密钥应匹配。


0
请查阅此文章: 生成SSH密钥的GitHub文章。当您运行以下命令时会发生什么:
ssh -T git@bitbucket.org

?

您可能添加了错误的密钥进行身份验证。


主机“github.com(192.30.252.129)”的真实性无法确认。我正在使用Bitbucket。 - Suraj

0

当我在本地创建另一个存储库时,遇到了这个错误。我的ssh密钥已经设置好了,我正在尝试通过vs code推送代码。 当我像以前一样通过git bash进行git push时,问题得到了解决。


0

关于Bit Bucket,我觉得我已经尝试了所有的SSH方法,包括在StackOverflow问题中的答案,但都不行。最终,我只是将克隆命令从SSH更改为HTTPS,这样就可以了,然后它才要求输入我的帐户密码。
enter image description here


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