Git配置多个SSHkey

背景

当有多个git账号时,比如:
a. 一个gitee,用于公司内部的工作开发;
b. 一个github,用于自己进行一些开发活动;

解决方法

  1. 生成一个公司用的SSH-Key

$ ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa

1
2
3
4
5
6
7
8
9
10
(注意修改为自己的 email ) 
ssh-keygen -t rsa -C 'xxxxx@company.com' -f ~/.ssh/gitee_id_rsa

代码参数含义:

-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。

注:可全部选择默认即为空格跳过

image.png

  1. 生成一个github用的SSH-Key

$ ssh-keygen -t rsa -C 'xxxxx@qq.com' -f ~/.ssh/github_id_rsa

  1. 在 ~/.ssh 目录下新建一个config文件,添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # gitee
    Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitee_id_rsa
    # github
    Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id_rsa
  2. 用ssh命令分别测试
    $ ssh -T git@gitee.com
    $ ssh -T git@github.com
    这里以gitee为例,成功的话会返回下图内容
    image.png