您的位置:首页 > 编程语言

window界面下,github每次git push会出现permission denied (publickey)的解决

2017-03-09 18:40 531 查看
作为一个编程小白,软件小白。这几天在写毕业论文。打算把写的东西记录在gihub上,但是今年莫名的发现每次从当地向远端push的时候总是报错permission denied (publickey);结果花费了一个下午才解决。这也促使我写下自己痛苦的经历,以期能够帮助后来的和我一样小白的。

首先也是各种百度,然后知道原因:就是有https模式转到ssh模式时候这种问题就会出来了。网上大多数人也是出现这种问题。因为https模式下每次git push都要输入账号和密码是在是麻烦。

解决的方法是:因为我已经有了公钥,没有的话看git教程会有如何生成公钥的方法的。我的问题是:改自己的公钥(public key),我不知道为什么会出现公钥不对的问题。

查看是否已经有了
ssh
密钥:
cd ~/.ssh 
如果没有密钥则不会有此文件夹,有则备份删除
 
生成密钥:
 
ssh-keygen -t rsa -C 

xxxxx@gmail.com

1:查看是否已经有了ssh密钥:cd ~/.ssh  如果没有密钥则不会有此文件夹,有则备份删除(这个必须把这文件完全删掉)
备注:作为一个沉痛的教训就是我一直没有删掉这个文件,每次都是这么overwrite的生成key,结果每次都是白忙活 

2:生成密钥:  ssh-keygen -t rsa -C “xxxxx@gmail.com”    ""里的是自己的邮箱,三次回车,密码为空

3:最后得到了两个文件:id_rsa和id_rsa.pub   添加密钥到ssh:进入你的github,需要之前输入密码.    在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。  

4: 打开https://github.com/ 

最后得到了两个文件:
id_rsa

id_rsa.pub 
 
 
添加密钥到
ssh
:进入你的
github,
需要之前输入密码

 
 

github
上添加
ssh
密钥,这要添加的是“
id_rsa.pub
”里面的公钥。
 
 
 
打开 https://github.com/  在设置中添加密钥
 

id_rsa.pub
用记事本打开之后复制里面的到网站上就可以了。
在设置中添加密钥  把id_rsa.pub用记事本打开之后复制里面的到网站上就可以了。需要注意的是以前的ssh密钥要删除
5:之后在terminal输入:ssh git@github.com,这里需要注意的是,输入的就是这一句话,后面的不是自己的邮箱,最需要注意的是,如果是从一些别的地方copy的话,注意ssh后面只有一个空格,多一个都会出错的



6:


中间的是否确定继续连接,输入yes就ok

7:然后再次git push就可以了。

其实中间的所有过程在网上差不多都能download到,但是我还是费了好几个小时,主要就是一些小的细节上出错。写下来也算是希望后来人不要和我一样在这方面出错。

不过还是不懂为啥https到ssh的转换就会导致git push出错,然后非要这么麻烦的重新设置一下ssh密钥才能解决。不知道是不知自己知识欠缺,其实是用了一个麻烦的方法。不管怎样,至少现在是能够push了。

另:有时候远端有修改的话,是需要先pull一下,然后才能git push -u origin master的。当然这个origin完全可以是你设置的任何名字

祝好啦!

莫名的昨天又不能git push了,然后如此的反复折腾半天后也没有什么结果。然后生成ssh key时,使用

ssh-keygen -t rsa 后面不加邮箱,再把得到的id_rsa.pub加入到github的ssh里就好了。

不过还是没搞懂为啥莫名的我的ssh key就不能使用了,还有就是之前为啥window下的git shell我生成ssh key时可以加邮箱。

以后有时间再认真想这个问题吧


                                                                                                        -----------------------------一个小白的不能小白的小白
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  github git ssh
相关文章推荐