• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux下SSH Session复制功能实现方法

    特别感谢阿干同学的邮件分享。

    详细方法


    复制代码
    代码如下:

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

    至此只要第一次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上通过证书的形式,可以实现免登录,没错。
    对于静态密码,完全可以这么干;对于动态密码(口令的方式),则上述手段可以方便很多。

    上一篇:Linux系统中的gdb程序调试工具的命令知识介绍
    下一篇:linux下通过使用taskset命令来限制进程的CPU
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux下SSH Session复制功能实现方法 Linux,下,SSH,Session,复制,功能,