Github 多个账户 - 对 personalUserName/repoName.git 的访问权限被拒绝,提示全局账户名(globalUserName)。

7
更新于2018年5月14日 我升级了我的操作系统并重新启动了我的机器,这显然破坏了我对此问题的修复,这似乎是暂时的。为了再次暂时解决这个问题,我必须执行以下操作:
  1. 运行 eval "$(ssh-agent -s)"
  2. ssh-add ~/.ssh/your-ssh-key
  3. 输入您的 ssh 密钥密码
  4. 运行任何你想要的 git 命令

我需要探索如何使这个修复变成永久的。它与我从 .ssh/config 文件中注释掉 Host * 部分有关,所以我需要弄清楚如何针对一些而不是所有主机使用 keychain,因为所有主机都不能在我的设置中工作。

更新于2018年5月2日:

如果有人遇到这个问题,我使用 ssh -vT git@github.com 的输出查找配置文件被选取的位置,这引导我做了几件事来解决我的问题:

  1. 从我的根目录 ~ 中的 .gitconfig 中删除了 name
  2. 如上所示,我在我的 .ssh/config 文件中有一个 Host * 部分,我注释掉了它
  3. 确认特定仓库上的 git config user.namegit config user.email 设置正确
  4. 确认我的远程仓库设置正确,例如 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配置文件中相关位置的样子:
```html

这是我的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

这是一个有用的问题,你的编辑帮了我很多(谢谢!),但是从“好的stackoverflow实践”的角度来看,建议你不要修改自己的问题并更新它,而是回答自己的问题。 - Andrew E
1个回答

1
我曾经遇到同样的问题——在更改本地仓库配置后,提交/推送仍然被注册到我的用户,该用户没有访问权限(该仓库是由我的用户身份创建的)。
问题不在于我的旧(“全局”)用户仍然被分配给提交——而是该用户仍然连接到提交(在更新我的./git/config之前,我的SSH设置不正确)。
我通过以下方式解决了这个问题:
  1. (假设已经完成,但是)在./git/config中设置特定于存储库的useremail
  2. 确保我的ssh密钥对于这个新的github身份是活动的,ssh-add -K ~/.ssh/id_rsa_newkeyname
  3. 重新启动计算机(可能完全多余,但以防万一很重要)
  4. 将我的暂存更改推送到存储库(这些更改与我的global-user相关,因为我在更改./git/config用户设置之前进行了更改,但正确添加我的其他ssh密钥允许推送继续进行
  5. 完成后,像平常一样进行暂存和提交-所有这些都被分配给新的github身份:party:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接