有一段时间没使用github去push项目了,今天push之后,根据提示输入账号密码,但是失败了,报错如下:
support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/skrqwa/test.git/'
wenanqin@WenandeMacBook-Air test %
第一句话的大致意思就是原先的密码凭证从2021年8月13号开始就不能用了。怎么办呢?解决办法就是使用个人令牌(personal access token),就是把密码换成token来进行验证。
1.什么是token(令牌)
Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
2.token的特点
唯一:令牌特定于github,可以按使用和设备生产
可撤销:可以随时单独撤销令牌,无需更新未受影响的数据
有限:令牌可以缩小范围以仅允许用例的访问
3.如何在github上生成自己的令牌
1.点击github的设置settings
2.往下拉,选择开发者设置 developer settings
3.选择personal access tokens下的token(classic),然后generate new token
4.设置token的有效期,访问权限等
- 访问仓库权限,选repo
- 删除仓库权限,选delete_repo
5.把生成的token(一串字符)保存下来,下次刷新网页后会消失
3.使用token进行push
在输入密码的位置粘贴你的token即可进行push操作了。
也可以 把token直接添加远程仓库链接中,这样就可以避免同一个仓库每次提交代码都要输入token了:
git remote set-url origin https://<your_token>@github.com/<USERNAME>/<REPO>.git
- <your_token>:换成你自己得到的token
- < USERNAME >:是你自己github的用户名
- < REPO>:是你的仓库名称
原文链接:https://blog.csdn.net/qq_41646249/article/details/119777084