技术笔记(6)SourceTree Push到github时报错
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
即无法通过输入账号密码的方式来验证,需要使用个人token来验证。昨晚搜到了很多无效方法,搞得有点头痛了,记录一些有效的方法。
解决方法一(Token)
-
在github官网点击个人头像,
-
选择Settings,
-
左侧底部选择Developer settings,
-
选择Personnal acess tokens,
-
此处我们有两种选择,一是Fine-grained tokens,二是Tokens(classic)。简单理解的话第一个就是升级版的更安全的token令牌,按GitHub文档中的说法,Fine-grained tokens有以下几个安全优势:
- 每个令牌只能访问单个用户或组织拥有的资源。
- 每个令牌只能访问特定的存储库。
- 每个令牌都被授予特定的权限,这些权限比授予 personal access tokens (classic) 的范围提供更多的控制。
- 每个令牌都必须具有到期日期。
- 组织所有者可要求必须获取对可访问组织中资源的任何 fine-grained personal access token 的批准。
-
那我们直觉肯定就是升级版更好嘛,但也要注意,有些功能仅适用于classic版本的token:
- 只有 personal access tokens (classic) 对不由你或你所属的组织拥有的公共存储库具有写入访问权限。
- 外部协作者只能使用 personal access tokens (classic) 访问他们参与协作处理的组织存储库。
- 少数 REST API 终结点仅支持 personal access tokens (classic)。
-
点击右侧的Generate new token按钮
-
如果我们只是初学想练练手,没那么多安全需求,什么Fine-grained细粒度,repo-scoped存储库范围这些概念看得头昏眼花的话,可以选择简单的Generate new Tokens(classic)。
-
Note填些提示信息,比如TestToken、MyToken
-
在Expiration使用期限中可以选择这个Token能用多久,最后一个No expiration是无限期。
-
下面的Select scopes则是为当前Token分配一些想要的额外权限,初学可以不必理会
-
直接到最底下点Generate token
-
注意Make sure to copy your personal access token now. You won’t be able to see it again!,意思这个Token只给你看这一次,以后就看不到了,所以可以自己保存记录一下,不过也无所谓,反正可以随时删掉生成一个新的。
-
这时候回到图形化界面,以SourceTree举例,点设置,远程仓库,添加远程仓库路径。在自己的远程仓库地址url中加入Token秘钥@ ,比如:
- 原本是:https://github.com/bqza000/ProjectTest.git,
- 变为:https://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@ github.com/bqza000/ProjectTest.git
-
或是在命令行界面输入:
git remote add origin https://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@ github.com/bqza000/ProjectTest.git
-
网络正常的情况下,便可以正常提交和拉取了
解决方法二(SSH)
-
在github官网点击个人头像,
-
选择Settings,
-
左侧中部选择SSH and GPG keys,先留着这个页面,待会要用
-
在命令行git bash中输入 ssh-keygen -t rsa -C "注册git用的邮箱",连续敲三下回车,一是确认在默认文件夹中生成,二是设置密码,三是确认密码。用以生成自己的SSH公钥
-
而后去C:\Users\用户名\.ssh文件找刚刚生成的SSH公钥,用记事本Noped打开
-
复制里面一大串的内容到刚刚github打开的页面里面,粘贴到key框里,并点击Add SSH key
-
这时候回到SourceTree里点击工具、选项
-
在SSH客户端配置下拉菜单里选择OpenSSH,它会自动识别默认公钥位置,点击确认
-
网络正常的情况下,便可以正常提交和拉取了
remote: unable to access 'https://github.com/bqza000/ProjectTest.git/': Failed to connect to github.com port 443 after 21013 ms: Couldn't connect to server
如果上面的报错解决之后,紧接着出现了这个报错。这个是单纯网络问题,连不上github的服务器。建议方法,科学地上网。或者某些加速器也可以加速github网站。
标签:tokens,github,personal,access,token,git,Push,SourceTree From: https://www.cnblogs.com/bqza000/p/18066022