1.检查是否已经存在SSH Key
打开电脑终端,输入以下命令:ls -al ~/.ssh
2.会出现两种情况:
(1)终端出现文件id_rsa.pub 或 id_dsa.pub,则表示该电脑已经存在SSH Key,此时可继续输入命令:
//将公钥放到剪切板
pbcopy < ~/.ssh/id_rsa.pub
这样你需要的SSH Key 就已经复制到粘贴板上了,然后进行步骤3
(2)终端未出现id_rsa.pub 或 id_dsa.pub文件,表示该电脑还没有配置SSH Key,此时需要输入命令:
ssh-keygen -t rsa -C "your_full_name@xxxxx.com"
(注意,这里的 your_full_name@xxxxx.com 是你自己的公司邮箱) 默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件,此时终端会显示:
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home_path/.ssh/id_rsa):
连续回车即可,也可能会让你输入密码,密码就是你的开机密码
此时再输入命令:ls -al ~/.ssh 就会出现id_rsa.pub 和 id_dsa.pub两个文件,然后重复情况(1)的步骤即输入以下命令再进行步骤3即可:
pbcopy < ~/.ssh/id_rsa.pub
3.将SSH Key添加到GitLab中
打开GitLab, 登录,找到左边栏有一个的按钮,点击“ADD SSH KEY”按钮添加,将已经获得的SSH Key粘贴到“Key”,下边的标题可以随便取,点击加入项目,这样就保持了本地与服务器端的联系.
二.本地配置多个 SSH Key
大多数时候,我们的机器上会有很多的git host,比如公司gitlab、github、oschina等,那我们就需要在本地配置多个ssh key,使得不同的host能使用不同的ssh key ,做法如下(以公司gitlab和github为例):
为公司生成一对秘钥ssh key
ssh-keygen -t rsa -C 'yourEmail@xx.com' -f ~/.ssh/gitlab-rsa复制代码
为github生成一对秘钥ssh key
ssh-keygen -t rsa -C 'yourEmail2@xx.com' -f ~/.ssh/github-rsa复制代码
- 按照上面的步骤分别往gitlab和github上添加生成的公钥gitlab_id-rsa.pub和github_id-rsa.pub
将ssh-key添加到ssh-agent
上面这一步我们已经创建好了 ssh-key,此时还需要将新的 ssh-key 添加到ssh agent ,因为默认只读 id_rsa,首先查看一下已经添加进去的 ssh-key,当出现下面 这种情况是说明 ssh agent 里面并没有把我们新生产的 ssh-key添加进去
ssh-add -l
The agent has no identities.复制代码
可以选择把我们生成的 ssh-key 添加进去,也可以指定添加
//全部添加
ssh-add
//指定添加(可以切换到.ssh下添加,也可以直接指定路径添加)
➜ .ssh ssh-add id_rsa_test_github
Enter passphrase for id_rsa_test_github:
Identity added: id_rsa_test_github (id_rsa_test_github)复制代码
这时输入下面指令就能看见我们添加进去的 ssh-key
ssh-add -l
复制代码
获取公钥内容的另一种方法:
.ssh cat id_rsa_test_github.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoG4Tmo8wF3P9/Vdtsm220jE6dNu9iG8jtranZccTO4hsyck4cxO02AniYr7JaPsL91sLCODEhnEmI+YWLSXFIaPbXVyVEa3PHc+VdNjgkkm/unkoBKsMLViP0vOUtU2OSYAdlWAoXpAyzPV17W0ratFVkHTjr1+G4NHOCo/qKbozPaHH9gaed7RB1Kx8swPkt0HGv/o9NQh7psmNPaanqMlTqA0uVS47LbCF5+C0CAgj2bFGEHtKy8cw6M+7OHBaTq90d740IBNca1fIvIDTnjsSV26iOiluQ+jVfsHuHmaAuw7ez2z/84sb+r5RtP5kjMemlw2D+/FmbFqx8qXDt youremail@email.com复制代码