Github 多个帐户-personalUserName/repoName.git 的权限被拒绝给 globalUserName

Posted

技术标签:

【中文标题】Github 多个帐户-personalUserName/repoName.git 的权限被拒绝给 globalUserName【英文标题】:Github multiple accounts - Permission to personalUserName/repoName.git denied to globalUserName 【发布时间】:2018-08-26 08:53:21 【问题描述】:

2018 年 5 月 14 日更新 我更新了我的操作系统并且不得不重新启动我的机器,所以这显然搞砸了我对这个问题的修复,这似乎是暂时的。要再次临时解决此问题,我必须执行以下操作:

    eval "$(ssh-agent -s)" ssh-add ~/.ssh/your-ssh-key 输入你的 ssh 密钥密码 运行任何你想要的 git 命令

我需要考虑将其永久化。这肯定与我从我的 .ssh/config 文件中注释掉 Host * 部分有关,所以我需要弄清楚如何为某些而不是所有主机使用钥匙串,因为所有主机都不适用于我的设置。

2018 年 5 月 2 日更新:

如果有人遇到此问题,我使用 ssh -vT git@github.com 的输出来查找从何处获取配置,这导致我做一些事情来解决我的问题:

    从我的根文件夹.gitconfig 中删除了name~ 如上所示,我的.ssh/config 文件中有一个部分用于Host *,我已将其注释掉 确认 git config user.namegit config user.email 已针对我正在处理的特定 repo 正确设置 确认我的远程仓库设置正确,例如git remote set-url origin git@github-newkeyname:repo_git_target

谢谢。


我有一个工作和一个个人 GitHub 帐户,最近想在我的个人帐户上工作。但是,我一直收到一条错误消息说

Permission to personalUserName/repoName.git denied to globalUserName

我查找了如何使用多个 GitHub 帐户并找到了本教程 - https://code.tutsplus.com/tutorials/quick-tip-how-to-work-with-github-and-multiple-accounts--net-22574

我按照所有说明操作,最后使用新密钥添加了遥控器,如教程中所述,例如

git remote add origin git@github-newkeyname:username/repoName.git

当我尝试从本地项目推送到我的个人 GitHub 存储库时,我收到以下错误:

ERROR: Permission to localUserName/repoName.git denied to globalUserName.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我在这里注意到的一件事是localUserName/repoName.git 包括我使用git config user.name 添加的本地用户名,并且错误显示使用git config --global user.name 添加的用户名(很久以前)被拒绝了权限。

我不确定问题是否与 SSH 密钥或 git 配置有关,或两者兼而有之。有人有什么建议吗?

当我使用 ssh -vT git@github-newkeynamessh -vT git@github 测试我的 SSH 连接时,我看到两者都使用相同的用户名进行身份验证,在这种情况下,我称之为 globalUserName,即

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
Hi globalUserName! You've successfully authenticated, but GitHub does not provide shell access.

这是我的 SSH 配置文件在相关位置的样子:

94 Host *
95 UseKeychain yes
96 AddKeysToAgent yes
97 IdentityFile ~/.ssh/someFile.pem
98
99 Host github-newkeyname
100 Hostname github.com
101 User git
102 IdentityFile ~/.ssh/id_rsa_newkeyname
103 IdentitiesOnly yes

【问题讨论】:

这是一个有用的问题,您的编辑帮助了我(谢谢!),但反馈“良好的 *** 实践”:与其通过更新修改您自己的问题,不如回答您自己的问题。 【参考方案1】:

我遇到了同样的问题 - 在更改我的本地 repo 的配置后,提交/推送仍然被注册到我的 old 用户,该用户没有 repo 访问权限(repo 是由我创建的用户身份)。

问题不在于我的旧(“全局”)用户仍被分配到 new 提交 - 而是该用户仍连接到 old 提交(在更新我的./git/config 之前,我的 SSH 设置不正确。

我通过以下方式解决了这个问题:

    (假设这已经完成了,但是:)在./git/config 中设置特定于回购的useremail 确保我的 ssh 密钥对于这个新的 github 身份是有效的,ssh-add -K ~/.ssh/id_rsa_newkeyname 重新启动我的计算机(可能完全是多余的,但以防万一它很重要) 将我的分阶段更改推送到存储库(这些更改与我的global-user 相关联,因为我在更改我的./git/config 用户设置之前进行了这些更改,但正确添加了我的其他 ssh 密钥允许推动继续进行 完成后,照常进行阶段和提交 - 所有这些都分配给新的 github 身份:party:

【讨论】:

以上是关于Github 多个帐户-personalUserName/repoName.git 的权限被拒绝给 globalUserName的主要内容,如果未能解决你的问题,请参考以下文章

合并多个 github 用户帐户并转移提交

多个github帐户错误

Linux 上的多个 github 帐户 - 无法推送到远程,但可以拉取

text 不同github帐户的多个SSH密钥设置

markdown 用于不同github帐户的多个SSH密钥

markdown 用于不同github帐户的多个SSH密钥