日常开发过程中,我们可能遇到需要在同一电脑上配置多个Git账户的情况:gitee、github、公司的git服务器等,这时候我们需要配置多个ssh。本文以gitee(码云)Mac上的配置为例:
1.取消全局的账户配置
查看全局账户
git config --global user.name
如果存在,取消全局设置
git config --global --unset user.name
git config --global --unset user.email
2.创建不同user的ssh key
# 新建ssh key
cd ~/.ssh
ssh-keygen -t rsa -C "new_user@email.com" # 生成新的ssh key
# 设置新的ssh key的名称
Enter file in which to save the key (/Users/{username}/.ssh/id_rsa): first_sa
3.新密钥添加到ssh agent中
默认只添加了id_rsa,因此需要将新的ssh key 添加
ssh-add ~/.ssh/first_sa
如果添加报错:Could not open a connection to your authentication agent,尝试以下命令:
ssh-agent bash
ssh-add ~/.ssh/first_sa
4.修改config文件
在~/.ssh目录下找到config文件,如果没有就创建(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
修改config 文件
# first user(user@xxx.com)
# gitee
# 建一个gitee别名,新建的帐号使用这个别名做克隆和更新
Host mnjyb
HostName gitee.com
User git
# PreferredAuthentications publickey
IdentityFile ~/.ssh/first_sa
# second user(user@xxx.com)
# gitee
# 建一个gitee别名,新建的帐号使用这个别名做克隆和更新
Host yjxmn
HostName gitee.com
User git
# PreferredAuthentications publickey
IdentityFile ~/.ssh/second_sa
5.测试
ssh -T git@gitee.com
如若出现:git@gitee.com: Permission denied (publickey),需要作以下配置:
5.1查看你的 public key
cat ~/.ssh/first_sa.pub
5.2将它添加到码云,添加地址 https://gitee.com/profile/sshkeys
重复2、3、4、5步骤创建第2个公钥:second_sa,并把公钥配置到码云另一个帐号上
5.3终端再次输入,分别测试
ssh -T mnjyb
ssh -T yjxmn
5.4完成啦~
7.克隆代码命令是:
不能使用码云默认的git@gitee.com:xxx/xxx.git进行克隆了:
需要换成自己的host别名(查看~/.ssh/config文件),进行克隆:
git clone mnjyb:xxx/xxx.git //把mnjyb换成自己的Host别名,xxx部分换成自己的git地址
8.其他
在使用idea的时候,可能出现命令行可以clone 代码,但是idea里面不能clone代码的情况,检查一下配置:
Version Control -> Git -> SSH executable: Native
重复以上步骤,添加多个帐号即可。
参考: