0%

在GitHub多个账号上使用不同的SSH的配置方法

现在遇到这么一个情况,在我电脑上配置了一对SSH秘钥,其中公钥已经添加到了我的GitHub上面。 现在我又申请了一个账号,我同样想添加这个秘钥到这个账号上去,但是GitHub提示了一个错误,说这个公钥已经被使用,不能添加。 于是,我意识到了一个问题,同一个公钥是不能添加到不同的GitHub账号的。在我的GitHub上配置了,另一个就不能配置了。 所以,我需要重新生成一对SSH,过程如下: 在命令行中输入:

1
ssh-keygen -t rsa -C '1016903103@qq.com'
1
2
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): ~/.ssh/id_rsa2 #这里输入一个新的ssh key文件名

在这里我们就输入 ~/.ssh/id_rsa2 了,注意此处一定要加上路径名,要不然生成的秘钥不会保存到 .ssh文件夹中。 后面会让你提示输入密码,直接回车两次就好了,如果你非要输入密码也没事。 接下来就会提示秘钥生成成功,会打印出你生成的秘钥。 ~/.ssh/id_rsa2为新SSH Keys文件名,根据实际情况修改,保证每次不一样即可。 打开新生成的~/.ssh/id_rsa2.pub文件,将里面的内容添加到GitHub后台,在这里我就添加到我另一个GitHub账号里了。 接下来你再Push尝试一下,发现会提交失败,提示如下的内容。

1
2
Please make sure you have the correct access rights 
and the repository exists.

这是因为它默认识别了你第一个私钥,也就是id_rsa 为了让它识别你新生成的私钥,你需要在.ssh目录,注意一定要是.ssh目录,和你的秘钥放在一块。要不然不能识别,新建一个config文件,不要后缀,文件名即为config 输入如下内容:

1
2
3
4
5
Host git@github2.com   #此处可以随意指定
HostName github.com
User git
Port 22
IdentityFile ~/.ssh/id_rsa2 #你新生成的SSH名字

Git的时候不是有一个SSH地址吗?比如我原先的是

1
git@github.com:cqcre/shiyida.git

现在我们就要把它改成

1
git@github2.com:cqcre/shiyida.git

其中:前面的内容就是你填写的Host内容。 你可以随意更改,这里我为了保持风格统一,就把Host设置为了 git@github2.com 如果你的Host设置为xxx,那么我的SSH地址就要改为 xxx:cqcre/shiyida.git,你的地址相对应地更改。 现在尝试一下,就可以Push了,如果还不能,请重新打开Git Bash,需要关闭后再次开启一下Git才能生效的。 如果有问题,与我联系~ 邮箱 1016903103@qq.com QQ 1016903103