以下是 SSH 协议的核心原理和对应 OpenSSH 源码模块的对照说明。理解这些概念后,阅读代码时会更容易定位关键逻辑。
1. SSH 协议的三大核心阶段
**(1) 连接建立与协议协商
-
原理:
- 客户端发起 TCP 连接(默认端口 22)。
- 双方交换协议版本字符串(如
SSH-2.0-OpenSSH_8.9
)。 - 协商支持的协议版本(SSH v1/v2)、加密算法等。
-
源码定位:
- 客户端:
sshconnect.c
→ssh_connect()
→ssh_send_client_banner()
- 服务端:
sshd.c
→main()
→server_accept_loop()
- 协议处理:
sshpkt.c
→ 处理版本字符串交换
- 客户端: