有人看到这个错误并知道该怎么做吗?

我正在使用终端,我在根,GitHub存储库存在,我不知道现在该做什么。

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

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

当前回答

我在ssh代理中加载了2个Github身份文件。我的个人钥匙和另一把客户项目的钥匙。

我删除了引起混乱的关键:

Ssh-add -d id_rsa_github_somekey . sh

其他回答

GitHub无法验证你的身份。所以,要么你没有安装SSH密钥,因为你还没有在你的机器上设置一个,要么你的密钥没有与你的GitHub帐户相关联。

您还可以使用HTTPS URL而不是SSH/git URL来避免必须处理SSH密钥。这是GitHub推荐的方法。

此外,GitHub有一个专门针对该错误消息的帮助页面,并更详细地解释了您可以检查的所有内容。

你需要生成一个SSH密钥(如果你没有的话),并将公钥与你的Github帐户相关联。参见Github自己的文档。

这个答案与其他答案略有不同,但在其他情况下,您可以在系统上正确配置SSH密钥,但仍然会遇到这种情况。

我在一个孤立的环境中(例如使用Tox)在python子进程中运行git命令时遇到了这个问题。我通过传递SSH_AUTH_SOCK和SSH_AGENT_PID环境变量来修复它。

对我来说,我试过这个

eval "$(ssh-agent -s)"

然后我就跑

ssh-add ~/.ssh/path-to-the-keyfile

为了生成密钥,你可以运行

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这将生成一对密钥(Public和private)。

您可以将此密钥存储到github以了解更多信息,添加一个新的SSH密钥到您的github帐户

我希望它能帮助到其他人:)

TLDR:

确保您拥有对回购的写访问权限(从回购的设置中进行配置)。 确保公钥在你的github帐户的SSH和GPG密钥中。

对我来说,这个错误通常发生在我试图从新安装的机器上克隆一些repo时。当收到请求时,github将首先检查公钥哈希。如果公钥不匹配任何用户,github将拒绝此请求。如果机器是新的,并且您的ssh密钥是新生成的,则这种情况很常见。