未添加为协作者的用户可以推/拉到私有GitHub存储库

问题描述

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

我创建了一个组织帐户并创建了一个私人仓库。我可以从我的work帐户克隆/推送/拉到该私人仓库。每次我推/拉时都需要输入密码,因此添加了ssh key运行命令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 

解决方法

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

cd /paath/to/repo
git remote -v

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

第二,您可以尝试使用受密码保护的私钥( )来测试相同的方法,以避免仅出于测试目的而处理ssh-agent。