OpenSSH系列(四)-连接复用与保持
我在很久之前, 就在博客中介绍了
sharing connections
, 但是访问量惨淡, 可能当时只是泛泛的谈了一下, 没有引起读者的注意. 这次, 我专门开一期说明sharing connections
的使用
OpenSSH连接复用
ssh连接还能复用?
讲道理, 当你与远程主机建立了连接后, 理论上是可以复用的, 需要满足两个条件.
- 首先, 你的确连接上了远程主机.
- 其次, 当前进程的连接, 可以由其他进程访问.
那么你就可以复用ssh连接了, 更多的资料请大家有时间可以参考speed-up-ssh-by-reusing-connections
配置文件的书写
OpenSSH已经自带了这个功能, 你所需要的就是在配置文件中加入Controlpath
.
1 | Host ali |
在第一次连接后, 会在~/.ssh
目录下生成如下文件, 这是一个UNIX的socket文件, 其他
的进程可以通过访问这个文件与远程主机通信.
1 | ~ ❤ ls ~/.ssh |
OpenSSH连接保持
其实很容易理解, 所有的复用都是基于ssh-root@1.2.3.4:22.sock
文件的存在, 所以,
如果你想让连接保持住, 至少要有一个连接始终连着远端.
上面的ControlPersist
参数是连接保持的一种方式, 保证在所有ssh会话都退出后,
仍然保留600s这么久的连接.
或许你也可以考虑这么一种情况, 当你经常需要与远程传递文件, 或是挂载文件夹到
本地, 那么你可以从一开始就使用sshfs
, 它也会建立起连接提供其他ssh
进程使用,
这样你可以不必费心去多开一个终端来维持会话.