解决 SSH 连接 Linux 系统特别慢的问题|排查与优化完整教程

解决SSH连接Linux系统特别慢的问题|排查与优化完整教程

前言

很多时候连接Linux服务器,输入密码之后要等待十几秒甚至几十秒才进入终端,网络ping延迟很低,但SSH登录过程卡顿缓慢。绝大多数是SSH服务配置、DNS反向解析、GSS认证导致,下面分享完整的排查和优化方案。

一、修改sshd配置,关闭拖慢登录的选项

编辑ssh服务配置文件

vi /etc/ssh/sshd_config

把下面几项修改为如下值,没有就直接新增:

UseDNS no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
参数说明
  • UseDNS no:关闭SSH对客户端IP的DNS反向解析,这是登录慢最常见元凶;
  • GSSAPIAuthentication no:关闭GSSAPI认证,内网公网大部分场景用不到,会造成登录长时间等待。

修改完成保存退出,重启sshd服务生效

CentOS/RHEL系统:

systemctl restart sshd

Ubuntu/Debian系统:

systemctl restart ssh
二、本地客户端侧优化(Xshell、FinalShell、Mobaxterm)

如果你是Windows客户端连接,也可以关闭客户端GSSAPI认证:

  1. 打开会话属性 → SSH → 认证
  2. 取消勾选 GSSAPI(Kerberos) 相关选项
  3. 保存会话,重新连接服务器。
三、排查/etc/hosts文件问题

部分机器主机名无法解析,也会造成登录卡顿。查看本机主机名:

hostname

将主机名写入/etc/hosts,示例,把主机名填入配置:

127.0.0.1   localhost localhost.localdomain 你的主机名
::1         localhost localhost.localdomain 你的主机名
四、其他导致SSH慢常见原因
  • 服务器CPU/内存跑满,系统负载过高,执行 top 查看负载;
  • DNS服务器不可用,服务器系统DNS解析超时;
  • ssh密钥文件权限错误,.ssh目录、authorized_keys权限不对会引发认证流程卡顿;
  • 服务器磁盘IO打满,系统响应整体变慢。
五、快速一键修改命令(直接复制执行)

一键写入配置,适合不想手动编辑文件:

sed -i 's/^#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
sed -i 's/^GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i '/^GSSAPIAuthentication/c\GSSAPIAuthentication no' /etc/ssh/sshd_config
执行完务必重启sshd,新开一个终端测试SSH是否正常,不要关闭当前会话,防止配置错误连不上服务器。
声明:修改sshd配置有风险,修改完成保留当前会话,新开窗口验证连接正常再关闭;配置错误可能导致无法SSH登录服务器,请谨慎操作。
文章广告横幅
网络违法犯罪举报平台 广告
© 版权声明
THE END
喜欢就支持一下吧
点赞169 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容