关于两个SSH的需求

这几天想要再用 GitHub 造一个网站,但是再配置 SSH 的时候出现了问题。发现一台电脑上使用两个公钥和秘钥在上传到 GitHub 上面的时候会出问题……所以就去百度了各种的解决方案,最后成功的搞定了,特意来写一篇博客。

具体操作过程

  • 首先就是你需要拥有两个公钥和秘钥,如果你原本电脑里就有公钥和秘钥了,那么你就去~/.ssh目录下把公钥和秘钥修改一下名字,加一个one的后缀什么的,这样再次生成公钥和秘钥的时候就不会文件名冲突,修改完文件名之后,在 ~/ 目录下打开Git,然后输入指令:ssh-keygen -t rsa –C “youremail@example.com" 直接一路回车就行。

  • 你就会发现又多了两个文件,同样修改文件名,这样你就有两份公钥和秘钥了。如下图:

然后你就把这两个公钥分别上传到 GitHub 的 SSH keys里面,这样两个公钥分别管理两个不同的 GitHub 账号。

但是你实际在上传的时候,你的电脑里有两个秘钥,那么怎么才能根据实际情况去选择你想要上传的账号呢?这里就需要用到下面的配置文件,在 ~/ssh. 文件夹下面新建一个文件叫 config 然后就按照下面的代码格式来写。其中,我的两个的命名本别是 Xorex 和 Katou-Megumi ,这里修改成你的就行了,注意 IdentityFile 填写的是你对应用户的 ssh 公钥地址,记得填对文件名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Xorex
Host Xorex.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_Xorex
user Xorex

# Katou-Megumi
Host Katou-Megumi.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_Katou-Megumi
user Katou-Megumi

  • 写完之后保存一下,然后可以分别通过指令 ssh -T git@Xorex.github.comssh -T git@katou-megumi.github.com来对所对应的github公钥进行连接。如下:
1
2
3
4
$ ssh -T git@Xorex.github.com
Hi Xorex-chan! You've successfully authenticated, but GitHub does not provide shell access.
$ ssh -T git@Katou-Megumi.github.com
Hi Megumi-Katou! You've successfully authenticated, but GitHub does not provide shell access.
  • 然后我就要提醒一下各位需要在一个电脑上面控制两个博客的朋友们,你们一定要记得,把博客配置文件里的 Git 地址给更换掉,不然不会成功的。

比如下面的两个已经「折磨」我很久,需要修改成 git@NewUser.github.com 的地方。

好了大概就这些了,我的博客就是因为搞两个 SSH 结果各种 Bug 层出不穷,所以特地来写一篇博客,希望有相同意向的程序员可以少走弯路,Ps:有问题可以来请教我,个人页面里留有 QQ 账号。