一台电脑一般只用1个SSH Key就够了,为什么会在一台电脑上管理多个SSH Key?也许你会遇到和我一样的使用场景,就是自己在家写代码使用github,往github上提交代码用1个SSH Key是没问题的,但有时候会遇到紧急情况需要处理公司的工作,为了能及时往公司用的gitlab上提交代码,只设置1个SSH Key是不够用的,因此为了满足这种情况还需要增加1个SSH Key。
为了更好的说明如何在一台电脑管理多个SSH Key,我把电脑上原有的SSH Key都先删除了,重头开始演示添加SSH Key的整个过程。
使用的开发环境是Windows10,整个过程分为如下几个步骤:
1.生成第1个SSH Key
本地项目代码,要提交到gitlab,把自己的代码提交到公司的git服务器上,这一切都需要一个SSH Key。安装好git后,右键Git Bash Here,输入如下命令:
$ ssh-keygen -t rsa -C"youremail@yourcompany.com"
输入完以上命令,然后一直按回车就行了。
这样就能使用ssh生成第1个key了,默认会在根目录(windows下是:C:\Users\用户名.ssh)下生成 id_rsa, id_rsa.pub 2个文件,即公钥和私钥。
2.生成第2个SSH Key
第2个key主要是为了把本地代码提交到github上,自己平时写的代码都提交到github上,用来和其他人学习交流。
$ ssh-keygen -t rsa -C"youremail@xxxxx.com"
这个时候需要注意,在生成第2个Key的时候就不要一直按回车了,输入完以上命令后要给这个文件起一个名字, 例如叫 id_rsa_github, 然后再按回车,最后在这个目录下相应的也会生成一个 id_rsa_github.pub 文件,操作过程如下图所示:
最后生成两个key的结果如图所示:
3.修改配置文件
在你的 ~/.ssh 目录下新建一个config文件,添加如下内容:
# gitlab
Host github.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
4.将私钥添加到ssh-agent
首先要明白为什么做这步操作,简单来说就是
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中
$ ssh-add ~/.ssh/id_rsa
$ ssh-add ~/.ssh/id_rsa_github
注意:如果执行ssh-add的时候,提示"Could not open a connection to your authentication agent",则执行命令:
$ ssh-agent bash
然后再执行ssh-add命令。
命令具体可参考:ssh-agent命令
5.设置SSH keys
登录https://github.com/settings/keys,点击New SSH keys,先后添加上2个SSH,这样就可以在一台电脑上管理2个SSH了。
6.测试连接
输入命令:
$ ssh -T git@github.com`
如果输出以上结果,就表示成功连上github了。
注意两点:
1.mac上与windows类似,最主要的是注意文件路径。
2.一般最多管理2个SSH Key,当然也可以管理多个。