git@github.com: Permission denied (publickey)问题解决
如果没有安装git就先在Linux上安装Git
1 |
sudo apt-get install git |
安装完成后,还需要最后一步设置,在命令行输入:
1 2 |
<span class="variable"><span class="string">git config --global user.name "keigui" git config --global user.email "995204185@qq.com"</span></span> |
在继续阅读后续内容前,请自行注册GitHub账号。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
1 |
ssh-keygen -t rsa -C "995204185@qq.com" |
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
进入路径vim ~/.ssh/id_rsa.pub复制公钥到GitHub设置中的SSH keys
( 在Vim中,按下Esc键,确保你处于命令模式。然后输入冒号(:)并在命令行中输入q(表示退出)或者q!(表示强制退出,不保存修改)。最后按下回车键即可退出Vim )
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
至此,问题解决。