如何在一台电脑上使用一个账户管理同一个代码托管仓库中的多个Git项目 coding github

2016年10月12日

目前在同一个代码托管平台中一个项目对应一个公私钥 , 同一个公钥不能在代码托管平台出现多次, 那么问题来了,如果该平台上我建立了数个仓库。
然后使用 添加公钥的方式将你的公钥添加进平台 你发现告知你已存在,在服务器上 clone 的时候会报错无法clone

解决方法 :
同一个账户创建多对 key 然后一个项目匹配一对  (这里用 codding 来作说明  oschina github 也可以用这种方式)
coding 上我建立了两个项目分别为: baron 和 world

实现方法 :
1:为工作账号生成SSH Key

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

#存储key的时候,不要覆盖现有的id_rsa, id_rsa这个是当台机器默认使用的,使用一个新的名字,比如id_rsa_baron

2:把id_rsa_baron.pub 加到你的coding账号上

3:把该key加到ssh agent上。由于不是使用默认的.ssh/id_rsa,所以你需要显示告诉ssh agent你的新key的位置

ssh-add ~/.ssh/id_rsa_baron

# 可以通过ssh-add -l来确认结果

4:配置.ssh/config

vi .ssh/config

## 加上以下内容
#default git@osc
Host baron_work
HostName git.coding.net
port 22
PubkeyAuthentication yes
IdentityFile ~/.ssh/id_rsa_baron

Host world_work
HostName git.coding.net
port 22
PubkeyAuthentication yes
IdentityFile ~/.ssh/id_rsa_world

5:这样的话,你就可以通过使用git.coding.net别名baron_work来明确说你要是使用id_rsa_baron的SSH key来连接git@coding 。

例如 :我在coding上创建的baron项目的git url 为: git clone [email protected]:zhongzuzhu/baron.git

这是不能直接这么写了 , 这么写默认匹配的是 id_rsa  是clone不下来的 , 要用 config 中设置的 别名

git clone git@baron_work:zhongzuzhu/baron.git

git clone git@world_work:zhongzuzhu/world.git

没有评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注