这次,我们将介绍一种显著加快SSH连接速度的方法。只需添加三行设置,就可以将连接时间缩短到原来的十分之一。而且,从第二次连接开始,认证过程将自动进行,无需输入密码或密钥短语。
要点
只需在.ssh/config文件的Host *部分添加以下三行即可。
Host *
ControlMaster auto
ControlPath ~/.ssh/mux-%r@%h:%p
ControlPersist 4h
详细说明
1.ControlMaster auto
通过这个设置,可以在一个SSH连接上共享多个会话。每次新建立SSH连接时都不需要重新输入认证信息,从而大大加快连接速度。具体来说:
- 只需在首次连接时进行认证
- 从第二次连接开始,利用现有连接,跳过认证过程
- 无需输入密码或密钥短语,连接几乎瞬间完成
2.ControlPath ~/.ssh/mux-%r@%h:%p
ControlPath指定共享连接的套接字文件位置。%r代表远程用户名,%h代表主机名,%p代表端口号。通过这个设置,可以为不同主机和用户分别维持独立的共享连接。
3.ControlPersist 4h
这个设置使得即使最后一个会话结束后,仍然在后台保持连接指定的时间(这里是4小时)。在此期间的重新连接,认证和连接几乎一瞬间完成。
效果
应用这些设置后,从第二次连接开始速度会显著加快。在我的环境中,第一次连接需要500毫秒,而之后的连接仅需50毫秒。
此外,省去认证的麻烦,体感速度进一步提升。考虑到输入密码或密钥短语的时间,工作效率会大幅提高。
特别适用于以下情况:
- 经常进行SSH连接的人
- 同时打开多个SSH连接的人
- 在网络不稳定的环境中使用SSH的人
- 使用复杂密码或密钥短语的人
ssh -O 命令
通过使用ssh -O命令,可以操作控制连接(ControlMaster连接)。主要选项如下:
- ssh -O check <主机名>:检查是否存在指定主机的控制连接
- ssh -O stop <主机名>:停止指定主机的控制连接
- ssh -O exit <主机名>:终止指定主机的控制连接
通过这些命令,可以手动管理长时间保持的连接。例如,为了重视安全性,可以在工作结束时使用ssh -O exit 确保连接关闭。