Permission denied (publickey). fatal: The remote end hung up unexpectedly 解决办法

这两天学习git的时候,在本地创建了一个库,同时自己在GitHub上面也创建了一个库,照着廖老师的教程一步一步走到了push的环节突然出现了这样的错误:

[zhangxiyu@localhost learngit] $ git push -u origin master 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly

去百度,CSDN,GitHub等等各种地方去查只得到一个答案,说是pubickey没有绑定到远程GitHub上,但这个步骤之前分明已经都做过了,没办法只好把GitHub上的公钥删掉,同时在本地rm -r ~/.ssh把.ssh文件夹全删掉重新生成ssh-keygen,重新把.ssh/id_rsa.pub绑定到GitHub。结果呢,还尼玛不行。还是提示上面的错误!woc!!!见了鬼了。然后就陷入了死循环,到处找解决方法,但结果是清一色的“没有绑定公钥”。

好在天无绝人之路,今天无意中看到了git push上传代码到gitlab上,报错401/403(或需要输入用户名和密码)这个帖子,突然想到了,昨天在push之前好像也遇到过这个问题:

[zhangxiyu@localhost learngit]$ git push -u github 
error: The requested URL returned error: 403 Forbidden while accessing 
https://github.com/zxy9527/zxy.git/info/refs

fatal: HTTP request failed

然后在网上查找了一下问题不知怎么的就果断vi .git/config,然后把

[remote “github”] 
url = https://github.com/zxy9527/zxy.git 
fetch = +refs/heads/:refs/remotes/github/

改成了

[remote “github”] 
url = ssh://github.com/zxy9527/zxy.git 
fetch = +refs/heads/:refs/remotes/github/

喜大普奔,403的问题没有了,但随之而来的就是无限的Permission denied (publickey)。。。就是上面说的问题。

  • 解决办法

在代码的.git/config文件内[remote “origin”]的url的gitlab域名前添加gitlab注册时的“用户名:密码@”

例如我的GitHub用户名为blx9527,密码为blx123456(当然不是真的密码~),所以.git/config文件内就应该改为:

[remote “github”] 
url = https://blx9527:[email protected]/zxy9527/zxy.git 
fetch = +refs/heads/:refs/remotes/github/

改完之后,确保你的公钥已经绑定到GitHub(这个网上有很详细的教程)之后,就可以愉快的push啦!!

猜你喜欢

转载自www.cnblogs.com/zknublx/p/8962548.html