如何在同一台笔记本电脑上为另一个github帐户再次使用相同的ssh公钥?

如何在同一台笔记本电脑上为另一个github帐户再次使用相同的ssh公钥?,git,github,ssh,ssh-keys,Git,Github,Ssh,Ssh Keys,我用我的电脑做很多不同的事情,我相信很多开发者都是这样做的。但我只有一个公共ssh密钥,我希望保持这种方式。我在github.com上有两个帐户:一个供个人使用,一个供我的雇主使用 因此,当我与我的雇主一起使用该帐户时,我正试图像往常一样添加我的ssh密钥,方法是单击“Profile”,然后单击“Settings”,然后单击“ssh和gpg密钥”。然后我粘贴id_rsa.pub内容,并单击“添加ssh密钥”。但它给了我以下信息: “密钥已在使用中” 当然,这是因为我将该密钥用于我的个人帐户。如何

我用我的电脑做很多不同的事情,我相信很多开发者都是这样做的。但我只有一个公共ssh密钥,我希望保持这种方式。我在github.com上有两个帐户:一个供个人使用,一个供我的雇主使用

因此,当我与我的雇主一起使用该帐户时,我正试图像往常一样添加我的ssh密钥,方法是单击“Profile”,然后单击“Settings”,然后单击“ssh和gpg密钥”。然后我粘贴id_rsa.pub内容,并单击“添加ssh密钥”。但它给了我以下信息:

“密钥已在使用中”

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

作为补充质询,我不明白如果同一公钥在两个不同的帐户上使用两次为什么重要。这有什么害处?为什么github不允许这样做


在主机级别和repo级别使用不同的ssh密钥进行提交之间似乎存在差异。

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

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'
对于业主项目,克隆如下

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'
请注意,personal和employer是各自的私钥名称


在完成上述克隆之后,您不需要担心密钥。Git将使用您克隆repo时使用的SSH密钥进行该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'
对于业主项目,克隆如下

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'
请注意,personal和employer是各自的私钥名称


在完成上述克隆之后,您不需要担心密钥。Git将使用您克隆repo时使用的SSH密钥来执行该repo上的所有未来操作。

无法复制可能的副本。如果你向两个帐户添加一个密钥,Github应该如何识别你连接的帐户?嗯。好的,我明白你的意思。那么我只需要执行ssh-keygen等,以及git-config-global user.name jaja和git-config-global user.email吗jaja@email.com ? 然后在设置->ssh和gpg密钥->添加ssh密钥下添加相应的公钥?还需要做什么?您需要多个SSH密钥对-每个帐户一个密钥对。您还需要多个姓名/电子邮件对-帐户也需要一个。在每个回购中配置本地名称/电子邮件,或为一个Github帐户配置全局名称/电子邮件,并在某些回购中为第2/3/etc帐户覆盖它们。在Github注册电子邮件。没有办法复制。如果你向两个帐户添加一个密钥,Github应该如何识别你连接的帐户?嗯。好的,我明白你的意思。那么我只需要执行ssh-keygen等,以及git-config-global user.name jaja和git-config-global user.email吗jaja@email.com ? 然后在设置->ssh和gpg密钥->添加ssh密钥下添加相应的公钥?还需要做什么?您需要多个SSH密钥对-每个帐户一个密钥对。您还需要多个姓名/电子邮件对-帐户也需要一个。在每个回购中配置本地名称/电子邮件,或为一个Github帐户配置全局名称/电子邮件,并在某些回购中为第2/3/etc帐户覆盖它们。在Github注册电子邮件。默认情况下,您的意思是,无论我用于克隆repo的私钥是什么,当我执行所有远程git命令时,都将使用相应的公钥?按照上述方式进行克隆后,您无需担心密钥。Git将使用您克隆repo时使用的SSH密钥进行该repo上的所有未来操作-真的吗?如果是这样,那就太好了。但是为什么这里有这么长的关于需要更改~/.ssh/config文件等的解释呢。?答案是尝试为每个主机me.github.com和work.github.com设置ssh密钥。我的答案是按repo设置。是的,如果您希望在每个主机级别上使用ssh密钥,这就是答案。那么这个问题是这个问题的重复。我明白了,谢谢@Ishanthilinasomari。所以,如果我想从一个本地repo推送到两个不同的远程repo,每个远程repo都需要一个单独的ssh密钥和单独的凭据,那么我不能使用您的答案。在我链接到的问题中,我必须使用每个主机名的答案,并为我要推送到的每个repo指定不同的git远程添加。对吗?您的意思是默认情况下,无论我用于克隆repo的私钥是什么,当我执行所有远程git命令时,都将使用相应的公钥?按照上述方法进行克隆后,您无需担心密钥。Git将使用您克隆repo时使用的SSH密钥进行该repo上的所有未来操作-真的吗?如果是这样,那就太好了。但为什么会有suc
这里有关于需要更改~/.ssh/config文件等的详细说明吗。?答案是尝试为每个主机me.github.com和work.github.com设置ssh密钥。我的答案是按repo设置。是的,如果您希望在每个主机级别上使用ssh密钥,这就是答案。那么这个问题是这个问题的重复。我明白了,谢谢@Ishanthilinasomari。所以,如果我想从一个本地repo推送到两个不同的远程repo,每个远程repo都需要一个单独的ssh密钥和单独的凭据,那么我不能使用您的答案。在我链接到的问题中,我必须使用每个主机名的答案,并为我要推送到的每个repo指定不同的git远程添加。对的