左小白的技术日常
Github

多个 ssh 怎么配置,github、gitlab、gitee 多个平台配置并测试

这篇文章发布于 2021/04/03,归类于
标签:
ssh多git平台多个ssh配置multiple ssh

在之前我们有介绍过 使用ssh方式拉取代码的步骤,仅一个平台时(比如 github)还可以。如果多个 git 平台(比如 github、gitlab、gitee)都需要配置 ssh 时,那怎么配置呢?

首先我们要在 ~/.ssh/ 目录下新建一个 config 文件,内容如下

# github 配置
Host github.com
    HostName github.com
    IdentityFile ~/.ssh/id_rsa
    User guoqzuo@gmail.com

# gitee 配置
Host gitee.com
    HostName gitee.com
    IdentityFile ~/.ssh/gitee/id_rsa_gitee
    User 916707888@qq.com

# gitlab 配置
Host gitlab.com
    HostName gitlab.com
    IdentityFile ~/.ssh/gitlab/id_rsa_gitlab
    User i@zuoguoqing.com

其中 IdentityFile 指定的秘钥文件是需要注意的,需要使用 ssh-keygen -t rsa -C "对应的邮箱" 生成 id_rsa 秘钥对,其中 id_rsa.pub 公钥文件中的内容是需要设置到 github/gitee/gitlab 等平台上的。由于有多个,我们需要指定对应的文件名字,一般以 id_rsa_github 或 id_rsa_gitlab 来与默认的文件名做区别。注意:如果不指定名字,默认会放到 ~/.ssh/id_rsa,自定义文件名后,如果没指定目录,会在当前目录生成。建议都放到 ~/.ssh/ 目录下方便管理。

测试 ssh key 是否配置成功

# 测试 gitee ssh 是否配置成功
ssh -T git@gitee.com
# Hi 左国清! You've successfully authenticated, but GITEE.COM does not provide shell access.

# 测试 github ssh 是否配置成功
ssh -T git@github.com
# Hi zuoxiaobai! You've successfully authenticated, but GitHub does not provide shell access.

# 测试 gitlab ssh 是否配置成功
ssh -T git@gitlab.com
# Welcome to GitLab, @zuoxiaobai!

如果在测试时,没有提示上面的内容,而是提示 The authenticity of host 'github.com (140.82.121.4)' can't be established. RSA key fingerprint is SHA256:xxxx... Are you sure you want to continue connecting (yes/no/[fingerprint])? 选择 yes 即可,会将对应的 key 添加到 ~/.ssh/known_hosts 中,然后就能看到上面的成功信息了。我的 ~/.ssh/ 目录内容如下

# 查看 
ls ~/.ssh/
# config        gitee        gitlab        id_rsa        id_rsa.pub    known_hosts