在Git中配置多ssh key登陆不同仓库

2,334 阅读1分钟

在使用Git的过程中,我们常常面临着在同一个代码管理平台注册多个账号来区别工作项目与自己的项目,但是由于Git的限制,一个ssh key是不能同时添加进一个服务器的,为了解决这一问题,我们需要做的就是利用多ssh key来管理不同的项目。

一.创建新的ssh key

首先默认已经安装完成Git并且创建了一个ssh key,接下来需要创立新的ssh key。 打开 Git Bash,输入

cd ~/.ssh
ssh-keygen

在出现Enter file in which to save the key 之后输入key的名称,例如id_rsa_work。 不要使用默认名称,以便与之前的key区分。接着一直默认即可。

二.创建并编辑config文件

在Git Bash中输入

vim ~/.ssh/config

打开vim编辑界面,然后按i键即可编辑,编辑内容如下

Host hostone 
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_a

Host hosttwo
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_b

其中Host为别名,可以自己随意取。HostName为服务器的域名,例如github.com,code.aliyun.com等。User 为用户名,目前看没有什么影响,可以随意取。最后IdentityFile为ssh 公钥的地址。

三.更改远程分支的地址

举一个例子

git@code.aliyun.com:12345/abcde.git

这是一个远程仓库的ssh 地址,它的组成是这样

Host:账户/项目

所以在我们配置完成config后,远程仓库的地址也会有变化,假设我们使用config中的第二个sshkey,那么远程分支的地址就会改为

hosttwo:12345/abcde.git

当我们完成对远程分支的更改之后,就可以正常的进行push与pull操作了