ssh,


1. 连接复用

Host jumper.abc.com
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster auto

如上设置可以复用连接,当已经有登录到跳板机的连接时,再ssh就会复用之前的连接,不需要输入密码了,这里主要解释下这三个配置的意义

  • Host
    Host相当于配置文件中的Section,表明下面的配置是针对哪个Host的,在这个例子中ControlPath和ControlMaster都是针对jumper.abc.com这个Host配置的,对其他Host不生效,如果想配置多个Host,可以在配置文件下面继续加Host xxx.xxxxx.xxx,下面再加配置

  • ControlPath
    指定用来复用连接的套接字的路径,或者设为none表示不复用连接,复用连接的原理是创建一个套接字,发起ssh连接时先连接到这个套接字,然后判断是不是有连接已经建立了,如果已经建立了则复用

  • ControlMaster
    用来控制是否复用连接的开关。设为yes时,ssh会在ControlPath指定的套接字上监听连接,这个ssh会话跟目标服务器建立了一个Master连接,它不仅完成用户指定的发往目标服务器的命令任务,还承担监听其他连接的任务,所以要复用连接的话,这个连接不能关。建立好Master连接后,再新建会话时,将ControlMaster设为no,这样,新的会话就会通过套接字复用Master的连接,但如果套接字不存在或者没有在监听,那么这个新的会话仍然会新建一个连接。

如果照上面这个配置来复用连接的话,那你可能会觉得很麻烦,因为你得先指定ControlMaster为yes创建一个Master连接,然后再指定ControlMaster为no去复用这个连接。好在ControlMaster还提供了一个auto选项,意思就是每次创建会话时应用自动判断是不是有可用的Master连接复用,如果不能复用的话就新建一个Master连接,这样能更方便我们使用。

2. 参考资料

https://www.freebsd.org/cgi/man.cgi?query=ssh_config&sektion=5 (man ssh_config)

https://www.ibm.com/developerworks/community/blogs/IBMzOS/entry/20150502?lang=en (通过ControlMaster对OpenSSH加速)

相关内容

    暂无相关文章