【发布时间】:2023-03-08 18:33:01
【问题描述】:
我需要在本地机器上使用我公司的 GitHub。
我更喜欢使用 SSH。
我有一个私人 GitHub 帐户,该帐户已使用带有本地默认密钥 (~/.ssh/id_rsa.pub) 的 SSH。
我使用 Windows。
我已使用公司帐户登录,并且可以查看存储库。
如果我这样做 git clone <git url> 或 git clone <https url> 我会收到:“找不到存储库”。
通过git -T git@github.com,我看到我已使用我的个人 GitHub 帐户进行身份验证。
我尝试在公司 GitHub 帐户上注册本地默认 SSH 密钥 (id_rsa.pub),但它说该密钥已在使用中(我想它指的是我的个人帐户)。
我注册了另一个密钥(id_rsa_test.pub),但我在 git 中找不到任何参数来传递不同的密钥/凭据?
如何在本地 PC 上使用 git 和 SSH而不用特定的 SSH 密钥替换我的个人 SSH 密钥?
作为临时解决方案,我尝试将其放入 GIT 配置中,但不起作用(仍然“找不到存储库”错误)
Host GitHub
HostName github.com
User alex-company-user
IdentityFile c:\Users\alex\.ssh\new_key_rsa
ssh-add <path to the new key file> 返回“连接代理时出错:没有这样的文件或目录”
我想是因为在这台机器上我没有安装 Git-Bash。
(据我了解,实际上必须始终启动并运行 ssh-agent?)
GIT_SSH_COMMAND='ssh -i C:\Users\alex\.ssh\new_key_rsa' 返回“'GIT_SSH_COMMAND' 未被识别为内部或外部命令”
[临时解决方案:GitHub Desktop]
作为临时解决方案,我使用 GitHub Desktop。
它总是通过浏览器进行身份验证(在您传递用户/密码并输入短信收到的验证码之后!!)并且它总是在浏览器中使用已经登录的用户。
于是,我输入我公司账户的用户名和密码,点击“登录”,收到带有验证码的短信,OK。它说我必须通过浏览器进行身份验证,单击“继续”...它会打开浏览器,我会自动使用我的个人帐户进行身份验证!
因此,我必须从我的个人帐户退出浏览器,然后在浏览器中使用我的公司帐户登录后重复该过程。
(我为此打开了一个问题)
它让我可以从列表中选择要克隆的存储库。我克隆了它,发现它使用的是 HTTPS URL(repo/.git//config):
[remote "origin"]
url = https://github.com/<my-company-repo>.git
(也许我可以将其更改为 SSH,我会尝试) 所以,我希望这个解决方案不需要我经常在浏览器中切换用户。我仍然想知道如何直接使用 git 来做到这一点(没有 3rd 方工具)。
【问题讨论】:
-
没有真正的理由在您的公司帐户中重复使用您的个人密钥。只需生成一个新的对。
-
问题是,当我执行 git clone
时,该 repo 不可见,因为 GIT 不允许传递“其他”SSH 密钥。这就是我认为“找不到存储库错误”的原因。我的公司回购显然是私有的。