啥情况,竟然不能推送代码到github
了!还能不能愉快的玩耍了?
报错如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/431f7d3f94b5462eaf47e34ab027d4e5.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
![报错信息](https://img-blog.csdnimg.cn/c29031220d514a8fb633a26b04539fa9.png)
大概意思就是,8月13后,不能使用用户名+密码的形式进行Push
,强制大家改成SSH
的方式。
先说解决方案吧:
一、查看是否已有密钥
Mac:
/Users/Your_Name/.ssh
把 Your_Name 换成你的用户名
Windows:
c\用户\自己的用户名\.ssh
如果存在,会有以下文件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/9caf6e63a8b340fea08d05227790f15c.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
那么恭喜,直接跳转到步骤三即可!没有则继续【第二步】。
二、生成新SSH
2.1 执行命令生成
ssh-keygen -t rsa -C "youremail@example.com"
然后会提示你生成路径等等,记住路径,一直回车即可:
![生成图片](https://img-blog.csdnimg.cn/cb5c19dc24954eb1b85e03d03387befb.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
2.2 文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/5a39bc69dff1474fa119820ac4643f79.png)
拿到id_rsa.pub
进行【第三步】即可!
三、绑定SSH
登录Github
,依次点击:【Settings】->【SSH and GPG keys】->【New SSH key】
Settings
![在这里插入图片描述](https://img-blog.csdnimg.cn/a02c5513acd0463ba6ddb77e92ee2334.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
SSH and GPG keys
![在这里插入图片描述](https://img-blog.csdnimg.cn/023794d1d0394040ae3488f21d5bb2d2.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
Add new SSH keys
![在这里插入图片描述](https://img-blog.csdnimg.cn/0d5ff7e18e6a4a68819d5a3f13a2508f.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
修改项目 remote
添加完SSH keys
后,我们需要把项目从原有 http
改成 ssh
方式:
git remote -v
git remote set-url origin ssh-url
git push
把ssh-url替换成实际地址,SSH地址从这里拿:
![在这里插入图片描述](https://img-blog.csdnimg.cn/143c5eb5e9e043008a9b5c8c424d9e52.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
然后就成功了!如下图:![在这里插入图片描述](https://img-blog.csdnimg.cn/afd5b68df4b348a8ad9b2925e365e7a4.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxOTM0MjM1NDc1,size_16,color_FFFFFF,t_70)
至此,可以继续愉快的进行玩耍了!
四、SSH
4.1 优点
- 专用于 GitHub,可以根据每次使用或设备单独生成
- 可以在任何时候撤销令牌,且对其他令牌不造成影响
- 可以设置权限,只允许用例所需的访问
- 不会被暴力破解,账户密码方式会被暴力字典破解
4.2 原理
SSH
基于非对称加密算法
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。
附录
Github 官方说明
SSH生成
阮老师的加密文章