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