在 Linux 中加速 SSH 连接的 4 种方法
如果您使用 Linux 远程访问其他服务器或设备,您可能会熟悉 SSH(安全外壳)协议。 SSH 是一种网络协议,可在不安全的网络上实现安全的数据通信。然而,有时 SSH 连接可能会很慢,这可能会令人沮丧。在本文中,我们将了解在 Linux 中加速 SSH 连接的四种方法。
使用压缩
压缩是一种减少通过网络传输的数据大小的方法。它可以显着提高 SSH 连接的速度,尤其是在慢速或高延迟网络上。要启用压缩,您需要将以下行添加到 SSH 配置文件中 -
Compression yes
此行告诉 SSH 对通过网络发送的所有数据启用压缩。您还可以通过将以下行添加到 SSH 配置文件来设置压缩级别 -
CompressionLevel 9
压缩级别范围从 1 到 9,其中 1 最快,9 最慢但效率最高。您可以尝试不同的压缩级别,以找到最适合您的网络的压缩级别。
使用控制大师
ControlMaster 是 SSH 的一项功能,允许您重复使用现有的 SSH 连接来加速后续连接。当您使用 ControlMaster 时,SSH 会建立与远程主机的单个主连接,并使用该连接进行与同一主机的后续连接
要启用 ControlMaster,您需要将以下行添加到 SSH 配置文件中 -
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
第一行告诉 SSH 对所有连接使用 ControlMaster,第二行指定控制套接字的路径。如果您愿意,您可以自定义控制套接字的路径。
启用 ControlMaster 后,SSH 将重复使用主连接来进行与同一主机的后续连接,这可以显着提高 SSH 连接的速度。
使用更快的密码
密码是一种对通过网络传输的数据进行加密的方法。 SSH 支持多种密码,但某些密码比其他密码更快。通过使用更快的密码,您可以提高 SSH 连接的速度。
要指定更快的密码,您需要将以下行添加到 SSH 配置文件中 -
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
该行指定了三个快速密码 - aes128-ctr、aes192-ctr 和 aes256-ctr。您还可以从列表中删除任何慢速密码,以进一步提高 SSH 连接的速度。
使用多路复用
多路复用是 SSH 的一项功能,允许您为多个会话重复使用现有的 SSH 连接。当您使用多路复用时,SSH 会建立与远程主机的单个连接,并使用该连接进行多个会话。
要启用多路复用,您需要将以下行添加到 SSH 配置文件中 -
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlMaster auto
ControlPersist 600
第一行指定控制套接字的路径,第二行启用 ControlMaster,第三行指定最后一个会话结束后保持主连接活动的时间。在此示例中,主连接将在最后一个会话结束后保持活动状态 10 分钟(600 秒)。
启用多路复用后,您可以打开到同一主机的多个 SSH 会话,而无需每次都设置新连接,这可以显着提高 SSH 连接的速度。
这里有一些额外的技巧,您可以尝试进一步优化 Linux 中的 SSH 连接 -
使用更快的网络
影响 SSH 性能的主要因素之一是网络延迟。如果您通过缓慢或拥塞的网络访问远程服务器,您的 SSH 连接也可能会很慢。为了提高性能,您可能需要考虑优化网络或升级到更快的网络连接。
例如,如果您使用的是无线网络,您可能需要切换到有线连接。这有助于减少延迟并提高稳定性,从而提高 SSH 性能。
使用 SSH 代理转发
SSH 代理转发是一项允许您使用本地 SSH 代理向远程服务器进行身份验证的功能。这可以避免每次连接到远程服务器时都需要输入密码,从而有助于加快 SSH 连接速度。
要启用 SSH 代理转发,您需要将以下行添加到 SSH 配置文件中 -
Host *
ForwardAgent yes
完成这些更改后,您可以建立一个启用代理转发的新 SSH 会话 -
ssh -A username@hostname
这将允许您使用本地 SSH 代理对远程服务器进行身份验证,这可以加快连接速度并更轻松地管理多个服务器。
使用 SSH 连接共享
SSH 连接共享是一项允许您在多个进程之间共享单个 SSH 连接的功能。这有助于减少建立新 SSH 连接所需的时间并提高整体 SSH 性能。
要启用 SSH 连接共享,您需要将以下行添加到 SSH 配置文件中 -
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
完成这些更改后,您可以建立一个启用连接共享的新 SSH 会话 -
ssh -o ControlMaster=auto -o ControlPath=~/.ssh/sockets/%r@%h-%p username@hostname
这将允许您将现有的 SSH 连接重新用于新的 SSH 会话,从而提高性能并减少资源使用。
结论
SSH 是远程访问其他服务器或设备的强大工具,但缓慢的连接可能会令人沮丧。通过使用压缩、ControlMaster、更快的密码和多路复用,您可以显着提高 Linux 中 SSH 连接的速度。这些方法易于实施,并且可以极大地提高您的工作效率。
值得注意的是,这些方法的有效性取决于您的网络设置和 SSH 连接的具体情况。因此,最好尝试不同的设置以找到最适合您的设置。
最后,必须确保您使用最新版本的 SSH,因为较新的版本通常会带来性能改进和安全性增强。您可以通过在终端中运行以下命令来检查您的 SSH 版本 -