在使用git过程中,会遇到使用多个ssh-key的情况,比如:github使用一个账号,gitee使用另一个账户。为了区分不同的ssh-key ,则创建多个密钥对文件。
生成github的ssh-key
ssh-keygen -t rsa -C “aaa@bbb.com” -f ~/.ssh/id_rsa-github
过程中会要求输入密码,直接回车为空即可。
此时会产生id_rsa-github和id_rsa-github.pub两个文件。
如果不指定则默认文件id_rsa和id_rsa.pub。
同样的方式为gitee生成两个文件id_rsa-gitee和id_rsa-gitee.pub
默认情况下ssh-agent读取id_rsa,因此把添加到 ssh-agent 的高速缓存中。
ssh-add ~/.ssh/id_rsa-github
把公有粘贴到github或gitee的账户下即可。
在~/.ssh/目录下新建文件config,在里面指定不同的私钥对应的不同git服务器。
github的配置
1
2
3
4Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa-githubgitee的配置
1
2
3
4Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id-rsa-gitee测试连接
ssh -T github.com
ssh -T gitee.com查看配置信息
git一般会根据配置文件的user.name和user.email来获取作者信息,如果使用不同账户信息的话,需要在使用前修改配置。
1
2
3
4
5
6
7
8# 查看配置信息
git config --list
# 设置全局的name和email
git config --global user.name "bbb"
git config --global user.email "aaa@xxx.com"
# 设置团队项目的name和email,每次新创建一个项目,需要执行下
git config --local user.name "bbb"
git config --local user.email "aaa@xxx.com"