这个描述相当复杂。我有两个github帐户,我将它们称为github A和B.
我创建了一个本地repo X并试图将它连接到我在github帐户A上创建的新远程仓库。但是,我的github帐户B设置了我的默认github登录凭据。我经历了{{3}并且能够添加在我的.ssh中创建的第二个密钥以允许我访问acct。随意。这个方法有效,并允许我将github帐户A上的新远程仓库添加到我的本地仓库X.然后我就可以将原点推送到master了。
然后我在github帐户A上复制了相同的repo X并将其放在一个新的本地位置(相同的驱动器,不同的文件夹),我将其称为本地repo Y.然后我尝试将更改推送到在github A上使用相同的远程仓库并且它拒绝我说我正在尝试使用我的用户名访问我的远程github B帐户。
我尝试通过先前为repo X创建的相同特殊.ssh键重新添加远程URL,并将其用于本地repo Y,但它表示它已经存在。
我在这里寻找一个简单的解决方案,希望有一个存在。我很感激你的帮助。
答案 0 :(得分:1)
您可以测试使用的实际密钥:
ssh -Tv <yourSSHConfigEntry>
请务必使用像yourSSHConfigEntry这样的ssh网址:/(不需要在git@
前加上User
应该在~/.ssh/config
文件中)
这个想法是:您的SSH配置文件应该使用正确的私钥,其公钥已经注册到正确的GitHub帐户。
检查远程网址:git remote -v
。如果它以git@github.com
开头,则不会使用ssh config条目。
类型:
git remote set-url origin <my-github-acct-A>:<user>/<repo>
这将使用SSH配置条目,并确保其中的用户是“git
”。
答案 1 :(得分:0)
我非常确定您遇到的问题是在同一台计算机上管理多个帐户的结果,无论回购是否重复。 如果您还没有,我建议您查看here提供的非常详细的答案。
答案 2 :(得分:0)
我多次经历过这个问题并通过设置ssh配置规则或强制ssh-agent单独使用正确的ssh密钥解决了这个问题。
我已经记录了整个过程,Freecodecamp发表了这篇文章。 这是the link!希望这会在您遇到此用例时提供帮助。 :)