工作中有时候需要添加两个以上的ssh-key。或者一个是公司的仓库,一个是自己的仓库。等这种场景就需要在本地配置两个不同的ssh-key并添加到代理中了。
默认配置第一个的ssh-key会在mac的 ~/.ssh 路径下生成 id_rsa_pub 和id_rsa两个文件。
如下图:
配置第二个的时候对于生成公钥和私钥的文件名就需要自定义了,否则就会覆盖上面的这两个默认文件名
这里假设你已近生成了第一个公钥,现在想做的是配置第二个公钥并将其添加到ssh-agent中
配置本地自定义key的名字
cd 到本地.ssh目录下
cd .ssh
生成一个ssh-key (后面填写的是你自己的邮箱账号)
ssh-keygen -t rsa -C "xxx@xxx.com"
输入自定义key的文件名,我这里加的是id_rsa_gz,这个名字可以自定义,
设置密码
Enter file in which to save the key (/Users/cyril/.ssh/id_rsa): id_rsa_gz
Enter passphrase (empty for no passphrase):
根据提示输入密码,这里输入的密码是需要记住的,每次通过ssh方式拉代码都需要输入该密码,可以和gitlab的密码一样,也可以直接两次回车,不输入密码。我这里习惯直接回车,跳过这个输密码的阶段
成功生成ssh-key文件
将上述生成的自定义 ssh-key添加到ssh-agent
到这一步我们已经创建好了自定义的 ssh-key,此时还需要将新的 ssh-key 添加到ssh agent ,因为默认只读 id_rsa,首先可以通过命令查看一下已经添加进去的 ssh-key
打开终端
ssh-add -l
添加自定义key到ssh agent, id_rsa_gz是刚新生成的ssh-key
ssh-add -K ~/.ssh/id_rsa_gz
添加成功之后可以查看一下是否把 id_rsa_gz 添加进去了
ssh-add ls
[图片上传失败...(image-4b2bf6-1648632297394)]
在这里补充说明一下,如果在上面只是运行下面(少了个 -K)
ssh-add ~/.ssh/id_rsa_gz
这命令相当于把对应的密钥加进 ssh-agent 所管理的一个 session 当中,这样每次关机重启之后ssh-agent 服务也就重置了,session 会话也就失效了。就需要重新再加一次。所以加个参数 -k是将密钥放在 keychain中,
这样就不会过期了,也可以打卡mac上的钥匙串访问,观察一些密钥的变化。
将本地的公钥添加到gitlab上去
这个比较简单,直接上图好了,如下:
至此,整个操作就结束了,现在已近可以通过ssh的方式去访问gitlab了。
————————————————
原文链接:https://blog.csdn.net/weixin_38080573/article/details/89042794