Mac配置多个ssh

1,687 阅读3分钟

背景:

工作中经常碰到需要多个ssh-key,比如一个是自己的,一个是公司的,甚至还有其他的,这种情况下就需要在本地配置相应多个ssh-key,并添加到代理中。 如图:

方法一

方法二:如下这些步骤

image.png

配置第二个的时候对于生成公钥和私钥的文件名就需要自定义了,否则就会覆盖上面的这两个默认文件名, 这里假设你已近生成了第一个公钥,现在想做的是配置第二个公钥并将其添加到ssh-agent中

一、配置本地自定义key的名字

1. cd 到本地.ssh目录下

cd .ssh

2. 生成一个ssh-key (后面填写的是你自己的邮箱账号)

ssh-keygen -t rsa -C "xxx@xxx.com"

3. 输入自定义key的文件名,我这里加的是id_rsa_gz,这个名字可以自定义,

image.png image.png

4. 设置密码

Enter file in which to save the key (/Users/cyril/.ssh/id_rsa): id_rsa_gz Enter passphrase (empty for no passphrase): image.png

根据提示输入密码,这里输入的密码是需要记住的,每次通过ssh方式拉代码都需要输入该密码,可以和gitlab的密码一样,也可以直接两次回车,不输入密码。我这里习惯直接回车,跳过这个输密码的阶段

5. 成功生成ssh-key文件

image.png

将上述生成的自定义 ssh-key添加到ssh-agent

到这一步我们已经创建好了自定义的 ssh-key,此时还需要将新的 ssh-key 添加到ssh agent ,因为默认只读 id_rsa,首先可以通过命令查看一下已经添加进去的 ssh-key

6. 打开终端

ssh-add  -l

image.png

7. 添加自定义key到ssh agent, id_rsa_gz是刚新生成的ssh-key

ssh-add -K ~/.ssh/id_rsa_gz
注意:这里的 -K 已经过时了,可以采用--apple-use-keychain代替,或者采用--apple-load-keychain

image.png

添加成功之后可以查看一下是否把 id_rsa_gz 添加进去了 ssh-add ls

在这里补充说明一下,如果在上面只是运行下面(少了个 -K)

ssh-add ~/.ssh/id_rsa_gz

image.png

8. 电脑重启后还要让它有效【这一步暂时不需要了】

echo "ssh-add --apple-use-keychain ~/.ssh/id_rsa_xxx " >> ~/.bash_profile

查看

cat ~/.bash_profile

查看结果:

ssh-add -K ~/.ssh/id_rsa_xxx

二、配置config

如果自定义公私秘钥的文件名,需要告诉系统,每次拉取代码的时候,对于的域名需要找那一对公私秘钥
在.ssh文件夹下新建config文件(如果有的话就直接加,没有的话新建一个)
在config文件中添加域名和公私钥的信息 这命令相当于把对应的密钥加进 ssh-agent 所管理的一个 session 当中,这样每次关机重启之后ssh-agent 服务也就重置了,session 会话也就失效了。就需要重新再加一次。所以加个参数 -k是将密钥放在 keychain中, 这样就不会过期了,也可以打卡mac上的钥匙串访问,观察一些密钥的变化。

三、将本地的公钥添加到gitlab上去

这个比较简单,直接上图好了,如下:

image.png 至此,整个操作就结束了,现在已近可以通过ssh的方式去访问gitlab了。

四、额外扩展和shell脚本相关命令

1. vim命令

(1)进入命令

进入系统 .bash_profile文件:
   sudo vim ~/.bash_profile
进入系统 .zshrc文件:
   sudo vim ~/.zshrc

(2)退出命令

先摁esc键

保存退出: 
:wq

保存不退出
:w

不保存退出(文件被修改过)
:q!

直接出退出(文件未被修改过)
:q

更多解释

总结步骤:

1、cd .ssh
2、ssh-keygen -t rsa -C "xxx@xxx.com"
3、ssh-add  -l
4、ssh-add --apple-use-keychain ~/.ssh/id_rsa_xxx
5、echo "ssh-add --apple-use-keychain ~/.ssh/id_rsa_xxx " >> ~/.bash_profile
vim ~/.zshrc
echo "ssh-add --apple-use-keychain ~/.ssh/id_rsa_xxx " >> ~/.zshrc
6、复制id_rsa_xxx.pub里面的内容到gitlab中的ssh-agent中(在设置里面找)

参阅: 参阅一 参阅二 参阅三