SSH 秘钥Key的简介以及生成和使用

一、简介
一、SSH key简介
要了解SSH key简介,首先得熟悉SSH,关于ssh可以参考“SSH的初步使用详解” 。SSH 密钥对可以让您方便的登录到 SSH 服务器,而无需输入密码 。SSH 密钥对总是成双出现的,一把公钥,一把私钥 。公钥可以自由的放在您所需要连接的 SSH 服务器上,而私钥必须的保管好 。
1、什么是公钥登录
公钥登录,很多时候也说 key认证,公钥登录的原理:首先用户将自己的公钥存储在需要登录的远程机器上面,然后登录的时候,远程主机会向用户发送一段随机字符串,接着用户使用自己的私钥加密字符串,并发给远程主机 。最后,远程主机使用存储的公钥进行解密,若解密成功,则说明用户可信,准许登录,不在提示输入密码 。

SSH 秘钥Key的简介以及生成和使用

文章插图
备注:
1、服务端会将客户端发的公钥写入到~/.ssh/ 文件末尾 。
2、公钥和私钥在客户端(登录端)生成
2.什么是口令登录
口令登录,即登录的时候需要输入登录密码 。
1.客户端向服务器发出请求
2.服务器将自己的公钥返回给客户端;
3.客户端用服务器的公钥加密登录信息, 再将信息发送给服务器;
SSH 秘钥Key的简介以及生成和使用

文章插图
4.服务器接收到客户端传送的登录信息, 用自己的私钥解码, 如果结果正确, 则同意登录, 建立起连接 。
实现原理如下图:
SSH 秘钥Key的简介以及生成和使用

文章插图
备注:
1、公钥和私钥在服务端生成
二、生成公钥和私钥
ssh-命令,可以生成公钥和私钥,默认生成到用户的家目录下的.ssh文件夹里面
私钥默认会被保存在 ~/.ssh/
公钥默认会被保存在 ~/.ssh/.pub
命令的格式如下:
ssh-keygen -f fileName -t rsa -C "dequan@example.com"
参数解析:
-f 指定要生成文件的文件名称
-t 设置认定方式,值为rsa,即非对称加密;或dsa,即数字签名和认证
-c 指定公钥中的备注信息
SSH 秘钥Key的简介以及生成和使用

文章插图
三、使用公钥登录的案例
现在,我将从ip为192.168.13.143 的机器,以公钥登录的方式,登录到ip为192.168.13.139的机器 。
默认情况下,如果不输入密码,是无法登录的,如下:
SSH 秘钥Key的简介以及生成和使用

文章插图
1、存储公钥
存储公钥,即将192.168.13.143上面生成的公钥,存储在192.168.13.139上面root用户的家目录,如下:
SSH 秘钥Key的简介以及生成和使用

文章插图
将公钥的内容,追加到192.168.13.139上面root用户家目录下的.ssh/文件中,如果该文件不存在,需要手动创建 。
2、重新登录
执行如下命令登录
ssh root@192.168.13.139
SSH 秘钥Key的简介以及生成和使用

文章插图
【SSH 秘钥Key的简介以及生成和使用】可以看到,这次不需要输入密码,即可完成登录了 。