转载,留作记录:https://www.cnblogs.com/qingguo/p/5686247.html
如何在一个电脑上存储多个git账户生成的多份rsa秘钥,实现多个账户同时使用配置的情况?今天,不幸又再次遇到这个问题。
问题描述
公司最近在开发一款开源产品,项目被托管在github上,但是公司内部一直使用的是gitlab,而且早就配了gitlab的rsa秘钥。之前的做法是重新生成一个github秘钥,覆盖掉之前的gitlab秘钥。每次切换过程就意味每次需要重新生成一份秘钥。只有两个账户的情况还能勉强接受下,某一天再想搞个小号刷副本时,这酸爽真的没法形容。
解决办法
今天总算想了一个办法,解决方式如下:
首先,使用终端ssh命令生成第一个默认的rsa秘钥。
ssh-keygen -t rsa -C "$your_email"
一直回车下去。生成结果如图所示:
默认情况下,这个rsa秘钥是在你个人账户的.ssh目录下面,存在一个id_rsa私钥文件和id_rsa.pub公钥文件。然后复制公钥文件中的字符串。
进入github账户setting选项SSH and GPG keys,把复制的公钥字符串粘贴里面的key输入框中,保存退出即可。
通过终端ssh测试可知,出现如下提示内容,说明秘钥已经生成且添加成功。
此时,我们生成的id_rsa秘钥是默认的。接着以同样的方式创建第二个秘钥,再创建秘钥的过程中会出现如下提示:
我们需要重新命名一个文件和默认id_rsa秘钥文件区分开,生成之后发现.ssh目录下面存在两份秘钥,如图所示:
然后我们在.ssh目录下面新建config文件,文件内容如下:
每份秘钥和对应的git网址对应。然后清空known_hosts文件内容。至此,大功告成。
我们可以通过ssh命令验证结果。