SSH(Secure Shell)是一种加密网络协议,用于在不安全的网络中安全地进行远程登录和其他网络服务。SSH 工作原理基于客户端-服务器模型,使用非对称加密进行身份验证,对称加密进行数据传输。
核心工作流程
- 连接建立:客户端向服务器发起 TCP 连接(默认端口 22)
- 协议版本协商:双方协商使用的 SSH 协议版本(SSH-1 或 SSH-2)
- 密钥交换:使用 Diffie-Hellman 算法交换会话密钥
- 服务器身份验证:客户端验证服务器身份(通过公钥指纹)
- 用户认证:服务器验证客户端身份(密码或密钥)
- 加密通道建立:建立加密的数据传输通道
- 会话通信:通过加密通道传输数据
关键技术点
- 非对称加密:使用 RSA、ECDSA 或 Ed25519 等算法进行身份验证
- 对称加密:使用 AES、ChaCha20 等算法进行数据加密
- 哈希算法:使用 HMAC-SHA2 系列确保数据完整性
- 密钥交换:Diffie-Hellman 或 ECDH 算法生成会话密钥
安全特性
- 所有通信数据都经过加密
- 防止中间人攻击(MITM)
- 支持端口转发和隧道功能
- 提供多种认证方式(密码、公钥、键盘交互)
SSH 已成为 Linux/Unix 系统远程管理的标准工具,广泛应用于服务器运维、自动化部署和远程开发场景。