用ssh方式登录github的一般流程为:

  1. 生成ssh公匙和私匙ssh-keygen -t rsa
  2. 将生成的公私上传到github服务器
  3. 本地就可以通过私匙访问github了ssh -T git@github.com

如我们需要在一台电脑上通过ssh方式访问多个帐户下的资源时,如果我们把同一个公匙传给github上不同帐户时,再次上传同一公匙时会报:该公匙已被使用的错误。说明github上的公匙是全局的不允许有两个相同的公匙存在。

我们可以通过以下方式来实现多帐户登录:

生成不同的ssh键匙对

根据不同账户生成不同的ssh私匙和公匙键匙对

1
2
3
4
# 生成user1的键匙,生成user1和user1.pub两个文件
ssh-keygen -t rsa -f ~/.ssh/user1 -N ""
# 生成user2的键匙,生成user2和user2.pub两个文件
ssh-keygen -t rsa -f ~/.ssh/user2 -N ""

将生成的两个公匙文件分别上传到github上对应的两个帐户上

添加ssh配置

现在~/.ssh/目录下有多个私匙可以用,当我们使用git时具体用哪个私匙,就需要在~/.ssh/下添加config配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# github下的user1帐户
Host github.com
User user1
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/user1

# github下的user2帐户
Host github.com
User user2
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/user2