• OpenSSH多路复用Multiplexing配置


    设置 Session Multiplexing

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

    清单 1. 配置 Session Multiplexing
    Host *                                  #该部分的定义将应用到全部主机
    ControlMaster yes                       #Session Multiplexing 开关
    ControlPath   ~/.ssh/master-%r@%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 zhang@9.115.241.18 'while /bin/true; do ls; sleep 1; done > /dev/null' &[1] 11551
    # 再建立另一个连接到服务器端,执行同样的操作
      $ ssh zhang@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.结果

     OK   
     OK   
     OK   
     OK   
     OK   
     OK   
     OK   
    
    real    0m17.460s  
    user    0m1.109s  
    sys     0m0.607s 

     参考资源

    https://www.ibm.com/developerworks/cn/opensource/os-cn-openssh-multiplexing/index.html?ca=drs-&utm_source=tuicool&utm_medium=referral

  • 相关阅读:
    第五章 数据的共享与保护
    实验6
    实验5
    实验4 类与对象2)
    实验三 类与对象
    实验2
    2018—3-21第二章程序例题(2)
    第二章思维导图
    2018—3-18C++第二章程序例题
    汇编实验九
  • 原文地址:https://www.cnblogs.com/birdstudio/p/6801052.html
Copyright © 2020-2023  润新知