多环境SSH KEY配置

多环境SSH KEY配置

一、使用背景

大多数时候,我们的机器上会有很多的git host,比如公司gitlab、github、oschina等,那我们就需要在本地配置多个ssh key,使得不同的host能使用不同的ssh key ,做法如下(以公司gitlab和github为例):

  1. 为公司生成一对秘钥ssh key

     ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa
  2. 为github生成一对秘钥ssh key

     ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa
  3. 在~/.ssh目录下新建名称为config的文件(无后缀名)。用于配置多个不同的host使用不同的ssh key,内容如下:

     # gitlab
     Host gitlab.com
        HostName gitlab.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/gitlab_id-rsa
     # github
     Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/github_id-rsa
       
     # 配置文件参数
     # Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
     # HostName : 要登录主机的主机名
     # User : 登录名
     # IdentityFile : 指明上面User对应的identityFile路径
  4. 按照上面的步骤分别往gitlab和github上添加生成的公钥gitlab_id-rsa.pub和github_id-rsa.pub

  5. OK,大功告成,再次执行git命令验证是不是已经不需要再次验证权限了。

  6. 再次查看~/..ssh目录下的文件,会有gitlab_id-rsa、gitlab_id-rsa.pub和github_id-rsa、github_id-rsa.pub四个文件

二、全局配置与局部配置

2.1 全局配置

 #git全局配置:
 git clone 时使用ssh:xxx.git
 git config --global user.name "username"
 git config --global user.email "email"
 #查看全局用户
 git config --global --list

2.2 局部配置

 #git 局部配置:
 git clone时使用http:xxx.git
 git config --local user.name "username"
 git config --local user.email "email"
 #查看全局用户 局部
 git config --local --list

 

上一篇:【漏洞复现】CVE-2021-22205 GitLab 未授权RCE


下一篇:21.03.14 LeetCode剑指 Offer 33. 二叉搜索树的后序遍历序列