解决 Linux 上的 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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值