一台电脑存放多个git账户的多个rsa秘钥

如何在一个电脑上存储多个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命令验证结果。

第二种解决方案:亲测可行!

把自定义的私钥文件交由ssh-agent保管.

>ssh-agent bash

>ssh-add ~/.ssh/fgithub

ssh-agent是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程

ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add

实例

1、把专用密钥添加到 ssh-agent 的高速缓存中:

ssh-add ~/.ssh/id_dsa

2、从ssh-agent中删除密钥

ssh-add -d ~/.ssh/id_xxx.pub

3、查看ssh-agent中的密钥:

ssh-add -l

发布了25 篇原创文章 · 获赞 23 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/lyfqyr/article/details/87892271