如果你需要在同一台电脑上管理多个 git 仓库(如 github, gitlab, gitee, gerrit 等),并且配置不同的 ssh key 以增强安全性,本文应该可以帮到你。
以 github 和 gerrit 为例:
一、创建 GitHub 的 SSH key
ssh-keygen -t rsa -f ~/.ssh/github_id_rsa -C "[github的邮箱]"
~/.ssh/
目录下会自动生成 github_id_rsa 和 github_id_rsa.pub 两个文件。
其中 github_id_rsa.pub 是公钥,用文本编辑器打开,复制全部内容( 以 ssh-rsa 开始,以邮箱结尾),上传到 github。
上传步骤如图:
二、创建 Gerrit 的 SSH key
与 GitHub 类似,只是改了密钥文件名,方便区分。
ssh-keygen -t rsa -f ~/.ssh/gerrit_id_rsa -C "[gerrit的邮箱]"
~/.ssh/
目录下会自动生成 gerrit_id_rsa 和 gerrit_id_rsa.pub 两个文件。
同样是复制 gerrit_id_rsa.pub 公钥内容,上传到 gerrit。
上传步骤如图:
三、新建 config 配置文件
新建空白 config 文件,配置代码如下:
# github
Host github.com
HostName github.com
User [github的用户名]
IdentityFile ~/.ssh/github_id_rsa
# gerrit
Host gerrit.xxx.com
HostName gerrit.xxx.com
User [gerrit的用户名]
IdentityFile ~/.ssh/gerrit_id_rsa
Port 29418
四、完成
测试是否配置成功:
ssh -T git@github.com
ssh -T gerrit.xxx.com
执行后,会在 ~/.ssh/
目录下生成 known_hosts 文件。最终结果:
OK,现在可以使用不同的 git 工具免密管理代码了。