网站搜索

在 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 配置文件的有用入门指南:

  1. 如何配置自定义 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_configsshd_config 手册页。

man ssh_config
man sshd_config 

另请查看以下有关在 Linux 系统上保护 ssh 的有用指南:

  1. 保护 SSH 服务器安全的 5 个最佳实践
  2. 如何在 Linux 中断开不活动或空闲的 SSH 连接

目前为止就这样了!您有任何加快 SSH 连接速度的提示/技巧吗?我们很乐意听到其他方法来做到这一点。使用下面的评论表与我们分享。