阅读量:1
CentOS 上优化 SSH 性能的可操作清单
一 定位瓶颈
- 使用详细日志定位卡点:
ssh -vv user@host,若看到 “gssapi-with-mic” 阶段耗时,多半是 GSSAPI 导致;若连接初期停顿,常与 DNS 反向解析 相关。 - 量化握手耗时:
time ssh user@host exit,对比优化前后耗时差异。 - 检查网络与负载:
ping、traceroute、top/free/df -h,排除丢包、延迟与资源紧张。 - 若服务器需解析大量外部域名,检查 /etc/nsswitch.conf 与 /etc/resolv.conf 的解析顺序与 nameserver 可用性。
二 服务端关键优化
- 关闭反向 DNS 解析:在 /etc/ssh/sshd_config 设置
UseDNS no(即便被注释,默认也是 yes,建议显式关闭)。 - 禁用 GSSAPI 认证:设置
GSSAPIAuthentication no,必要时GSSAPICleanupCredentials no,可显著缩短登录握手时间。 - 优化保活与会话:开启
TCPKeepAlive yes,设置ClientAliveInterval 30、ClientAliveCountMax 99999,减少空闲断开与重复握手。 - 仅启用安全协议:确保
Protocol 2。 - 应用生效:
systemctl restart sshd。
三 客户端与连接复用优化
- 复用连接减少握手次数:在 ~/.ssh/config 增加
Host * ControlMaster auto ControlPath /tmp/ssh-%r@%h:%p ControlPersist 600 - 客户端也关闭 GSSAPI:在 /etc/ssh/ssh_config 设置
GSSAPIAuthentication no。 - 解析优化:将常用目标主机加入 /etc/hosts,或使用 IP 直连,规避 DNS 延迟。
- 变更端口时,客户端需同步指定
-p或在配置中声明端口。
四 安全加固与性能兼得的设置
- 优先使用密钥登录:
PubkeyAuthentication yes,验证可用后再PasswordAuthentication no,既提升安全也减少口令协商开销。 - 禁止 root 直登:
PermitRootLogin no,通过普通用户 +sudo提权。 - 限制认证尝试与并发:
MaxAuthTries 6、MaxStartups 5(或适度更高并发但配合防火墙/登录审计)。 - 更改默认端口:
Port 822(示例),并配合防火墙放行新端口;此举主要降低噪音与自动化攻击面,对单次握手性能影响有限。 - 按需关闭不必要功能:
X11Forwarding no。
五 网络与系统层面的配合
- 提升解析效率:在 /etc/nsswitch.conf 将
hosts:设为files(仅本地解析,若需外网域名解析再改为files dns),并清理 /etc/resolv.conf 中无效或慢速的 nameserver。 - 防火墙放行:使用
firewall-cmd或iptables放行 SSH 端口(默认 22 或自定义端口),避免策略导致的连接失败或超时。 - 资源与版本:确保系统负载正常、磁盘空间充足,并保持 OpenSSH 为较新版本,规避已知性能/安全缺陷。
以上就是关于“怎样用CentOS优化SSH性能”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm