由于要连接两个GitHub的账号,需要添加两个ssh。相关的步骤如下。

1 生成两个秘钥

先到ssh目录下,一般是:C:\Users\你的电脑用户名\.ssh,比如我的是:C:\Users\Hexin\.ssh。然后在该目录下调出Git,依次输入一条然后分别回车:

1
2
ssh-keygen -t rsa -f ~/.ssh/秘钥名称1 -C "邮箱1"
ssh-keygen -t rsa -f ~/.ssh/秘钥名称2 -C "邮箱2"

比如我的用户名一个是YXM,一个是HJJ,那么就是如下的代码:

1
2
ssh-keygen -t rsa -f ~/.ssh/id_rsa_YXM -C "YXM@qq.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa_HJJ -C "HJJ@qq.com"

注意,秘钥名称你可以随意选取,自己知道就好。只要是两个不一样的就行。没必要一定和邮箱名一样,也不用在前面强制性加上id_rsa_这个前缀。

2 配置秘钥

先生成配置文件,在Git中输入:touch config。然后打开这个config文件,进行编辑。

1
2
3
4
5
6
7
8
9
10
11
#第一个账号
Host YXM.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_YXM

#第二个新账号
Host HJJ.github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_HJJ

基本就是按照这个格式改写就行。注意host的名称任意,你认识就好。要注意的是把后面的秘钥文件改成你生成的那两个。

3 添加秘钥

执行命令:

1
2
ssh-add ~/.ssh/id_rsa_YXM
ssh-add ~/.ssh/id_rsa_HJJ

如果出现错误提示:

Could not open a connection to your authentication agent.

则先执行:

1
ssh-agent bash

然后在执行添加秘钥的命令。
最后把这两个秘钥添加到GitHub的仓库里面的SSH Key里面去。在设置里面找到这个添加就行。

添加ssh key
添加ssh key

title随便取。第二个框里面把文件id_rsa_YXM.pub里面的内容复制粘贴进来就行。
如果是要添加博客里面的deploy key的话先找到博客仓库的设置,在设置里面添加key。过程可以看之前的文章也谈Hexo+Github创建独立博客,里面提到如何添加deploy sshkey。

测试一下看看是否能连接上:

1
2
ssh -T git@YXM.github.com
ssh -T git@HJJ.github.com

成功的话如下图:

ABHN8I.png
ABHN8I.png

4 在hexo中修改deploy的配置项

如果是推送到博客的话,就需要对配置项里面的deploy项进行修改:

1
2
3
4
deploy:
type: git
repository: git@YXM.github.com:你的用户名/你的用户名.github.io.git
branch: master

原来的是没有“YXM”的。原来的应该是这样:

1
2
3
4
deploy:
type: git
repository: git@github.com:你的用户名/你的用户名.github.io.git
branch: master

本文参考了以下两篇文章,向他们表示感谢:

  1. Permission denied (publickey). fatal: Could not read from remote repository.
  2. 一台电脑使用两个或多个 GitHub 账号部署两个或多个 Hexo 博客
  3. 多个github帐号更新多个hexo博客

第二、三篇文章足够详细,建议参考。