1.SSH协议的工作过程
第一阶段:TCP三次握手版本协商过阶段(高版本能兼容低版本–同一版本才能建立连接):
SSH目前包括SSH1和SSH2两个版本,双方(即客户端和服务器)通过版本协商确定使用的版本
先响应服务端的版本,再响应客户端的版本
第二阶段:协商算法和确定对称秘钥阶段
SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法
(1)确认秘钥和加密算法:
秘钥交换的算法(dh迪菲-赫尔曼算法)
主机秘钥的算法(默认主机所支持的密钥)–对称算法DSA,非对称算法RSA
加密算法
完整性校验的算法 :MD5
压缩算法 (发送端对数据进行压缩,接收端进行解压缩,并确保数据的完整性–安全性)
(2)进行秘钥交换:dh迪菲-赫尔曼算法
第三阶段:认证阶段:
SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证
第四阶段:会话请求阶段:
认证通过后,客户端向服务器端发送会话请求
第五阶段:交互会话阶段
会话请求通过后,服务器端和客户端进行信息的交互
2.SSH服务配置
[root@localhost ~]# rpm -qa | grep ssh ---查看是否安装openssh软件
libssh-0.9.6-7.oe2203sp2.x86_64
openssh-8.8p1-20.oe2203sp2.x86_64
openssh-server-8.8p1-20.oe2203sp2.x86_64
openssh-clients-8.8p1-20.oe2203sp2.x86_64
判断ssh程序是否运行(有下列几种方式):
[root@localhost ~]# lsof -i:22 ---通过端口号
[root@localhost ~]# rpm -qa | grep ssh
[root@localhost ~]# netstat -tunlpa | grep ssh --基于ssh所监听的信息
[root@localhost ~]# systemctl status sshd --当前sshd服务的状态(默认)
查看远程连接所提供的配置文件:
[root@localhost ~]# rpm -ql openssh-server
客户端:
ssh-keygen -t rsa --生成公钥登录信息
ssh-copy-id 用户名@ip地址 --将公钥信息发送给服务端
ssh 用户名@ip地址 --实现ssh登录
服务端:ll /root/.ssh --查看客户端的公钥信息是否发送过来
3.对两台主机进行相同配置即可形成互相免密登陆