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用户名为zxy9527,密码为zxy123456(当然不是真的密码~),所以.git/config文件内就应该改为:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值