思路:生成多对公私钥,并通过config配置文件区分
1、生成多对ssh公钥私钥
cd ~/.ssh/
ssh-keygen -t rsa -C "xxxxx@xxxxx.com" (xxxx用户邮箱)
注意:第一步的时候,不要一路回车,需要输入文件名称,一定要设置每个账户文件名称不同,不然会覆盖
2、将公钥添加到github网站
把生成好的ssh的公钥相对应复制到github[/gitlab]的settings中的SSH and GPG keys
3、生成config文件并配置
如果在~/.ssh/下没有config文件,可以touch config
#可缺省,此时ssh -T git@github.com,默认就是和拥有id_rsa.pub的github账号对接。
#github server one
Host one.github.com #域名地址的别名
Hostname github.com #这个是真实的域名地址
User git #配置使用用户名
IdentityFile ~/.ssh/id_rsa #这里是id_rsa的地址
#github server two
Host two.github.com
Hostname github.com
User git
IdentityFile ~/.ssh/id_rsa_two
##如果有第三个或者更多
#gitab server
Host gitlab
Hostname gitlab.com
User git
IdentityFile ~/.ssh/id_rsa_gitlab
4、测试是否成功
ssh -T git@one.github.com
5、取消全局配置,使用局部配置
因为一台电脑上配置了多个git账号,所以就不能再配置全局的用户名和邮箱了,而是在不同的仓库下,如果需要连接不同的git账号,配置相应的局部用户名和邮箱即可,如果之前配置过全局的用户名和邮箱,需要取消配置
git config --global --unset user.name
git config --global --unset user.email
在每个项目目录下单独配置:
git init
git config user.name "Your name"
git config user.email your_email@gmail.com
6、Clone 项目到本地
在工作目录下,首先先git init,然后才能使用git命令clone项目到本地
#之前的方式:单个账号
git clone git@github.com:firstAccount/xxx.git #缺省config配置时
git clone git@github:firstAccount/xxx.git #config配置后,等价于第一条语句
#现在要改为,git clone git@域名别称:项目名
git clone git@one.github.com:secondAccount/xxx.git //就是使用域名地址的别名来区分
git clone git@two.github.com:gitlabAccount/xxx.git
参考文章:
https://www.cnblogs.com/fanbi/p/7825746.html
https://blog.csdn.net/mq2856992713/article/details/62090841