新公司代码仓库用的是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环境切换成功