SSH
ssh通常用于远程连接访问,基于应用层基础上的一个安全协议
三层协议
- 传输层协议Trans:与SSL/TLS同一层级
- 用户认证协议:口令与登录
- 连接协议:构建交互式回话等
SSH基本原理和免密码登录
从客户端来看,SSH提供两种级别的安全验证:
- 第一种级别是基于口令的安全验证:
- 远程主机收到用户的登录请求,把自己的公钥发给用户。
- 用户使用这个公钥,将登录密码加密后,发送回来。
- 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
- 缺点:如果有人冒充服务器,就会给你假服务器公钥,最后就能获得你回应的密码,这就是中间人攻击。
- 第二种级别是基于密匙的安全验证:
- 前提:客户端创建一对公钥+秘钥,同时将公钥放在服务器上。
- 客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证;
- 服务器收到请求之后,先在该服务器上寻找你的公钥,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用这个公钥加密一个【随机字符串】并把它发送给客户端软件;
- 客户端软件收到【加密后的-随机字符串】之后,就可以用你的私人密匙解密,再把【随机字符串】发送给服务器
- 与第一种级别相比,第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒,但是相比输入密码的方式来说10秒也不长。
SCP
基于SSH隧道,建立起来的一个文件传输协议 重要区别:SCPServer不是长期监听,而是被触发运行。即请求SCP连接时候是建立SSH连接,服务器接收到连接才启动SCPServer。
SFTP
基于SSH的高仿FTP文件传输系统,而SCP是实现简单的文件传输功能