工作中经常会遇到要ssh连多个环境的情况,比如公司的内网git需要配SSH key,连公司的relay也需要SSH key,自己还有个人的github SSH key……这种情况就需要配置多个SSH key,下面来总结一些配置过程。(基本是参照团队的好兄弟李毅之前整理过的文档)
生成SSH key
按下面的步骤生成需要的SSH Key,如为github生成一对key:
cd ~/.ssh
.ssh ssh-keygen -t rsa -C"youremail@email.com" -f ~/.ssh/github
会看到打印出来类似的log:
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in ./.ssh/github.
Your public key has been saved in ./.ssh/github.pub.
The key fingerprint is:
……
打开.ssh/github.pub并把其中的文本内容复制出来,准备粘贴到github的SSH页面。
在浏览器里面打开并登录github,settings -> SSH and GPG keys,找到右边的"New SSH Key"按钮,在编辑框中粘贴刚才复制的.ssh/github.pub的内容。
生成/修改config文件
查看.ssh文件夹下面是否有config文件,如果没有的话就创建一个新的,并添加下面的内容来配置github的ssh连接信息:
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github
User yourname
在config中添加下面的内容
#Host不能省略,否则ContorlPath的文件不会生成,多连接共享不生效
Host *
ControlPersist yes
#必须设置为auto, 否则产生错误,ControlSocket /Users/liyi/.ssh/master-liyi5@relay.xiaomi.com:22 already exists, disabling multiplexing, 多连接共享不生效
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
从github上拉取代码试一下,也可以试试多个SSH连接测试一下,OK啦。