自定义名称ssh密钥,并使用不同密钥登录不同服务器

很多个代码托管平台共用同一个密钥,即默认的 id_rsa,考虑到风险性,所以需要使用不同密钥,登录不同平台/服务器。

什么是公钥什么是私钥

公钥就好比一把锁,你在一个平台放上你的公钥,就相当于你自己买了把锁在该平台把你的东西锁起来了。私钥好比开锁的钥匙 你在平台上的锁,只有你的私钥这把钥匙才能打开,平台其他人都打不开。

公钥可以给任何人,但是私钥只能自己拿着!!

下图中;

id_rsa就是存放私钥的文件

id_rsa.pub就是存放公钥的文件

 

一、创建默认ssh密钥

一般,我们的密钥存放在 ~/.ssh 目录下,以下以 MacOs示例

1.进入.ssh文件

$ cd ~/.ssh

 

2.查看已有 密钥

$ ls

 

在这里插入图片描述
3.创建默认密钥 id_rsa
(如果上一步 ls后没内容,接着看,如果已有 id_rsa 密钥,跳过这一步,到第4步)

$ ssh-keygen -t rsa 

 

输入上述命令后,一路回车就好,创建完成之后,再次 ls,即可看到新增加了 id_rsa 和 id_rsa.pub 两个文件,这也就是 默认密钥

二、创建自定义名称密钥

有了默认密钥,还不够用,想再创建几个自己命名的密钥,怎么办?

4.自定义名称密钥

$ ssh-keygen -t rsa -C “your email” -f id_rsa_xx

 

注:
“your email” 替换成你自己的邮箱;
-f 后边“id_rsa_xx” 中的 xxx 就可以自定命名,用来区分啦

例如:我想创建一个在 centOs中使用的密钥,我可以:

$ ssh-keygen -t rsa -C “your email” -f id_rsa_centos

 

一路回车之后,就会新建 id_rsa_centos.pub 和 id_rsa_centos 两个文件;

三、配置不同平台使用不同密钥

前边咱们已经创建了多组密钥,需要做一个配置文件,用来管理 哪组密钥 应用在哪个平台,这个配置文件就是 ~/.ssh/config

5.创建 config文件
如果 ~/.ssh 目录下 没有 config文件,可用如下命令自行创建一个

$ touch config

 

6.配置 config 文件
通过 vi 编辑 config文件:

$ vi config

 

config 内容可以如下配置:

# 设置不同密钥,访问不同服务器

# centOs服务器
Host xxx.xxxx.xxx.xxx.          # 服务器外网ip,如 11.111.11.11
User  username                  # username 是要使用的登录名,如root
IdentityFile ~/.ssh/密钥名       # 不同密钥名,如上边创建的id_rsa_centos:~/.ssh/id_rsa_centos

 

四、平台端配置

7.将不同密钥的 公钥,就是以 “.pub” 结尾的文件(如id_rsa.pub)里的内容放到对应平台的ssh公钥设置的地方,就能对应生效啦。

posted @ 2022-05-04 13:13  Laoevils  阅读(768)  评论(0)    收藏  举报