You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If Git prompts you for a username and password every time you try to interact with GitHub, you're probably using the HTTPS clone URL for your repository.
As previously announced, starting on August 13, 2021, at 09:00 PST, we will no longer accept account passwords when authenticating Git operations on GitHub.com. Instead, token-based authentication (for example, personal access, OAuth, SSH Key, or GitHub App installation token) will be required for all authenticated Git operations.
一、问题
如下图所示,当执行 git push 推送本地代码至远程仓库时,提示输入账号密码,但按提示输入正确的账号密码后却报错。
二、问题分析
问题一:我的 SSH Key 有正确设置,为什么 git 提示输入账号密码而不使用 SSH Key?
对这个问题,我首先检查了 SSH Key 是否有正常设置。如下图,SSH Key 测试通过,也就是说设置是没问题的。
那为什么 git 不使用 SSH Key,而提示输入账号密码呢? GitHub 文档(Why is Git always asking for my password?)给出了解释:
检查 remote URL 发现确实如文档所述当初 clone 使用的是 HTTPS clone URL:
至此,第一个问题算是解决了。
总结就是当初 clone 的时候使用的是 HTTPS 的 remote URL,后来 push 也就默认使用了 HTTPS 的方式,和 SSH Key 是否正常设置无关。
问题二:为什么按照提示输入了正确的账号密码后会报错?
原因很简单,GitHub 从2021年8月13日 09:00 PST 开始就不接受使用账户密码对 GitHub.com 进行 git 操作了。
ps:脱离业界太久。。。
链接在这里:Git password authentication is shutting down
三、解决办法
问题既然都已明白了,现在就来解决我的需求 —— 使用 SSH Key 进行 git 操作。
操作很简单,只有两步:
一是设置 SSH Key ,参考GitHub 官方文档 Connecting to GitHub with SSH 。
二是更改仓库的 remote URL (使用 SSH 方式的 remote URL)。
ps: 再次使用
git config --get remote.origin.url
命令可确认已经正确更改。四、总结
以后 git clone 只使用 SSH remote URL 。
The text was updated successfully, but these errors were encountered: