Git持续使用旧GitHub凭据,多账号配置失效求助
解决GitHub多账号SSH凭据失效问题
1. 验证SSH密钥与账号的关联有效性
- 直接测试指定密钥的SSH连接,确认工作密钥是否绑定到正确的GitHub账号:
执行后如果返回工作账号的欢迎信息,说明密钥本身没问题;若返回个人账号信息,检查工作密钥是否已添加到工作GitHub账号的SSH设置中。ssh -T git@github.com -i ~/.ssh/你的工作密钥文件名
2. 确保SSH配置文件正确且生效
- 编辑
~/.ssh/config文件,为不同账号配置独立的Host条目,必须添加IdentitiesOnly yes强制使用指定密钥,示例配置:Host github-personal HostName github.com User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes Host github-work HostName github.com User git IdentityFile ~/.ssh/id_rsa_work IdentitiesOnly yes - 保存文件后,测试工作账号的SSH连接:
ssh -T github-work
3. 修正工作仓库的远程URL
- 检查当前仓库的远程URL是否使用了SSH配置中的Host别名:
git remote -v - 如果是默认的
git@github.com:xxx/xxx.git或HTTPS地址,修改为对应工作账号的Host别名格式:git remote set-url origin github-work:工作账号用户名/工作仓库名.git
4. 确认仓库级别的用户信息正确
- 进入工作仓库目录,检查本地配置的用户信息:
git config user.name git config user.email - 若不是工作账号信息,重新设置(不要加
--global,避免覆盖全局配置):git config user.name "工作账号用户名" git config user.email "工作账号邮箱"
5. 彻底清理Git凭据缓存
- 检查Git的凭据助手设置:
git config --global credential.helper - 若为
osxkeychain,清除GitHub相关的HTTPS凭据:
执行后依次输入:git credential-osxkeychain erase
按回车完成清除。同时在macOS「密钥链访问」中搜索host=github.com protocol=httpsgithub,删除所有相关条目。
6. 测试推送并排查日志
- 执行推送测试:
git push - 若仍有问题,开启SSH调试日志查看连接细节:
从日志中可以看到Git尝试使用的密钥文件,定位问题根源。GIT_SSH_COMMAND="ssh -v" git push
内容的提问来源于stack exchange,提问作者Mike Thomsen
相关产品推荐
相关产品推荐

