【Linux】SSH连接远程主机等待时间很长

以下是 SSH 登录延迟问题的可能解决方案。

禁用 GSSAPI 身份验证
一种可能的罪魁祸首(如上面的 SSH 客户端日志所示)是 GSSAPI 身份验证。在 SSH 登录过程中,SSH 客户端会经历一系列身份验证步骤,其中之一是 GSSAPI 身份验证,其中 SSH 服务器联系 GSSAPI 服务器以验证客户端身份验证。在 CentOS 等 Linux 发行版上,默认启用 GSSAPI 身份验证,GSS 失败可能会导致 SSH 会话启动出现较长的延迟。

要在 SSH 服务器上禁用 GSSAPI 身份验证,请在 /etc/ssh/sshd_config 中查找 GSSAPIAuthentication,然后对其进行编辑或添加如下行。

$ sudo vi /etc/ssh/sshd_config
GSSAPIAuthentication no
然后重新启动 SSH 服务器:

$ sudo systemctl restart ssh (Debian, Ubuntu)
$ sudo /etc/init.d/ssh restart (old Debian, Ubuntu)
$ sudo systemctl restart sshd (Fedora, CentOS or RHEL)
$ sudo service sshd restart (old CentOS or RHEL)
禁用反向 DNS 查找
SSH 登录缓慢的另一种可能是反向 DNS 查找。在 Ubuntu 等 Linux 发行版上,当 SSH 服务器收到客户端的登录请求时,出于安全原因,服务器会对客户端的 IP 地址执行反向 DNS 查找。如果反向 DNS 查找失败,查找超时将增加 SSH 登录延迟。

要在 SSH 服务器上禁用反向 DNS 查找,请按如下方式编辑 SSH 服务器配置。

$ sudo vi /etc/ssh/sshd_config

add this line

UseDNS no
然后重新启动 SSH 服务器:

$ sudo systemctl restart ssh (Debian, Ubuntu)
$ sudo /etc/init.d/ssh restart (old Debian, Ubuntu)
$ sudo systemctl restart sshd (Fedora, CentOS or RHEL)
$ sudo service sshd restart (old CentOS or RHEL)

posted @ 2024-09-10 10:21  左岸丶  阅读(58)  评论(0编辑  收藏  举报