本地电脑同时关联 GitHub 和 Gitee

清除 git 全局设置

若之前没有设置过全局的可以跳过这一步,若之前对 git 设置过全局的 user.name 和 user.email,进行过如下操作:

1
2
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

要先进行清除操作:

1
2
git config --global --unset user.name "你的名字"
git config --global --unset user.email "你的邮箱"

生成 GitHub 和 Gitee 独立的 ssh key

在命令行窗口依次输入下面命令来生成 ssh key,这里要将 name@email.com 改为自己指定的邮箱。

1
2
ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "name@email.com"
ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "name@email.com"

ssh-keygen 命令用于为 “ssh” 生成、管理和转换认证密钥,它支持 RSA 和 DSA 两种认证密钥。
ssh-keygen 常用参数:

-b 指定密钥长度
-e 读取 openssh 的私钥或者公钥文件
-f 指定用来保存密钥的文件名
-t 指定要创建的密钥类型
-C 添加注释

然后,每次命令需要敲三次回车,就生成 SSH 公钥和私钥:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "liupaopao520@163.com"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Passphrases do not match. Try again.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.github
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.github.pub

Administrator@DESKTOP-4IPRNUP MINGW64 ~/.ssh
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.gitee -C "liupaopao520@163.com"
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.gitee
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.gitee.pub

随后,会在~/.ssh 文件夹下出现 GitHub 和 Gitee 独立的公钥和私钥:

1
2
$ ls
id_rsa.gitee id_rsa.gitee.pub id_rsa.github id_rsa.github.pub known_hosts

将 GitHub 和 Gitee 私钥添加到 SSH agent

因为默认只读取 id_rsa,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent 中:

1
2
3
4
5
6
7
8
$ ssh-agent bash

$ ssh-add ~/.ssh/id_rsa.github
Identity added: /c/Users/Administrator/.ssh/id_rsa.github (liupaopao520@163.com)

Administrator@DESKTOP-4IPRNUP MINGW64 ~/.ssh
$ ssh-add ~/.ssh/id_rsa.gitee
Identity added: /c/Users/Administrator/.ssh/id_rsa.gitee (liupaopao520@163.com)

将公钥添加到 GitHub 和 Gitee 网站

进入 GitHub 网站,点击右上角头像,进入 Settings –> SSH and GPG keys –> SSH keys –> New SSH keys,填写 Title 并粘贴 id_rsa.github.pub 里的内容。

进入 Gitee 网站,点击右上角头像,进入设置 –> SSH 公钥 –> 添加公钥,填写标题并粘贴 id_rsa.gitee.pub 里的内容。

配置 ssh config 文件

在~/.ssh 文件夹下新建一个 config 文件,里面的内容如下:

1
2
3
4
5
6
7
8
9
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.github

Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa.gitee

验证是否关联成功

打开 git bash,依次输入下面命令,验证是否关联成功。

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

当看到信息 “You’ve successfully authenticated……”,则说明已成功关联 GitHub 和 Gitee。

1
2
3
4
5
$ ssh -T git@github.com
Hi HanxuLiu! You've successfully authenticated, but GitHub does not provide shell access.

$ ssh -T git@gitee.com
Hi 刘跑跑! You've successfully authenticated, but GITEE.COM does not provide shell access.