SSH ControlMaster:复用连接提升多会话效率
在日常工作中,我们经常需要同时打开多个 SSH 连接到同一台服务器。每次连接都需要经历 TCP 握手、TLS 协商(如果是跳板机)、密钥交换等过程,既浪费时间又消耗资源。SSH 提供的 ControlMaster 特性可以让我们复用已建立的连接,大幅提升多会话场景下的效率。 什么是 ControlMaster? ControlMaster 是 SSH 的连接复用功能。它允许在第一个 SSH 会话建立后,创建一个控制 socket(套接字文件)。后续的 SSH 连接可以通过这个 socket 复用已有的网络连接,无需重新建立 TCP 连接和身份验证。 核心优势: 减少连接建立时间(从数秒缩短到毫秒级) 降低跳板机/堡垒机负载 支持多会话共享同一个加密通道 工作原理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 首次连接(无 ControlMaster): 客户端 ----TCP 握手----> 服务器 客户端 ----密钥交换----> 服务器 客户端 ----认证-------> 服务器 客户端 <---会话建立---- 后续连接(无 ControlMaster): 客户端 ----TCP 握手----> 服务器(重复一遍) ... 首次连接(启用 ControlMaster): 客户端 ----TCP 握手----> 服务器 客户端 ----密钥交换----> 服务器 客户端 ----认证-------> 服务器 客户端 <---会话建立---- 同时创建: /tmp/ssh-control/%r@%h:%p 后续连接(复用 ControlMaster): 客户端 ----控制 socket通信----> 已有连接复用 客户端 <---瞬间建立---- 配置方法 方式一:全局配置文件 编辑 ~/....