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

738 阅读2分钟

啥情况,竟然不能推送代码到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)乙方得到加密后的信息,用私钥解密。

附录