我最近发布了一个关于Git Bash引用旧GitHub帐户用户名的问题。请在此处参阅该帖子:Original Post
现在我完全相信Windows以某种方式存储我的ssh信息并将其用于我的Git bash会话。当我试图推送到远程仓库时,它会一直说明
remote: Permission to MYUSERNAME/project.git denied to OLD-USER-NAME
我已经改变了一切。我搜索了每个目录,我可以查找我的旧用户名的任何参考,但找不到任何东西。我已经重复了SSH密钥生成过程至少3次,没有运气。为什么它会不断提出我的旧用户名?
所以我的问题是,Windows是否有某种类型的ssh密钥缓存系统?即使我明确加载我的新密钥,它仍然会引用我的旧用户名。我唯一能想到的是我的ssh代理没有使用我的新密钥,然后当它尝试连接到github时,它会看到旧密钥并将其与我的旧用户名相关联。但是,由于我从旧的GitHub帐户中删除了旧密钥,因此它没有意义......
我要杀了Git ..
答案 0 :(得分:2)
我认为这里的关键是您可能正在使用HTTPS来克隆新存储库,而新存储库又根本不使用SSH密钥进行身份验证。
我怀疑凭据帮助程序正在缓存您的凭据。见:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-windows
在Windows上,如果您已使用wincred帮助程序(git config --global credential.helper wincred
),则会将您的凭据存储在Windows凭据存储中,该凭据存储具有控制面板界面,您可以在其中删除或编辑存储的凭据。例如,见:
使用此商店,您的详细信息将通过Windows登录进行保护,并且可以在多个会话中保留。这是在Git for Windows 1.8.1.1中添加的。
所以:
尝试使用以下内容清除https克隆存储库的凭据缓存,然后重试:
git credential-osxkeychain erase host = github.com protocol = https
OR,
然后再次尝试推送到HTTPS克隆的存储库时,应再次提示您输入身份验证详细信息。