拒绝git权限,但针对不同用户

lmyy7pcs  于 2023-01-19  发布在  Git
关注(0)|答案(4)|浏览(137)

我试图用现有的文件设置一个repo,所以我按照source的简单说明操作,但是在最后一步,当我尝试推送时,我得到了这个错误;

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运行约塞米蒂国家公园。

yv5phkfx

yv5phkfx1#

这与您的配置设置无关。
这与你推送的deploy密钥被附加到另一个仓库有关,如果你和来自同一个本地环境的两个不同(或更多)的github用户一起工作,就会发生这种情况。
要查看您的本地系统以及您拥有哪些部署密钥,您可以运行:ls -al ~/.ssh在您的终端中。
这将显示您现有密钥的列表。

    • 我敢打赌,您已经将其中一个密钥命名为您的电子邮件。**

它看起来像这样:
-rw------- 1 bruger staff 3326 Jul 21 2020 abc@oldemail.com
如果您遵循Githubs own tutorial on setting up a deploy key,您将很快获得正确的设置,可以毫无问题地连接到您的存储库。

更新

我已经读了一段时间了,我发现this post说它与您的本地环境有关。
例如,如果您使用的是Mac,则可以在"钥匙串访问"中删除凭据(搜索"github"),然后重试。
您的计算机保存最后一个推送凭据。您还可以使用git config.credential.helper查看更多信息

jgwigjjp

jgwigjjp2#

看起来您正在尝试使用GitHub无法识别/关联到您帐户的电子邮件进行连接。
您可以:
A)使用git config,https://help.github.com/articles/setting-your-email-in-git/将电子邮件地址更改为与github帐户关联的电子邮件地址。
B)在此处添加从'git config www.example.com'返回的电子邮件地址:https://github.com/settings/emailsuser.email' here: https://github.com/settings/emails
还要确保您对要推送到的存储库具有写访问权限

blmhpbnm

blmhpbnm3#

Github现在有了协作者设置。它解决了我所有的问题。只要后藤设置〉协作者,然后添加abc@oldemail.com。

yjghlzjz

yjghlzjz4#

是的,我认为彼得·帕卢斯的答案是正确的。
当我临时杀死ssh代理时: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

相关问题