众所周知访问git远程仓库通常是使用SSHHTTP协议,在没有配置SSH的情况下,首次操作远程私有仓库时会提示输入账号密码。但是在使用github时,输入账号密码之后会得到以下提示

Username for '<https://github.com>': nroyliu
Password for '<https://nroyliu@github.com>':
remote: 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.

意思是github在2021年8月13已经移除对密码身份验证的支持。

如果想继续使用http协议操作访问github可以使用凭证储存辅助工具credential-manager通过oauth授权或者token登录。

凭证储存可以配置以下选项

选项描述
cachecache 将凭据在内存中进行短时间的缓存
storestore通过明文的方式将用户名和密码保存到用户目录下,可以使用记事本直接打开
osxkeychain(仅在Mac下可选择)它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的
managerGit Credential Manager可以通过各种不同的身份验证方法(例如用户名/密码、SSH密钥、OAuth令牌等)来处理身份验证

查看当前凭证储存辅助
git config --global credential.helper

设置使用manager
git config --global credential.helper manager

下次克隆需要身份验证的 URL 时,Git 会弹窗提示你使用浏览器窗口或 TOKEN 登录。

如果在 Windows 版凭据管理器中缓存了不正确或过期的凭据,Git 将无法访问 GitHub。 若要重置缓存的凭据,以便 Git 提示输入凭据,请在 Windows 控制面板中的“用户帐户”>“凭据管理器”下访问凭据管理器。 找到 GitHub 条目并将其删除。

Git

添加新评论