啥情况,竟然不能推送代码到
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 origin ssh-url
git push
把ssh-url替换成实际地址,SSH地址从这里拿:
然后就成功了!如下图:
至此,可以继续愉快的进行玩耍了!
四、SSH
4.1 优点
- 专用于 GitHub,可以根据每次使用或设备单独生成
- 可以在任何时候撤销令牌,且对其他令牌不造成影响
- 可以设置权限,只允许用例所需的访问
- 不会被暴力破解,账户密码方式会被暴力字典破解
4.2 原理
SSH
基于非对称加密算法
(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。