一台电脑配置两个Gitee账户

最近由于在码云需要管理两个账户来运行两个博客,但是在进行部署的时候如果使用的是https进行上传的话(还有一种用的默认打开的是SSH)需要输入用户名和密码,如果两个博客需要交叉进行上传的话,更是需要来回进行切换和输入,比较麻烦。本文将具体介绍如何在一台电脑上配置两个gitee账户从而管理不同的两个博客。

其实这个原理和同时将博客上传到gitee和github上是一个道理,都是需要布置公钥在电脑上,并且同步到你的gitee账户上,然后在本地进行稍微的不止即可。

创建密钥

首先是需要创建新的密钥,两个账号则需要两套密钥。先生成第一个密钥。

1
2
cd ~/.ssh/
ssh-keygen -t rsa -C "这里是你的邮箱"

默认三次回车,这时候会生成第一对默认的密钥,在.ssh文件夹中有两个文件(id_rsa和id_rsa.pub);然后重复第二行代码,当第一次回车时,会出现

1
2
Generating public/private rsa key pair.  
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa):

这里是是要提示你输入新的密钥名称,这时候你应该要注意新的密钥和第一次创建的密钥名称不要相同!否则第一次创建的会被覆盖掉,这里我是用的是my_id_rsa名称,则同样会生成两个文件(my_id_rsa和my_id_rsa.pub),之后再同样两次回车,第二个密钥则创建成功。

如果你是之前已经在.ssh文件中有了默认的密钥,为了不影响这个密钥,第一次生成的密钥时候也应该重新命名,和第二次一样。

配置config

查看.ssh文件夹中有没有config文件,如果没有,则创建一个

1
2
cd ~/.ssh/
touch config

修改或者写入相关的配置

1
2
3
4
5
6
7
8
9
10
#第一个账号,默认使用的账号,不用做任何更改
Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa
#第二个新账号,#"xxxxxx"为前缀名,可以任意设置,要记住,后面需要用到
Host xxxxxx.gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/这里是你创建的新密钥的名称

配置Gitee账户的公钥

也可以直接在.ssh目录下找到你创建的新的公钥,文件名为*.pub,例如我之前创建的便是id_rsa.pub和my_id_rsa.pub文件,分别拷贝到需要上传到的两个gitee账户下的公钥设置。

这里很容易踩的坑就是你会把公钥设置在仓库下面的SSH公钥,而不是账户下面。如果这样做的话会导致之后你对这个仓库只有pull和fetch权限而没有push的权限,上传博客到gitee上会失败

添加新的 SSH 密钥 到 SSH agent中

到.ssh根目录下,依次执行以下命令

1
2
3
ssh-add -D  #清空本地的 SSH 缓存
ssh-add xxxxxx #旧密钥名称,一般是id_rsa
ssh-add xxxxxx #新创建的密钥名称

如果执行以上命令出现错误:Could not open a connection to your authentication agent.,那么就需要先执行ssh-agent bash,再执行以上命令

验证配置是否成功

依次执行以下命令,第一个为默认ssh_key验证;第二个为新的ssh_key验证,其中“xxxxxx”为你先前在config文件中的命名

1
2
ssh -T git@gitee.com
ssh -T git@xxxxxxx.gitee.com

显示以下信息,则说明成功了

1
Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.

如果下面多了两行说

1
2
Note: Perhaps the current use is DeployKey.
Note: DeployKey only supports pull/fetch operations

说明第三步配置Gitee账户的公钥出现了我说的错误,把公钥配置在仓库下而不是账户下。

单独设置用户名和邮箱

如果已经设置了全局的用户名和邮箱,则先取消全局用户名和邮箱的配置

1
2
git config --global --unset user.name
git config --global --unset user.email

分别进入你的两个Hexo博客.git目录下执行以下命令单独设置用户名/邮箱,该目录在Hexo博客下的.depoly_git/.git,如果没有,则现Hexo deploy 尝试提交一下,就会在博客目录下生成。配置用户名和邮箱

1
2
git config user.name "这里是用户名"
git config user.email "这里是你的邮箱"

然后查看是否设置成功

1
git config --list

Hexo博客配置文件修改git地址

打开你的第二个博客Hexo目录下的_config.yml文件,找到deploy关键字,写入以下配置并保存

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

之后喜爱尝试看是否两个都能免密码部署到两个gitee账户下。