Mac环境Git推送本地仓库到GitHub提示密码认证失效问题求助
问题解决步骤
1. 先确认个人访问令牌(PAT)配置正确
- 生成令牌时必须勾选
repo权限,权限不足即使输入正确令牌也会认证失败 - 输入密码阶段直接粘贴完整令牌,不要添加任何额外字符,令牌为40位左右的随机字符串
2. 检查本地Git远程仓库地址配置
先执行git remote -v查看当前origin地址,确认地址中的用户名、仓库名和你GitHub端的配置完全一致,你报错中的仓库地址为https://github-jalcoding8@github.com/github-jalcoding8/github-message_generator.git,请优先确认仓库名确实为github-message_generator。如果地址配置错误,执行下面的命令修改:
git remote set-url origin https://<你的GitHub用户名>:<你的PAT令牌>@github.com/<你的GitHub用户名>/<仓库名>.git
直接把令牌嵌入远程地址后,后续推送不需要再手动输入密码。
3. 清理Mac系统钥匙串里的旧GitHub缓存
你之前的旧密码凭证存在Mac系统钥匙串中,Git默认会优先读取旧凭证,所以才会只弹出密码输入框、不弹出用户名输入框,旧凭证覆盖了你新输入的令牌导致报错:
- 打开Mac的「钥匙串访问」应用,搜索
github.com - 删除所有匹配的互联网密码条目
- 再次执行
git push,此时会重新要求输入用户名和密码,用户名填GitHub用户名,密码粘贴PAT即可认证成功
4. 开启凭证缓存避免重复输入
如果不需要每次推送都输入令牌,执行下面的命令开启全局缓存,配置后第一次输入的PAT会自动存储到钥匙串,后续操作无需手动输入:
git config --global credential.helper osxkeychain
长期更优方案:使用SSH密钥认证
比HTTPS+PAT的方式更便捷,不需要管理令牌:
- 本地生成SSH密钥:
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱",全程按回车使用默认配置即可 - 执行
cat ~/.ssh/id_ed25519.pub复制输出的公钥内容 - 到GitHub账号设置的SSH密钥管理页面,新建SSH密钥,把复制的公钥粘贴进去保存
- 回到本地仓库,修改远程地址为SSH格式:
git remote set-url origin git@github.com:<你的GitHub用户名>/<仓库名>.git - 后续推送不需要输入任何凭证
内容的提问来源于stack exchange,提问作者more_to_learn
相关产品推荐
相关产品推荐

