由于在sclab2中我不慎将原有仓库删除,因此不得不重新申请账户创建新的仓库,然而进行push会出现错误提示:
Permission denied (publickey)
本博客是为了解决此问题的
前置知识:
1.
首先我们需要了解什么是SSH,关于这部分可以参考网页:
https://zh.wikipedia.org/zh-cn/SSH
简单来说,SSH是一种安全协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
有以下两种模式
2.
我们知道,我们第一次在github进行推送代码时,我们需要输入账号与密码。
但是在后来的代码上传中,并不需要此步骤,这是由于github采取了SHH密钥的形式
在电脑中生成了唯一的SSH公钥与私钥,而github上也有一个公钥,当进行push的时候,
git会自动匹配看你电脑上的秘钥与github上的是否是配对的,如果是配对的,则允许推送。
问题分析:
有了前置的知识后,并且基于错误提示:
Permission denied (publickey)
我们很容易就可以猜测出问题出现的原因,是由于缺少公钥引起的
因此我们需要在github上与自己电脑上创建相同的密钥就可以解决这个问题了
具体的解决问题方法:
cd ~/.ssh
ls
打开命令行(或者git bash),可以使用如上指令查看是否有不会出现三个文件夹:
id_rsa.pub,config,known_hosts
如果出现如上三个文件夹,就说明本地已经有了密钥
如果只出现了一个known_hosts文件夹,则需要生成密钥
生成密匙的命令是:
ssh-keygen -t rsa -C "[email protected]"
其中引号内容改为自己的邮箱
一路回车,就可以生成密匙了
这是会发现已经生成了id_rsa.pub
(若是已有密匙,可以忽略以上生成步骤)
接下来查看id_rsa.pub的内容并复制
进入到个人github账户的settings,然后点击New SSH key,把刚刚复制的内容粘贴。
接下来就发现可以使用
git push指令上传代码了