在 Linux 中加速 SSH 连接的 4 种方法
SSH 是远程管理 Linux 服务器最流行、最安全的方法。远程服务器管理的挑战之一是连接速度,尤其是在远程和本地计算机之间创建会话时。
这个过程有几个瓶颈,一个场景是当你第一次连接到远程服务器时;建立会话通常需要几秒钟的时间。但是,当您尝试连续启动多个连接时,这会导致开销(执行操作所需的过多或间接计算时间、内存、带宽或其他相关资源的组合)。
在本文中,我们将分享有关如何在 Linux 中加速远程 SSH 连接的四个有用技巧。
1. 强制通过 IPV4 进行 SSH 连接
OpenSSH 支持 IPv4/IP6,但有时 IPv6 连接往往较慢。因此,您可以考虑使用以下语法强制仅通过 IPv4 建立 ssh 连接:
ssh -4 [email
或者,在 ssh 配置文件 /etc/ssh/ssh_config(全局配置)或 ~ 中使用 AddressFamily(指定连接时使用的地址族)指令/.ssh/config(用户特定文件)。
接受的值为“any”、“inet”(仅适用于 IPv4)或“inet6”。
vi ~.ssh/config
以下是有关配置用户特定 ssh 配置文件的有用入门指南:
- 如何配置自定义 SSH 连接以简化远程访问
此外,在远程计算机上,您还可以使用 /etc/ssh/sshd_config 文件中的上述指令来指示 sshd 守护进程考虑通过 IPv4 进行连接。
2. 在远程计算机上禁用 DNS 查找
默认情况下,sshd 守护程序查找远程主机名,并检查远程 IP 地址的已解析主机名是否映射回完全相同的 IP 地址。这可能会导致连接建立或会话创建延迟。
UseDNS 指令控制上述功能;要禁用它,请在 /etc/ssh/sshd_config 文件中搜索并取消注释。如果未设置,请添加值 no
。
UseDNS no
3. 重用SSH连接
ssh 客户端程序用于建立与接受远程连接的 sshd 守护进程的连接。您可以在创建新的 ssh 会话时重用已建立的连接,这可以显着加快后续会话的速度。
您可以在 ~/.ssh/config 文件中启用此功能。
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
上述配置(Host *)将为您使用这些指令连接到的所有远程服务器启用连接重用:
- ControlMaster – 支持通过单个网络连接共享多个会话。
- ControlPath – 定义用于连接共享的控制套接字的路径。
- ControlPersist – 如果与 ControlMaster 一起使用,则告诉 ssh 在初始客户端连接关闭后在后台保持主连接打开(等待将来的客户端连接)。
您可以为到特定远程服务器的连接启用此功能,例如:
Host server1
HostName www.example.com
IdentityFile ~/.ssh/webserver.pem
User username_here
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
这样,您只需承受第一个连接的连接开销,所有后续连接都会更快。
4.使用特定的SSH验证方法
加快 ssh 连接速度的另一种方法是对所有 ssh 连接使用给定的身份验证方法,这里我们建议通过 5 个简单步骤使用 ssh keygen 配置 ssh 无密码登录。
完成后,使用上面的 ssh_config 文件(全局或特定于用户)中的 PreferredAuthentications 指令。该指令定义客户端应尝试身份验证方法的顺序(您可以指定命令分隔列表以使用多种方法)。
PreferredAuthentications=publickey
(可选)从命令行使用以下语法。
ssh -o "PreferredAuthentications=publickey" [email
如果您更喜欢被认为不安全的密码身份验证,请使用此方法。
ssh -o "PreferredAuthentications=password" [email
最后,完成上述所有更改后,您需要重新启动 sshd 守护进程。
systemctl restart sshd #Systemd
service sshd restart #SysVInit
有关此处使用的指令的更多信息,请参阅 ssh_config 和 sshd_config 手册页。
man ssh_config
man sshd_config
另请查看以下有关在 Linux 系统上保护 ssh 的有用指南:
- 保护 SSH 服务器安全的 5 个最佳实践
- 如何在 Linux 中断开不活动或空闲的 SSH 连接
目前为止就这样了!您有任何加快 SSH 连接速度的提示/技巧吗?我们很乐意听到其他方法来做到这一点。使用下面的评论表与我们分享。