有时候我们要管理多个git项目,或同时在用gitlab、github、小程序的tgit。当我们给一个项目配置了SSH-Key后,再去给另外一个项目配置SSH-Key会出现配置错误的提示,例如提示:Key has already been taken。对于该问题,我们可以通过生成多个SSH-Key来解决。然后在~/.ssh目录下添加config配置文件用于区分多个SSH-Key。
如:公司的gitlab生成一个SSH-Key
ssh-keygen -t rsa -C "chenyan900520@126.com" -f ~/.ssh/gitlab_id-rsa
小程序1生成一个SSH-Key
ssh-keygen -t rsa -C "271961730@qq.com" -f ~/.ssh/love_id-rsa
小程序2生成一个SSH-Key
ssh-keygen -t rsa -C "3200294168@qq.com" -f ~/.ssh/warehouse_id-rsa
在~/.ssh目录下添加config配置文件用于区分多个SSH-Key
# 添加config配置文件
# vi ~/.ssh/config
# 文件内容如下:
# gitlab
Host gitlab.yopoint.vip
HostName gitlab.yopoint.vip
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_id-rsa
# love
Host git.cloud.tencent.com
HostName git.cloud.tencent.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/love_id-rsa
# warehouse
Host git.cloud.tencent.com
HostName git.cloud.tencent.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/warehouse_id-rsa
# 配置文件参数
# Host : Host可以看作是一个你要识别的模式,对识别的模式,进行配置对应的的主机名和ssh文件
# HostName : 要登录主机的主机名
# User : 登录名
# IdentityFile : 指明上面User对应的identityFile路径
生成文件如下图:
再次执行git命令已经不再提示权限验证问题