目前在同一个代码托管平台中一个项目对应一个公私钥 , 同一个公钥不能在代码托管平台出现多次, 那么问题来了,如果该平台上我建立了数个仓库。
然后使用 添加公钥的方式将你的公钥添加进平台 你发现告知你已存在,在服务器上 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
没有评论