首先我们要做的是查看 系统盘/user/yourUserName/.ssh 目录下有没有密钥文件,一般默认创建的名字为:id_rsa---私钥,id_rsa.pub---公钥文件;(总而言之只要你创建过密钥,就会出现这类文件)。如果想丢弃以前配置的密钥重配也可以通过命令:
$ cd ~/.ssh
查看是.ssh文件,有则删除或备份删除;
其次我们需要开始创建 "多套"密钥:
- 命令行执行创建命令:
$ ssh-keygen -t rsa -C “yourEmail”
注意email要和你需要匹配的平台对应。 - 重点:接下来不能连敲三个空格,第一个你要输入你的密钥名称,关键就在这里,因为平时都是连敲三个空格造成名称一样所以覆盖了原来的密钥,才会造成不能同时存在多套密钥;输入名称之后的两个需要你输入的地方为密码,这里可以直接回车(回车表示密码为空);到这里我们去.ssh目录看一下,密钥就创建成功了,你想创建多少套就创建多少套,唯一注意的是密钥名称需要设置的不一样。
- 在.ssh目录下创建配置文件config(主要作用是分配不同平台匹配不同的密钥,可使用记事本打开编辑,注意此文件无扩展名)创建命令为
$ touch config
内容为:
Host gitlab.com
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa```
```# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github```
```# coding
Host git.coding.net
HostName git.coding.net
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github```
4. 添加密钥到ssh:ssh-add 文件名(其实是添加私钥):
```$ ssh-add ~/.ssh/私钥名称(形如:id_rsa ) ```如果执行ssh-add时提示"Could not open a connection to your authentication agent",可以现执行命令:```$ ssh-agent bash```然后再执行ssh-add命令。
5. 添加对应公钥到各个对应平台,一般的:在平台里有addsshkey之类的就是添加公钥的入口;复制对应的pub公钥文件内容(可用记事本打开)粘贴到公钥填写框中保存。
6. 使用命令测试是否链接到对应的平台```$ ssh -T git@github.com```(测试是否链接到github,如果测试gitlab就把@后边改一下,coding应该改为coding.net)
到这里我们就达到多套密钥匹配多平台的目的了:只要注意一下几点:
- 创建密钥不能一直回车,需要输入不同的名称达到后创建的密钥不覆盖的先创建的密钥的目的,当然也可以直接在创建的时候就使用命令指定名称```$ ssh-keygen -t rsa -C "yourEmail” -f ~/.ssh/SSHKeyName```麻麻再也不用担心我手欠一直敲空格了。
- 创建同意管理密钥的配置文件config文件是必不可少的,他的作用是一个调度站,管理着你相应的平台读取相应的密钥。
- ssh-add的一些命令:
``` 可以通过$ ssh-add -l 来确私钥列表
可以通过$ ssh-add -D 来清空私钥列表