如何重用ssh连接

 rare懿然 发布于 2023-02-12 16:11

我正在创建一个小脚本来更新一些远程服务器(2+)
我正在为每个服务器进行多次连接; 有没有办法可以重用SSH连接,所以我不必一次打开太多?

3 个回答
  • 我更喜欢Puppet Labs中描述的方法https://puppetlabs.com/blog/speed-up-ssh-by-reusing-connections

    将这些行添加到~/.ssh/config并运行mkdir ~/.ssh/sockets

    Host *
        ControlMaster auto
        ControlPath ~/.ssh/sockets/%r@%h-%p
        ControlPersist 600
    

    阅读完整的博客文章,了解更多有用的信息,了解这些内容以及ssh在使用时的特性.我强烈建议您阅读博客,否则您可能会发现某些内容无法正常运行.

    2023-02-12 16:13 回答
  • 如果您打开第一个连接-M:

    ssh -M $REMOTEHOST
    

    后续连接$REMOTEHOST将"搭载"主设备建立的连接ssh.最值得注意的是,不需要进一步的身份验证.有关man ssh_config详细信息,请参阅"ControlMaster".使用-S指定的路径,共享插座; 我不确定默认值是什么,因为我使用配置文件来配置连接共享.

    在我的.ssh/config文件中,我有以下几行:

    host *
      ControlMaster auto
      ControlPath ~/.ssh/ssh_mux_%h_%p_%r
    

    这样,我就不必记得使用-M-S; ssh确定主机/端口/用户名组合是否已存在可共享连接,并在可能的情况下使用该连接.

    自2004年以来,此选项在OpenSSH中可用.

    2023-02-12 16:13 回答
  • 或者,你可以这样做:

    $ssh_conn="ssh -t -o ControlPath=~/.ssh/master-$$ -o ControlMaster=auto -o ControlPersist=60"
    
    $ssh_conn user@server
    

    ControlPath=~/.ssh/master-$$为ssh连接设置控制路径,限制连接重用到当前shell(通过 $$PID)

    ControlMaster=auto 允许使用.共享连接会话 ControlPath

    ControlPesist=60 设置由于不活动而导致连接保持打开的时间

    2023-02-12 16:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有