Git多个项目私钥管理

作者: Android开发哥 | 来源:发表于2017-03-13 22:11 被阅读187次

场景信息

  • 我的邮箱:xxxfish@qq.com

  • 三个项目分别为:

  • project1

  • project2

  • project3

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

第一步:生成公钥和私钥


ssh-keygen -t rsa -C "xxxfish@qq.com" -f ~/.ssh/project1

ssh-keygen -t rsa -C "xxxfish@qq.com" -f ~/.ssh/project2

ssh-keygen -t rsa -C "xxxfish@qq.com" -f ~/.ssh/project3

```

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

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

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

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

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

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

![添加](https://img.haomeiwen.com/i994350/19150068ac5f09c8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

![获取地址](https://img.haomeiwen.com/i994350/39fa99bdc6eb34e2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

# 第四步:修改配置文件

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

> 该文件默认不存在

##  添加下面配置

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

> `git@git.oschina.net: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多个项目私钥管理

    本文链接:https://www.haomeiwen.com/subject/xmnqnttx.html