十次

两个gitee账号ssh key问题

2020-08-11 · 3 min read

新公司代码仓库用的是Gitee,所以我有了两个Gitee的账号。这时候问题出现了,两个Gitee账号的SSH公钥不能一样。在另一个账号添加自己电脑上的id_rsa.pub的时候,显示已被另一个Gitee账号添加了。

在百度找了很多办法,可能是我太笨的原因,一直设置不成功。这时候我灵光一闪,想到了一个绝妙的解决方案---->脚本替换法。

方案很简单,我们需要生成多个SSH公钥,就像这样

~/.ssh
➜ ll
total 56
-rw-------  1 aoizz  staff   2.5K  8 10 21:08 gitee_test1_id_rsa
-rw-r--r--  1 aoizz  staff   567B  8 10 21:08 gitee_test1_id_rsa.pub
-rw-------  1 aoizz  staff   2.5K  8 10 21:08 gitee_test2_id_rsa
-rw-r--r--  1 aoizz  staff   579B  8 10 21:08 gitee_test2_id_rsa.pub
-rw-------  1 aoizz  staff   2.5K  8 11 10:09 id_rsa
-rw-r--r--  1 aoizz  staff   567B  8 11 10:09 id_rsa.pub
-rw-r--r--@ 1 aoizz  staff   762B  8 10 22:21 known_hosts

一共三个,分别是id_rsa gitee_test1_id_rsa gitee_test2_id_rsa

一般情况下,我们只需要将id_rsa.pub的公钥添加到Gitee,就可以愉快的使用Gitee了。

所以我们将gitee_test1_id_rsa.pub gitee_test2_id_rsa.pub分别上传到两个不同的Gitee账号中。在需要使用对应账号的项目时,将对应的公钥复制到默认的id_rsa中。

对应脚本如下:

cd ~/.ssh/
rm -f ~/.ssh/id_rsa.pub
rm -f ~/.ssh/id_rsa
cp -i gitee_test1_id_rsa ~/.ssh/id_rsa
cp -i  gitee_test1_id_rsa.pub ~/.ssh/id_rsa.pub
echo "git环境切换成功"

我不会写脚本,所以就用了最简单的,一个环境写一个脚本。

然后将脚本对应到alias中,加入全局命令. vi ~/.zshrc然后加入下面两条命令

alias test1='/Users/aoizz/Development/Shell/Git/test1.sh'
alias test2='/Users/aoizz/Development/Shell/Git/test2.sh'

这时候就可以直接在命令行输入test1或者test2来切换对应的环境了。

Last login: Tue Aug 11 10:57:27 on ttys001
~
➜ test1
git环境切换成功