Git多个项目私钥管理

场景信息

  • 我的邮箱:[email protected]

  • 三个项目分别为:

  • project1

  • project2

  • project3

  • 代码托管平台:开源中国(git.oschina.net)

第一步:生成公钥和私钥


ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/project1

ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/project2

ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/project3

```

# 第二步:添加公钥到项目组中

> 三个项目的公钥分别是:

> * `~/.ssh/project1.pub`

> * `~/.ssh/project2.pub`,

> * `~/.ssh/project3.pub`

> 让对应项目组的管理员把对应的公钥文件的内容添加到代码托管平台对应的项目组中即可

![添加](http://upload-images.jianshu.io/upload_images/994350-19150068ac5f09c8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

# 第三步:拿到项目的克隆地址

![获取地址](http://upload-images.jianshu.io/upload_images/994350-39fa99bdc6eb34e2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

# 第四步:修改配置文件

## 编辑`~/.ssh/config`文件

> 该文件默认不存在

##  添加下面配置

> 从第三步中我们拿到了克隆的地址,格式一般为

> `[email protected]:XXX/PROJECT.git`

> 我们需要获取的信息就是:

> * `@前面的git`

> * `@和:之间的git.oschina.net`

> * `:和/之间的XXX`

> * `/后面的PROJECT`

```bash

Host project1name

       Hostname git.oschina.net

       User git

       IdentityFile ~/.ssh/project1

Host project2name

       Hostname git.oschina.net

       User git

       IdentityFile ~/.ssh/project2

Host project3name

       Hostname git.oschina.net

       User git

       IdentityFile ~/.ssh/project3

```

> **结合克隆地址的格式来看:**

> `Host`是随意的别名

> `Hostname`对应的是`@和:之间的git.oschina.net`

> `User`对应的就是`@前面的git`

> `IdentityFile`对应的是公钥文件,不带文件扩展名

# 第五步:克隆项目

> 项目克隆的命令是:

```

git clone `Host`:`XXX`/`PROJECT`.git

```

> * `Host`对应的就是第四步配置文件的别名

> * `XXX`对应的就是第三步中克隆地址中对应的XXX

> * `PROJECT`对应的就是第三步克隆地址中的`PROJECT`

你可能感兴趣的:(Git多个项目私钥管理)