在Windows子系统Ubuntu中推送GitHub时登录凭证错误求助
解决GitHub密码登录失败问题
GitHub在2021年就已停止支持通过账号密码直接使用HTTPS协议进行Git操作,这是你遇到登录失败的核心原因,和密码修改、Git版本无关。下面是两种可行的解决方法:
方案1:使用个人访问令牌(PAT)替代密码
- 登录GitHub账号,依次进入「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」
- 点击「Generate new token」,设置令牌名称、有效期,勾选
repo权限(若有其他需求可额外勾选),生成后务必复制保存令牌内容(页面关闭后无法再次查看) - 执行
git push时,在用户名输入框填写你的GitHub用户名,密码输入框粘贴刚才生成的PAT,回车即可完成推送
也可以直接修改远程仓库URL,将用户名和PAT嵌入其中(注意此方式会把PAT存储在本地,存在安全风险,谨慎使用):
git remote set-url origin https://<你的GitHub用户名>:<你的PAT>@github.com/nessed/lmc-website1.git
修改后再次执行git push -u origin main就不会再弹出密码输入提示。
方案2:使用SSH密钥(更安全,推荐)
- 在Ubuntu终端生成SSH密钥:
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
全程按回车使用默认配置即可,生成的公钥文件路径为~/.ssh/id_ed25519.pub
2. 查看并复制公钥内容:
cat ~/.ssh/id_ed25519.pub
- 登录GitHub,进入「Settings」→「SSH and GPG keys」→「New SSH key」,粘贴公钥内容,设置名称后保存
- 修改本地仓库的远程URL为SSH地址:
git remote set-url origin git@github.com:nessed/lmc-website1.git
- 测试SSH连接是否成功:
ssh -T git@github.com
若看到提示Hi nessed! You've successfully authenticated, but GitHub does not provide shell access.,说明配置完成,此时执行git push -u origin main即可正常推送。
内容的提问来源于stack exchange,提问作者Ali Abid
相关产品推荐
相关产品推荐

