Git 配置多个 SSH-Key

背景

同时需要使用 GitHub 搭建 Hexo 博客和使用工作的 GitHub 开发项目。
如果你也需要在同一台计算机配置多个git账户对应到多个代码仓库,那么以下的教程,也许就是你一直找寻的。

目标

给出解决方案,让你的电脑发挥一机多仓开发的威力。

操作流程

1. 查看所有 SSH-Key

1
2
3
$ cd ~/.ssh
$ ls
config id_rsa_xx.pub id_rsa_github.pub id_rsa_xx id_rsa_github known_hosts

这里一共有两个SSH-Key,一个id_rsa_xx是公司的SSH-Key,id_rsa_github是个人GitHub账户的SSH-Key,用了不同的名称来区分。

2. 生成 SSH-Key

  1. 公司生成一个SSH-Key
    在~/.ssh/目录会生成id_rsa_xx和id_rsa_xx.pub私钥和公钥。我们将id_rsa_xx.pub中的内容粘帖到公司Git服务器的SSH-key的配置中。
1
2
# 输入:
$ ssh-keygen -t rsa -C "XXXXXX@git.xxx.com" -f ~/.ssh/id_rsa_xx
  1. github账户生成一个SSH-Key

在~/.ssh/目录会生成id_rsa_github和id_rsa_github.pub私钥和公钥。我们将id_rsa_github.pub中的内容粘帖到github的git服务器的SSH-key的配置中。

1
2
# 输入:
$ ssh-keygen -t rsa -C "XXXXXX@git.github.com" -f ~/.ssh/id_rsa_github

3. 添加秘钥

1
2
3
4
5
6
7
8
$ ssh-add ~/.ssh/id_rsa_xx
$ ssh-add ~/.ssh/id_rsa_github

# 可以通过 ssh-add -l 来确认私钥列表
$ ssh-add -l

# 可以通过 ssh-add -D 来清空私钥列表
$ ssh-add -D

在代码仓库添加公钥步骤:
在登录对应代码仓库网站统一通行证后进入http://git.xx.com/ 点击右上角个人头像 -> Manage Account -> SSH Key,即可配置ssh key,即将刚刚复制的id_rsa.pub(公钥)的文本内容粘贴到文本框后点击“add”,即可。

4. 区分多个 SSH-Key

在~/.ssh目录下添加config配置文件用于区分多个SSH-Key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 添加config配置文件
# vi ~/.ssh/config

# 文件内容如下:
# github
Host git.github.com
HostName git.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# mt
Host git.xx.com
HostName git.xx.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_xx

# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名
# IdentityFile : 指明上面User对应的identityFile路径

# 配置文件参数-示例
# Host github // 网站的别名,随意取
# HostName github.com // 托管网站的域名
# User qijiguang // 托管网站上的用户名
# IdentityFile ~/.ssh/id_rsa_github // 使用的密钥文件

5. 验证

利用ssh -T git@github.com, 测试 github 账号是否成功。
利用ssh -T git@xx.com, 测试 xx 账号是否成功。

参考文档

官方教程:初次运行 Git 前的配置
一个客户端设置多个GitHub账号


--------- 本文结束 感谢您的阅读 ---------
0%
;