Git配置多个SSH-Key(在一台电脑上,如何配置多个SSH Key?/多个用户身份)

需求背景:

一般情况下,我们只会生成一个SSH Key,名字叫id_rsa,然后提交到多个不同的网站(如:GitHub、DevCloud、Gitee、GitLab)。
eg:尝试给Github配一个ssh。首先需要做的就是在命令行中输入以下指令

$ ssh-keygen -t rsa -C "[email protected]"

然后一路回车,最后生成
image.png

复制id_rsa.pub到对应的Git服务器即可。

但是也存在另一种需要,我们在同一个网站上,注册了两个或者多个用户名,通常网站不会允许我们为这两个用户名,配置同一个SSH Key,这时候就会有些麻烦。
a. 一个gitee,用于A项目的一些开发活动;
b. 一个github,用于B项目的一些开发活动;
c. 一个gitlab,用于C项目的一些开发活动;

解决办法:

针对不同的账户,生成一个不同用途的SSH-Key,然后进行相关的配置即可。
下面以mac 设备为例:
1.生成对应的SSH-Key:
生成一个gitee用的SSH-Key

$ ssh-keygen -t rsa -C '[email protected]' -f ~/.ssh/gitee_id_rsa

生成一个github用的SSH-Key

$ ssh-keygen -t rsa -C '[email protected]' -f ~/.ssh/github_id_rsa

生成一个gitlab用的SSH-Key

$ ssh-keygen -t rsa -C '[email protected]' -f ~/.ssh/gitlab_id_rsa

2.在 ~/.ssh 目录下新建一个config文件(终端:touch config),添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)

# 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
# gitlab
Host  gitlab.com
HostName  gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/ gitlab_id_rsa

3.然后进入 ~/.ssh ,拷贝不同的xxx_id_rsa.pub到不同的服务器进行配置,eg:拷贝github_id_rsa.pub内容,然后,进入Github,在Your profile里,点击左边SSH keys,再在右边点击Add SSH key按钮,如图:

github中的SSH配置

其中,Title随便填,将id_rsa.pub里的内容复制到Key中,点击下方的Add key按钮。
4.用ssh命令分别测试

$ ssh -T [email protected]
$ ssh -T [email protected]
$ ssh -T [email protected]

这里以gitee为例,成功的话会返回下图内容:


image.png

你可能感兴趣的:(Git配置多个SSH-Key(在一台电脑上,如何配置多个SSH Key?/多个用户身份))