Git权限被拒绝,但对不同的用户



我试图用现有文件建立一个repo。所以我遵循了源代码中的简单说明,但在最后一步,当我尝试push时,我得到了这个错误;

remote: Permission to abc/abc.git denied to abc@oldemail.com.
fatal: unable to access 'https://github.com/abc/abc.git/': The requested URL returned error: 403

然后我通过输出命令检查当前用户;

git config user.email

会产生与上面错误不同的电子邮件。此外,尝试验证到github,使用下面的命令成功。

ssh -T git@github.com

我只有一个ssh-key,并且还定义了ssh-agent。

对如何进一步调试有什么建议吗?为什么用旧的邮箱而不是现在的?

谢谢!

注:我在mac上运行yosemite

这与你的配置设置无关。

这与您正在推送的部署键附加到另一个存储库有关。如果你和来自同一本地环境的两个(或更多)不同的github用户一起工作,就会发生这种情况。

要查看您的本地系统以及您拥有哪些部署密钥,您可以在终端中运行:ls -al ~/.ssh

这将显示一个现有密钥的列表。

我打赌你已经把你的一个钥匙命名为你的电子邮件。

所以它看起来像这样:

-rw------- 1 bruger staff 3326 Jul 21 2020 abc@oldemail.com

如果你按照githuubs自己的教程设置部署键,你很快就会有正确的设置来连接到你的存储库,没有任何问题。

更新

我已经读了一段时间了,我发现这篇文章说这与你的本地环境有关。

例如,如果你在Mac上,你可以在Keychain Access中删除你的凭据(搜索"github"),然后再试一次。

您的计算机保存上次推送凭据。您还可以使用git config.credential.helper

查看更多信息

似乎您正在尝试连接GitHub不识别/与您的帐户关联的电子邮件。

A)使用git config, https://help.github.com/articles/setting-your-email-in-git/将电子邮件地址更改为与您的github帐户关联的电子邮件地址。

B)添加从'git config用户返回的电子邮件地址。电邮地址:https://github.com/settings/emails

还要确保你对你试图推送到

的repo有写权限

Github现在有合作者设置了。它解决了我关于这个的所有问题。点击设置>

是的,我认为Peter Palluth的回答是正确的。

当我临时杀死ssh-agent: eval $(ssh-agent -k)时(我可以稍后重新运行它:eval $(ssh-agent)),然后我可以在下一次push尝试中看到我应该输入其密码的ssh密钥不是正确的,而不是上传到github/gitlab上的密钥。

所以我需要强制正确的那个。我可以编辑~/.ssh/config并创建一些主机,如:

Host github-some-account
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_ed25519_github_some_account

现在我需要在我的git config这个主机中使用。我可以在git config --local -e中修复url项目,我会更改:

url = git@github.com:<user>/<repo>.git

url = git@github-some-account:<user>/<repo>.git

然后在github/gitlab上转到Settings(在用户级;但是也可以在存储库级别为每个单独的存储库设置),SSH keys,并确保在那里有SSH密钥。如果没有,使用cat ~/.ssh/id_ed25519_github_some_account.pub,将结果复制到剪贴板,并将其作为New SSH key粘贴到github/gitlab。

然后重试git push

最新更新