🚀 优质资源分享 🚀
学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
基础知识
- ssh:secure shell protocol,安全的远程登录
- 作用:是建立在应用层基础上的安全协议,实现数据传输过程中数据的加密,代替telent协议
- 使用tcp协议,端口号为22
ssh服务具体的软件实现:
- openSSH
- dropbear
OpenSSH:ssh协议的开源实现,linux(centos、ubuntu等)默认使用的是openssh来实现ssh这个服务的
dropbear:另一个ssh协议的开源项目的实现
ssh的通信过程:
第一次连接的时候就要进行公钥的交换
- 客户端发起请求
- 服务端返回给客户端自己的公钥,以及生成一个会话ID
- 客户端生成密钥对:将自己的公钥和会话ID做异或运算,然后再使用服务端的公钥来加密异或运算的到的值
- 服务端的到这个加密的数据后使用自己的私钥解密得到数据
- 服务端使用解密后得到的数据和会话ID进行异或运算得到客户端的公钥(服务器得到客户端公钥)
最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密
服务器的公钥表现为一个磁盘文件
客户端的公钥是临时生成的(在连接的时候自动生成一个公钥)
ssh加密通信原理
假如A和B通信,A是客户端,B是服务端
A--->B
客户端A使用服务端B的公钥来加密数据,服务端B使用自己的私钥来解密数据
B--->A
流程和A--->B的流程是一样的
#第一次连接的时候会把目标主机的公钥利用哈希算法生成一个摘要,需要手动确认目前连接的机器是想要连接的目标主机
#确认以后会自动把对方的公钥下载下来,下次再连接的时候就能确保是否和第一次是同一个主机。
#对方公钥存放位置:
当前用户的家目录下面一个叫做ssh的隐藏文件夹,里面有个叫做known_hosts的文件,里面记录了远程主机的公钥。
#拿到公钥的好处:
如果下次访问的时候有一个假冒的主机(同样的ip地址等信息),系统是能够发现的。
#新的机器地址和旧地址一样,只需要删除旧机器对应的公钥文件就可以重新连接上去了 .ssh/known\_hosts里面
openssh服务
OpenSSH是SSH(Secure SHell)协议的免费开源实现,一般在各种Linux版本中会默认安装,基于C/S结构
Openssh软件相关包组成:
- openssh
- openssh-clients:服务器的配置文件带D,客户端的配置文件不带D
- openssh-server:这个包定义了服务器的配置文件
#可以使用rpm -ql 包名 :查看软件包中的内容
服务端