【问题标题】:How to use same ssh public key again for another on github account same laptop computer?如何在 github 帐户同一台笔记本电脑上再次使用相同的 ssh 公钥?
【发布时间】:2018-06-15 17:43:59
【问题描述】:

我将计算机用于许多不同的事情,我相信许多开发人员都会这样做。但我只有一个公共 ssh 密钥,我希望保持这种状态。我有两个 github.com 帐户:一个供个人使用,一个供我的雇主使用。

因此,当我在雇主处使用该帐户时,我尝试像往常一样添加我的 ssh 密钥,方法是依次单击“个人资料”、“设置”和“ssh 和 gpg 密钥”。然后我粘贴我的 id_rsa.pub 内容,然后单击“添加 ssh 密钥”。但它给了我以下信息:

“Key is already in use”

当然,那是因为我将该密钥用于我的个人帐户。如何允许此密钥也用于我的 github 雇主帐户?谢谢。

作为补充询问,我不明白为什么将相同的公钥用于两个不同的帐户两次会很重要。这样做有什么害处?为什么 github 不允许这样做?

在主机级别和 repo 级别使用不同的 ssh 密钥进行提交似乎有所不同。

【问题讨论】:

  • 没有办法。如果您将一个密钥添加到 2 个帐户,Github 应该如何识别您正在连接的帐户?
  • 嗯。好的,我明白你在说什么。
  • 那么我只需要做ssh-keygen等,git config --global user.name "jaja"git config --global user.email "jaja@email.com"吗?然后在“设置”->“ssh和gpg密钥”->“添加ssh密钥”下添加对应的公钥?还有什么需要做的吗?
  • 您需要多个 SSH 密钥对——每个帐户一个密钥对。您还需要多个名称/电子邮件对——也需要一个用于帐户。在每个 repo 中配置本地名称/电子邮件,或为一个 Github 帐户配置全局名称/电子邮件,并在某些 repo 中为 2nd/3rd/etc 帐户覆盖它们。在 Github 上注册电子邮件。

标签: git github ssh ssh-keys


【解决方案1】:

正如其他人所指出的,您需要生成两个密钥对。然后当您需要在个人项目上使用您的个人密钥时,请按如下方式克隆 repo。

ssh-agent bash -c 'ssh-add /home/<user>/.ssh/personal; git clone git@github.com:user/project.git'

对于雇主项目,克隆如下。

ssh-agent bash -c 'ssh-add /home/<user>/.ssh/employer; git clone git@github.com:user/project.git'

请注意,personalemployer 是各自的私钥名称。

按照上述方式进行克隆后,您无需担心密钥。 Git 将使用您克隆 repo 时使用的 SSH 密钥来执行该 repo 上的所有操作。

【讨论】:

  • 你的意思是默认情况下,无论我使用什么私钥来克隆 repo,当我执行所有远程 git 命令时都将使用相应的公钥?
  • "按照上述方式进行克隆后,您无需担心密钥。Git 将使用您克隆存储库的 SSH 密钥用于该存储库的所有未来操作" - 真的吗?如果是这样,那就太好了。但是为什么这里有这么长的解释需要更改~/.ssh/config 文件等? stackoverflow.com/questions/3225862/…
  • 答案是尝试为每个主机设置 ssh 密钥,me.github.comwork.github.com。我的答案是按回购设置。
  • 是的,如果您想在每个主机级别上使用 ssh 密钥,那就是答案。那么这个问题就是那个问题的重复。
  • 我明白了,谢谢@IshanThilinaSomasiri。因此,如果我想从一个本地存储库推送到两个不同的远程存储库,每个存储库都需要单独的 ssh 密钥和单独的凭据,那么我无法使用您的答案。我必须在我链接到的问题中使用“每个主机名”的答案,并为我要推送到的每个 repo 指定一个不同的git remote add &lt;connection name&gt;。对吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2012-09-06
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 2018-06-20
  • 2023-04-03
相关资源
最近更新 更多