前言
网上很多文章都是针对多个git账号,但是这些git都是一个平台对应一个git账号,但是如果一个平台对应多个账号不会有效地解决问题
前提
最好是同一平台有多个账号,这样更能有效的测试
本地生成SSH-Key
- 生成一个github用的ssh-key,账户a
ssh-keygen -t rsa -C 'a@163.com' -f ~/.ssh/github_id_rsa_a
- 生成一个github用的ssh-key,账户b
ssh-keygen -t rsa -C 'b@163.com' -f ~/.ssh/github_id_rsa_b
- 生成一个gitee用的SSH-Key
ssh-keygen -t rsa -C 'mmm@163.com' -f ~/.ssh/gitee_id_rsa
注
:默认情况linux/mac会在~/.ssh/
创建
git平台设置
将对应的.pub
文件中内容复制到相应的平台SSH设置中
config文件
- 在
~/.ssh/
进行如下配置Host gitlab.com HostName gitlab.com PreferredAuthentications publickey IdentityFile ~/.ssh/gitee_id_rsa Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa_a
- 验证
ssh -T git@github.com ssh -T git@gitlab.com
- 问题这时已经可以保证多个平台都保存一个用户,但是仍然没有解决一个平台多个用户
利用脚本
- switchGit.sh
#!/bin/bash if [[ $1 == 'a' ]]; then echo 'use a account' echo 'Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa_a' > /Users/redhat/.ssh/config fi if [[ $1 == 'b' ]]; then echo 'use b account' echo 'Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/github_id_rsa_b' > /Users/redhat/.ssh/config fi ssh -T git@github.com
- 执行
./switchGit.sh a
网友评论