在同一台电脑上有多个github账户时,切换ssh key会比较麻烦,可以使用ssh config来简化这一动作。

在使用ssh-keygen时,为不同的账户选择不同的ssh key文件。

1
2
hrh@Solarex:~$ ls ~/.ssh/
id_rsa_accountA id_rsa_accountA.pub id_rsa_accountB id_rsa_accountB.pub known_hosts config

~/.bashrc中添加ssh key。

1
2
ssh-add ~/.ssh/id_rsa_accountA >/dev/null 2>&1
ssh-add ~/.ssh/id_rsa_accountB >/dev/null 2>&1

配置ssh config文件~/.ssh/config

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

#AccountB
Host github-b.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_accountB

这样以后使用AccountA时可以git clone git@github-a.com:user/repos.git local_dir这样操作,clone下来后可以cd local_diruser.nameuser.email来进行config来覆盖global config,剩下的就和平时没有什么区别了,使用AccountB时相似操作就可以了。