使用Git出现以下错误"Git@github.com: Permission denied (publickey). Could not read from remote repository."解决方案

转载于:https://blog.csdn.net/dotphoenix/article/details/100130424

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Failed during: git fetch origin master:refs/remotes/origin/master --tags --force

大概率是秘钥设置不对的问题。

首先检查有没有在GitHub的https://github.com/settings/keys上添加你本机的SSH key。注意换了电脑是要重新添加的,每台都不一样。添加SSH key的方法:(引自廖雪峰老师的教程)
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

点“Add Key”,你就应该看到已经添加的Key:

如果添加了还是出现这个问题,那么问题大概率就定位在了你本机的这个git仓库并没有和这个SSH key 关联上。用下述方法解决:
ssh-add "你的 id-rsa 文件地址"
注意这里ssh-add后面填的是私钥地址,如mac电脑是 /Users/用户名/.ssh/id_rsa

add之后可以用

$ ssh git@github.com
验证是不是添加成功。

有时候你GitHub仓库初始化时候带了Readme或其他文件,推送之前需要先git pull 拉下来,会报“ * branch master -> FETCH_HEAD fatal: 拒绝合并无关的历史”的错误,解决方法是在git pull时加上–allow-unrelated-histories,如下:
git pull origin master --allow-unrelated-histories
这样应该就可以正常push了。

此篇文章转载于:https://blog.csdn.net/dotphoenix/article/details/100130424

原文地址:https://www.cnblogs.com/desireyang/p/12052861.html