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

我正在使用终端,我在根,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.

当前回答

TLDR:

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

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

其他回答

如果您正在使用GitHub for Mac UI,请检查首选项以确保您已登录。

我得到了这个错误。原来我刚刚将OSX升级到Sierra,我的旧密钥不再注册了。

一开始我以为是“升级到macOS Sierra会破坏你的SSH密钥并将你锁在自己的服务器之外”

但我避开了这个问题。结果我只需要重新注册我现有的密钥:

ssh-add - k

然后输入密码…完成了!

同样在ubuntu中,即使在BitBucket的设置中已经输入了SSH密钥,我还是遇到了这个问题。原因是,我尝试了以下几点:

sudo git push origin master

不知道为什么,但它解决了使用

git push origin master

没有使用sudo。

我想补充一些我的发现:

如果您正在使用GitBash,那么请确保SSH密钥存储在~/. SSH /id_rsa中。

默认情况下,git会搜索~/。ssh/id_rsaas ssh密钥的默认路径。

甚至文件名id_rsa也很重要。如果您将SSH密钥保存在另一个文件名或路径中,它将抛出Permission Denied(publickey)错误。

如果您将ssh访问更改为https访问远程存储库,问题就解决了:

git remote set-url origin https_link_to_repository

git push -u origin master