如何解决 Linux 上的 SSH 登录缓慢问题如何解决 Linux 上的 SSH 登录缓慢问题如何解决 Linux 上的 SSH 登录缓慢问题如何解决 Linux 上的 SSH 登录缓慢问题
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何解决 Linux 上的 SSH 登录缓慢问题

问题:当我尝试连接到远程 SSH 服务器时,需要很长时间(30 秒到 2 分钟)才会出现密码提示。为什么 SSH 登录启动这么慢,如何解决 SSH 登录长时间延迟的问题?

如果您必须等待很长时间才能看到 SSH 密码提示,则可能存在多种问题。要解决 SSH 登录缓慢的根本原因,您可以运行带有 -vvv 选项的 ssh 命令,该命令将向您显示 SSH 登录期间幕后发生的情况。


$ ssh -vvv user@<ssh-server>

以下是 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)
©2015-2025 艾丽卡 support@alaica.com