多账户Github SSH Key 管理

多账户Github SSH Key 管理

前言

同一台PC中使用多个SSH Key是一个非常常见的场景,比如说有多个GitHub账户,或者说有需要连接多个不同的Git服务器,比如说Github是存放开源的项目的仓库,而私人的项目可能是放在Bitbucket上的,或者说除了这些还需要连接公司的Git服务器等。这时候我们需要对SSH Key 进行配置才能正确的使我们在多个Git服务器中来去自如。

创建新的SSH key

假设现在电脑里面已经存在一个SSH Key了,现在我们使用命令行来新增一个,注意保存时需要定义一个新的名称,不能把原来的SSH Key给覆盖了,具体生成参考Github提供的文档:
Generating a new SSH key and adding it to the ssh-agent

创建config文件

.ssh文件夹中创建一个config文件,内容如下所示:

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

# 新增加的SSH Key
Host example.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/example

可以使用ssh命令来测试SSH key的可用性:

1
2
ssh -vT git@github.com
ssh -vT git@example.github.com

注意大小写,例如:git@github.com,写成:git@Github.com会连接失败。要和config文件中名称一致。

使用新的SSH Key

clone仓库时,只需要将主机名替换为config文件中配置Host的值即可:

1
git@github.com:UserName/projectExample.git

修改为:

1
git@example.github.com:UserName/projectExample.git

参考&进一步阅读

Multiple github accounts ssh config

SSH config file syntax and how-tos for configuring the OpenSSH client

Author

gyzhao

Posted on

2016-04-05

Updated on

2022-12-11

Licensed under

Comments