如何在 Linux 上使用 OpenSSH 多路复用器加速 OpenSSH 连接
本文将帮助我们了解通过建立主会话,然后使用多路复用器建立后续会话来多路复用 SSH 会话,从而加快 Linux 上 SSH 连接的速度。
多路复用
多路复用只不过是在单个 SSH 连接上发送多个或更多数据,并且可以重用现有的 TCP/IP 连接用于多个并发 SSH 连接。这将减少在服务器上创建新 TCP 连接的负载。
SSH 连接上多路复用器的优点。
- 它使用现有的 *inx 套接字进行连接。
- 它使用现有的 TCP/IP 连接,不再需要新的 TCP/IP。
- 不再需要密钥交换。
- 无需身份验证。
配置多路复用
如果您的主目录中 .ssh 文件夹中不存在配置文件,请以 600 权限(仅您可读写)创建它。
编辑用户的 .ssh/config 文件 –
# vi ~/.ssh/config ControlMaster auto ControlPath ~/.ssh/master-%r@%h:%p.socket ControlPersist 30m
示例配置文件 –
Host * ControlPath ~/.ssh/master-%r@%h:%p ControlMaster auto ControlPersist 30m
说明
Host * or Host client : This start SSH configuration. ControlPath ~/.ssh/ssh-mux-%r@%h:%p : This specifies the path to the control *inx socket to be used for connection and sharing is as described in the above. The variables ‘%r’ - remote ssh username ‘%h’ - remote ssh host ‘%p’ - remote ssh port You need to set all of these three variables for this option. ControlMaster auto: This enables the sharing of multiple sessions over a single network connection. When this set to yes, the SSH will listen for connections on a control socket specified using the ControlPath argument. When this set to auto, ssh will try to use a master connection, but the connection falls back to creating a new one connection, if one does not exist. ControlPersist 30m: This option specifies that the master connection should remain open in the background for 30 minutes. If the connection is with no clients, then the backgrounded master connection will automatically terminate after it had remained idle for 30 minutes.
如何连接
从客户端机器使用以下命令连接到服务器。
#ssh [email protected] The authenticity of host '192.168.2.225 (192.168.2.225)' can't be established. RSA key fingerprint is f7:c8:62:c9:6f:02:50:8e:14:cd:3a:95:ad:b1:67:af. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.2.225' (RSA) to the list of known hosts. [email protected]'s password: Last login: Fri Apr 22 13:26:56 2016 from 192.168.1.84
如何验证多路复用器是否正在工作?
转到 SSH 服务器并运行以下命令。
# lsof -U | grep master ssh 69518 root 4u unix0xffff8801378f7580 0t0 607468 /root/.ssh/[email protected] ssh 69518 root 5u unix0xffff880139986b80 0t0 607482 /root/.ssh/master [email protected]
或
我们可以使用另一个命令检查
# ssh -O stop 192.168.2.225 Master running (pid=69518) #
如果我们使用许多终端或脚本通过 OpenSSH 连接到同一服务器,则可以使用多路复用来加快它们的速度,这使得第一个连接成为主连接,并允许其他连接共享其到服务器的 TCP 连接。
广告