删除GitHub的SSH Key后推送代码是否需要输入用户名和密码?
GitHub SSH Key删除及PAT认证相关问题解答
删除SSH Key后的推送认证逻辑
- 首先要确认你本地仓库的远程链接使用的协议类型:如果是SSH协议(格式为
git@github.com:<用户名>/<仓库名>.git),删除GitHub上绑定的对应SSH Key后,推送会直接返回SSH认证失败错误,不会自动弹出用户名密码输入提示,因为SSH和HTTPS是两套独立的认证体系。 - 如果要切换为用户名+Token的认证方式,需要先将本地仓库的远程链接修改为HTTPS格式,修改命令为:
git remote set-url origin https://github.com/<用户名>/<仓库名>.git
修改完成后第一次推送才会触发用户名、密码的输入提示。
PAT作为密码使用的认知验证
你的理解完全正确:
- GitHub自2021年8月起已经全面停用HTTPS协议下的账户原始密码认证方式,所有HTTPS推送场景下,密码输入栏填写对应权限的个人访问令牌(PAT)即可完成认证,用户名仍填写你的GitHub账户用户名。
- 注意创建PAT时需要勾选对应操作的权限,比如推送公开/私有仓库代码需要勾选
repo权限项,否则会出现权限不足的认证失败问题。 - 你也可以配置本地Git凭证存储,避免每次推送重复输入账号和Token,全局启用凭证存储的命令为:
git config --global credential.helper osxkeychain(macOS系统)或git config --global credential.helper wincred(Windows系统)。
内容的提问来源于stack exchange,提问作者Jchapa
相关产品推荐
相关产品推荐

