【问题标题】:User not added as collaborator is able to push/pull to private GitHub repository未添加为协作者的用户能够推/拉到私有 GitHub 存储库
【发布时间】:2021-01-31 09:35:27
【问题描述】:

我有两个 GitHub 帐户(例如 personnelwork)。我将我的~/.ssh/config 文件配置为与multiple accounts 一起使用。我为work 帐户创建了ssh 密钥,并将公钥添加到我的work GitHub 帐户。

我创建了一个组织帐户并创建了一个私人仓库。我可以从我的work 帐户克隆/推送/拉到这个私人仓库。每次我推/拉我都需要输入我的密码,所以我添加了 ssh 密钥运行命令ssh-add ~/.ssh/id_rsa_work,我可以推/拉而无需一次又一次地输入密码。但问题是在运行ssh-add ~/.ssh/id_rsa_work 之后,我可以通过我的personnel 帐户克隆/推送/拉取这个私有存储库,我认为这是不应该发生的。

我不确定出了什么问题,但如果有人能指导我正确的方向并告诉我我做错了什么,那就太好了。如果需要,请随时询问相关信息(不是 git/GitHub 专家)

配置文件详情:

#Default GitHub (personnel account)
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

#Work Github
Host github_work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_work

使用pesonnel账号添加远程的命令:

git remote add origin git@github.com:Organisation/hello.git  

work 帐号:

git remote add origin git@github_work:Organisation/hello.git 

【问题讨论】:

  • 您应该使用github-COMPANY 作为主机名来代替文章中描述的github.com。任何时候都不要ssh-add
  • @Ry- 是的。我确实使用github-work(在我的情况下)作为主机名。在我运行ssh-add ~/.ssh/id_rsa_work 之前,一切正常。我从gist 得到了这个想法。
  • SSH 将尝试身份验证代理 (ssh-add) 中的所有密钥。这种行为是预期的。我建议通过 HTTPS 使用 Git 并使用 Git 的凭证管理器而不是通过 SSH 的 Git,因为 SSH 不知道您正在使用哪个存储库而 Git 凭证知道(使用 git config credential.useHttpPath true)。
  • @ephemient “这是意料之中的行为”:奇怪!如果personnel 帐户未作为协作者添加到私人仓库,那么它永远不应该访问我所期望的那个仓库。
  • 调试 ssh 问题:运行ssh -v github-personnel 你应该看到尝试了哪些键,以什么顺序。 -vv-vvv 会给你更多的调试洞察力。

标签: git github ssh-keys git-push git-pull


【解决方案1】:

首先,确保使用 SSH URL 引用两个远程存储库

cd /paath/to/repo
git remote -v

如果其中一个使用 HTTPS,那么它将使用存储/缓存在凭证助手中的凭证(用户名/密码),而另一个将使用正确的密码保护私钥。

其次,您可以尝试使用受密码保护的私钥测试相同的方法,以避免必须处理 ssh-agent,仅用于测试。

【讨论】:

  • 我试过git remote -v。两者都在使用git@github
  • @hacks 然后我需要~/.ssh/config 文件的内容以及用于使用personnal 条目克隆work 私有仓库的确切命令。 (你可以混淆实际的用户名/repo)
  • 我用您要求的详细信息更新了问题。
  • @hacks OK:建议:不要使用 github.com 作为主机入口。使用“personal”。不要使用 git@:永远不要提及用户,它已经在每个配置主机条目中提及。那么试试git remote add origin personal:Organisation/hello.git,看看你是否仍然可以访问repo。
猜你喜欢
  • 2019-07-13
  • 1970-01-01
  • 2021-02-09
  • 1970-01-01
  • 2022-01-15
  • 2021-11-10
  • 2018-05-02
  • 2018-08-15
  • 1970-01-01
相关资源
最近更新 更多