github的token使用方法
今天从本地向github push代码发,失败了。错误消息如下:
remote: Support for password authentication was remove on August 123, 2021. Please use a personal access token instead.
原因是github不再使用密码方式验证身份,现在使用个人token。
本文记录,
- 如何生成token
- 在命令行下怎样使用token
github如何生成token
github的官方有给出如何生成个人token的文档。参考github官网生成token文档
这里给出简要的步骤:
- 进入个人github账户setting
- 点击Developer settings
- 选择Personal access tokens
- 点击 Generate new token
- 为你创建的token添加描述
- 选择token有效期时间。可以选择永不过期
- 为token赋予权限。如果从命令行操作仓库,至少选中repo
- 点击生成。生成之后先复制下来,后面会用到。注意:离开这个页面,之后你将看不见这个token的明文了。
命令行如何使用token
之前,github使用用户名和密码作为身份验证,现在使用用户名和token作为验证。
比如,github官网给出的示例。克隆一个仓库,提示输入用户名和密码,此处就可以使用上面生成的token作为密码使用。
$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
但是有一个问题,我们总不能记住那么长的一串token吧
为了解决这个问题,github提供了gh工具,通过gh登录验证身份后,之后再不需要验证身份。
此处只演示ubuntu安装gh工具。
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
$ sudo apt-add-repository https://cli.github.com/packages
$ sudo apt update
$ sudo apt install gh
然后使用gh进行认证
$ gh auth login
# 输入你的用户名和token
如下图所示:使用键盘上下键选择对应项,回车键确认。
依次选择Github.com, HTTPS(如果使用的https协议)
根据自己使用的协议选择HTTPS或者SSH
输入Y或者y
选择使用网页浏览器认证或者粘贴token认证,二者选择一个即可。如果是ssh远程登录,命令行中无法打开远程的浏览器,那么只能选择token验证了。
选择使用网页认证:先复制命令行中生成的一次性验证码,比如我这里本次是5C38-D954。然后回车,自动打开网页浏览器,输入一次性验证码,授权即可完成认证。
如果上面选择使用token认证,那么输入你的token即可。
如果换了一台机器,那么重新生成一个新的token,然后gh auth login即可。
版权归原作者 chengwenyang 所有, 如有侵权,请联系我们删除。