使用非默认 SSH 密钥的 git 克隆



我需要从本地机器上使用我的公司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:Usersalex.sshnew_key_rsa

ssh-add <path to the new key file>返回"连接到代理时出错:没有此类文件或目录" 我想是因为在这台机器上我没有安装 Git-Bash。 (据我了解,实际上必须始终启动并运行 ssh 代理?

GIT_SSH_COMMAND='ssh -i C:Usersalex.sshnew_key_rsa'返回"'GIT_SSH_COMMAND'未被识别为内部或外部命令">

[临时解决方案:GitHub 桌面]

作为临时解决方案,我正在使用GitHub Desktop
它始终使用浏览器进行身份验证(也是在您传递用户/密码并输入短信收到的验证码之后!!(,并且始终使用浏览器中登录的用户。
因此,我输入公司帐户的用户名和密码,单击"登录",接收带有验证码的短信,确定。 它说我必须使用浏览器进行身份验证,单击"继续"...它会打开浏览器,我会自动使用我的个人帐户进行身份验证!
因此,我必须从我的个人帐户注销浏览器,在浏览器中使用我的公司帐户登录后重复该过程。
(我为此打开了一个问题(
它让我可以从列表中选择要克隆的存储库。我克隆了它,我发现它使用的是HTTPS URL(repo/.git//config(:

[remote "origin"]
url = https://github.com/<my-company-repo>.git

(也许我可以把它改成SSH,我会尝试的( 所以,我希望这个解决方案不需要我经常在浏览器中切换用户。我仍然想知道如何直接使用 git 进行操作(没有 3rd 方工具(。

作为临时解决方案,我试图将其放入 GIT 配置中,但不起作用

要使用该配置,您需要:

  • 将用户更改为git(与 GitHub 的 SSH 连接始终使用"git":私钥将对实际用户进行身份验证(
  • 更改您的网址

所以:

Host GitHub
HostName github.com
User git <<=== not alex!
IdentityFile c:Usersalex.sshnew_key_rsa

和:

cd C:pathtorepo
git remote set-url GitHub:<me>/<myrepo>

关键部分是否使用绑定

私钥来git@github.com

这里的配置条目被命名为GitHub(但它可以命名为xxx(。
这就是为什么URL必须变得GitHub:<company>/<comany-repo>.git才能使用该~/.ssh/config条目"GitHub"。

您可以为同一 git@github.com 定义许多条目,正如我在 8 年前的"如何从 SSH 密钥已添加到与工作相关的 GitHub 帐户的办公室计算机处理个人 GitHub 存储库?

最新更新