Push failed Remote: Support for password authentication was removed on August 13

啥情况,竟然不能推送代码到github了!还能不能愉快的玩耍了?

报错如下:
在这里插入图片描述

报错信息
大概意思就是,8月13后,不能使用用户名+密码的形式进行Push,强制大家改成SSH的方式。
先说解决方案吧:

一、查看是否已有密钥

Mac:

/Users/Your_Name/.ssh
复制代码

把 Your_Name 换成你的用户名
Windows:

c\用户\自己的用户名\.ssh
复制代码

如果存在,会有以下文件:
在这里插入图片描述
那么恭喜,直接跳转到步骤三即可!没有则继续【第二步】。

二、生成新SSH

2.1 执行命令生成

ssh-keygen -t rsa -C "youremail@example.com"
复制代码

然后会提示你生成路径等等,记住路径,一直回车即可:
生成图片

2.2 文件

在这里插入图片描述

拿到id_rsa.pub进行【第三步】即可!

三、绑定SSH

登录Github,依次点击:【Settings】->【SSH and GPG keys】->【New SSH key】

Settings

在这里插入图片描述

SSH and GPG keys

在这里插入图片描述

Add new SSH keys

在这里插入图片描述

修改项目 remote

添加完SSH keys后,我们需要把项目从原有 http 改成 ssh方式:

git remote -v
git remote set-url orgin ssh-url
git push
复制代码

把ssh-url替换成实际地址,SSH地址从这里拿:在这里插入图片描述

然后就成功了!如下图:在这里插入图片描述
至此,可以继续愉快的进行玩耍了!

四、SSH

4.1 优点

  • 专用于 GitHub,可以根据每次使用或设备单独生成
  • 可以在任何时候撤销令牌,且对其他令牌不造成影响
  • 可以设置权限,只允许用例所需的访问
  • 不会被暴力破解,账户密码方式会被暴力字典破解

4.2 原理

SSH 基于非对称加密算法

(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。

附录

Github 官方说明
SSH生成
阮老师的加密文章

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享