OpenSSH的Multiplexing配置

设置 Session Multiplexing

在客户端节点如下配置/etc/ssh/ssh_config 或~/.ssh/config 就可以直接开启 Session Multiplexing 功能:

清单 1. 配置 Session Multiplexing
Host *                                  #该部分的定义将应用到全部主机
ControlMaster yes                       #Session Multiplexing 开关
ControlPath   ~/.ssh/master-%[email protected]%h:%p    #供 Session Multiplexing 使用的 Control Socket (Unix Socket) 路径
ControlPersist yes                      #是否开启后台 Control master 模式

成功开启后,无论从该客户端节点用同一用户向同一 SSH Server 节点发起多少次连接,都有且仅有一条连接被建立,负责该节点到该 Server 之间的所有 SSH 包文。

下面我们给出一个实际案例:如清单 2 所示,设有一个 SSH 服务器节点:9.115.241.18,一个 SSH 客户端节点:9.115.241.20。在客户端的 Session Multiplexing 开启的情况下,向服务器端建立若干个 SSH 会话,最后在客户端或服务器端检测实际存在的连接数,会发现整个过程仅仅有一条 TCP 被建立起来。

清单 2. Multiplexing 实际使用案例
# 注:以下的操作均在客户端节点(9.115.241.20)完成
# 建立一个连接到服务器端,定期执行 ls 命令打印出当前目录下的文件
  $ ssh [email protected]9.115.241.18 ‘while /bin/true; do ls; sleep 1; done > /dev/null‘ &[1] 11551
# 再建立另一个连接到服务器端,执行同样的操作
  $ ssh [email protected]9.115.241.18 ‘while /bin/true; do ls; sleep 1; done > /dev/null‘ &[2] 11638
# 最后,显示出当前节点接入服务器端(9.115.241.18)22 端口(SSH 协议)的所有连接
  $ netstat -n | grep ‘9.115.241.18:22‘
  tcp        0      0 9.115.241.18:22         9.115.241.20:52148      ESTABLISHED

由清单 2 最后的 netstat 命令可知,无论由客户端发起多少个 SSH 进程,都只会有一条连接建立起来,而这一条连接便承载了 9.115.241.20 到服务器端的所有 SSH 通讯。

例子

新建文件ip.txt

清单 3.ip.txt
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1
127.0.0.1

新建脚本ssht.sh

清单 4.ssht.sh
#!/bin/bash
while read line;do
        ssh -n $line "echo ok &>/dev/null" && echo -e "\e[1;32m OK \e[0m" || echo -e "\e[1;31m FAIL \e[0m"
done < ip.txt 

然后执行 time sh ssht.sh

清单 5.结果
时间: 2024-08-01 07:09:02

OpenSSH的Multiplexing配置的相关文章

OpenSSH for Windows 配置

1.下载openssh. 2.安装. 安装很简单,就像其它windows下的软件一样,双击即可.安装到大半,会有提示框弹出,说“必须要设置../etc/passwd文件才可以正常运作 openssh,详情可以参阅readme.txt或quickstart.txt文件.”不用管它,按确定继续完成安装.安装完后可以看到 quickstart.txt文件的内容. 3.配置. 第一.打开一个ms-dos终端,进入openssh/bin目录.(安装完openssh后,发现多了几个在linux中常用的命令,

配置openssh服务器(学习整理)

1.安装服务器端软件包 先查看是否已经安装openSSH服务器软件包 # rpm -qa|grep openssh openssh-askpass-5.3p1-104.el6_6.1.x86_64 openssh-server-5.3p1-104.el6_6.1.x86_64 #服务器端软件包 openssh-clients-5.3p1-104.el6_6.1.x86_64 #客户端软件包 openssh-5.3p1-104.el6_6.1.x86_64 #包含服务器端和客户端的核心文件 如果没

sourcetree和gitlab配置图解

一.前期准备安装 1.git客户端(1.产生gitlab服务端和本地git相互传输时所需要校验的私钥和公钥    2.直接在Idea中使用git提交和push代码,当然也可以用sourcetree提交代码 ) 2.sourcetree客户端(1.拉取远端服务器代码到本地  2.push本地代码到远端  3.创建分支,解决提交代码中的冲突) 3.gitlab账号(一般公司配置,用自己的邮箱)(1.建立远端分支,可追踪   2.本地和远端代码的修改活动详细显示   3.云储存库,储存代码   ) 一

SSH学习之二 OpenSSH配置文件解析

下面是对SSH配置文件的一些选项的分解说明,ssh_config是OpenSSH客户端的配置文件,sshd_config是OpenSSH服务器端的配置文件. ssh_config的内容如下: # This is the ssh client system-wide configuration file.  See ssh_config(5) for more information.  This file provides defaults for users, and the values c

Ubuntu配置新安装配置折腾好大一会

------------------------------------- 设置root管理员账户密码: sudo passwd root 输入普通用户密码后修改. 修改后退出,用root登录 安装远程服务: $ sudo apt-get install openssh-server $ sudo /etc/init.d/ssh restart 检查服务状态: systemctl --failed Server responded "Algorithm negotiation faild.&qu

Hadoop的学习前奏(二)——Hadoop集群的配置

前言: Hadoop集群的配置即全然分布式Hadoop配置. 笔者的环境: Linux:  CentOS 6.6(Final) x64 JDK:    java version "1.7.0_75" OpenJDK Runtime Environment (rhel-2.5.4.0.el6_6-x86_64 u75-b13) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode) SSH:    OpenSSH_5.3p1, Ope

CentOS6.4升级openssh

--------------------------------- 一.为什么要升级 二.系统环境 三.卸载系统自带openssh-server 四.源码安装openssh 五.配置 --------------------------------- 一.为什么要升级 最近收到某项目的安全评估报告,让升级最新的openssh,如下: 二.系统环境 # cat /etc/redhat-release  CentOS release 6.4 (Final) # uname -r 2.6.32-358

ssh的配置,ssh打开密钥登陆,关闭密码登陆。

刚装玩fedora,那么我们就以fedora为例来说一下怎么配置: 1.先确认是否已安装ssh服务: [[email protected] ~]# rpm -qa | grep openssh-server openssh-server-5.3p1-19.fc12.i686 (这行表示已安装) 若未安装ssh服务,可输入: #yum install openssh-server 进行安装 2.winscp登陆,用root密码登陆. 3.修改配置文件: #vi /etc/ssh/sshd_conf

Windows上安装配置SSH教程(8)——综合应用:在Windows上使用手动方式实现SSH远程登陆与文件传输

服务器端操作系统:Windows XP 客户端操作系统:Windows10 安装与配置顺序 1.服务端安装OpenSSH 2.服务端配置OpenSSH 3.客户端安装OpenSSH 4.客户端安装WinSCP 下面逐步介绍安装配置方法 说明:局域网内,请先用交换机把计算机连接起来,设置好IP地址. 1.服务端安装OpenSSH 下载安装包:https://sourceforge.net/projects/sshwindows/ 除了修改软件的安装目录其他都是一路默认选项,Next到最后. 2.服