前言
很多时候连接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认证:
- 打开会话属性 → SSH → 认证
- 取消勾选 GSSAPI(Kerberos) 相关选项
- 保存会话,重新连接服务器。
三、排查/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

















![表情[baoquan]-服务器测评_云 VPS 推荐_运维技术教程与源码分享 - 环球云域数据平台 cloudidc.vip](https://cloudidc.vip/wp-content/themes/zibll/img/smilies/baoquan.gif)


暂无评论内容