原本想用Hexo搭建两个网站,就创建了两个Github账号,结果发现在本地提交更新的时候竟然一直失败。新创建的Github账号竟然总是使用之前的Github账号进行验证,导致提交总是报错,so找到了解决方法。

我们使用SSH Key方式进行认证

How To Do

首先需要针对创建不同的SSH秘钥

1
$ ssh-keygen -t rs -C "your_email@youremail.com"

例如,我们生成如下两个SSH秘钥

1
2
$ ~/.ssh/id_rsa_key1
$ ~/.ssh/id_rsa_key2

我们可以把之前缓存过的SSH秘钥全部删掉

1
$ ssh-add -D

然后我们需要对新生成的SSH秘钥进行如下操作

1
2
$ ssh-add ~/.ssh/id_rsa_key1
$ ssh-add ~/.ssh/id_rsa_key2

最后呢,我们检查一下我们保存的SSH秘钥

1
$ ssh-add -l

将生成的SSH秘钥添加到Github账号中

登录Github账号,进入https://github.com/settings/ssh
点击New SSH key,将新生成的.pub秘钥粘贴到输入框保存

修改SSH的config文件

1
2
3
$ cd ~/.ssh/
$ touch config
$ vim config

然后对config进行配置

1
2
3
4
5
6
7
8
9
10
11
#key1 account
Host github.com-key1
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_key1

#key2 account
Host github.com-key2
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_key2

最后clone远端仓库到本地

clone远端仓库我们需要使用SSH key的方式

1
$ git clone git@github.com:xxx/github-multi-account.git

在后续的Github账户所属的仓库下,执行以下命令

1
2
$ git config user.name [sub_account.user_name]
$ git config user.email [sub_account.email]

然后就可以正常使用git的push命令了

第一个账号可以使用https方式进行clone,主要是后续的账号需要进行如上的配置