一、实操目的
1、掌握快速配置SSH服务的技能
2、掌握并对比客户端SSH登录的两种方式(基于口令认证/基于公钥认证)
3、加深对操作系统用户权限管理的理解
4、加深对SSH连接身份认证机制的理解
二、实操部分
实验环境:VMWare 17
网络环境:桥接模式(VMnet8)
主机:Kali2025(虚拟机192.168.232.131)
客户机:Win10(宿主机192.168.232.1)
注:后续以服务器管理人员视角,称Kali为主机(被连接),Win10为客户机(主动发起连接)
1、检查主机非对称钥匙对

主机钥匙存在
查看ed25519算法的公钥,记住他,待会要用

2、检查主机SSH配置文件

为了看得更清楚,这里采用vscode打开

检查了一下,没有问题
2、开启SSH服务

3、回到客户机用户目录,生成用于SSH连接的钥匙对

检查目录,确认生成了公私钥

4、打开客户机公钥文件,复制内容并存放到客户机的~/.ssh/authorized_keys

检查客户机用户目录,没有authorized_keys的自己touch一个

打开并把客户机公钥放进去

4、检查相关文件权限
确保~./ssh为700,authorized_keys为600,避免权限问题

5、回客户机,使用私钥作为签名器进行登录

需要知道,这里只是用终端进行演示,现实里会用带图形化的终端管理工具,只要初次登录配置好密钥,以后就可以免密直接登录了。
所以不要较真问为什么用了公钥认证反而更加繁琐,实际上是真香,还安全。
6、验证服务器指纹
虽然在自己机器上做实验这一步看起来确实没有必要,但是在实际生产环境中,对指纹进行验证可以有效防止MITI
还记得第一步记下的主机ed25519公钥吗,写个脚本计算出SHA256

输出结果如下

与这里的指纹进行比对

内容相同,目的主机可信,输入yes,即可免密登录,直接进入终端

另外也可以直接把主机密钥拿到客户机上,使用ssh-keygen -lf进行检验

三、SSH登录认证机制
本实操是基于已经学习了SSH认证的基础,如有遗忘,参考之前的文章《SSH连接抓包分析》
四、OpenSSL生成钥匙对与SSH专用钥匙对区别
之前已经研究过OpenSSL去生成几个算法的密钥对,实操视频:这里