zoukankan      html  css  js  c++  java
  • [转]Linux下SSH Session复制

    羡慕Windows下secureCRT的Session Copy功能,一直在寻找Linux下类似的软件,殊不知SSH本身就支持此功能。
    特别感谢阿干同学的邮件分享。

    详细方法

    Linux/mac下,在$HOME/.ssh/config中加入
    Host *
    ControlMaster auto
    ControlPath /tmp/ssh-%r@%h

    至此只要第一次SSH登录输入密码,之后同个Hosts则免登。

    配置文件分析

    man ssh_config 5

    ControlPath
                 Specify the path to the control socket used for connection sharing as described in the ControlMaster section
                 above or the string “none” to disable connection sharing.  In the path, ‘%l’ will be substituted by the
                 local host name, ‘%h’ will be substituted by the target host name, ‘%p’ the port, and ‘%r’ by the remote
                 login username.  It is recommended that any ControlPath used for opportunistic connection sharing include at
                 least %h, %p, and %r.  This ensures that shared connections are uniquely identified.

    %r 为远程机器的登录名
    %h 为远程机器名


    原理分析

    严格地讲,它并不是真正意义上的Session Copy,而只能说是共享Socket。
    第一次登录的时候,将Socket以文件的形式保存到:/tmp/ssh-%r@%h这个路径
    之后登录的时候,一旦发现是同个主机,则复用这个Socket
    故,一旦主进程强制退出(Ctrl+C),则其他SSH则被迫退出。

    可以通过ssh -v参数,看debug信息验证以上过程

    备注

    有同学说在linux上通过证书的形式,可以实现免登录,没错。
    对于静态密码,完全可以这么干;对于动态密码(口令的方式),则上述手段可以方便很多。

  • 相关阅读:
    bzoj 4008 亚瑟王 期望概率dp
    t[..., 1, tf.newaxis]
    Keras learning_phase()和learning_phase_scope()
    Keras Sequential模型和add()
    Keras克隆层
    Keras搭建一个Wide & Deep 神经网络
    1 链表的数据结构
    海康威视2017软件精英挑战赛初赛题目
    2016年倒计时两天
    可自定义片头的腾讯视频无广告可全屏调用代码
  • 原文地址:https://www.cnblogs.com/killkill/p/2513192.html
Copyright © 2011-2022 走看看