优化ssh加密算法可显著提升连接速度和传输效率,核心是精简kex算法(如优先curve25519-sha256)、禁用sha-1类弱算法、选用chacha20-poly1305等高效加解密组合、关闭gssapi认证,并按需启用压缩。

优化 SSH 加密算法能显著提升连接建立速度和数据传输效率,核心是减少协商耗时、降低 CPU 开销,尤其在低配设备或高延迟链路上效果明显。关键不在“换算法”,而在“精简+匹配+禁用”。
精简密钥交换算法(KEX)
密钥交换发生在认证前,算法列表越长、越老旧,协商越慢。默认配置常含大量已淘汰算法(如 diffie-hellman-group1-sha1),服务端需逐个比对兼容性。
- 编辑 /etc/ssh/sshd_config,明确指定高效现代 KEX 算法:
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256 - 优先选 curve25519-sha256:计算快、安全性高、CPU 占用低;
- 彻底移除所有含 sha1、group1、group14 的条目,它们既弱又慢;
- 修改后执行
sudo systemctl restart sshd生效。
选用轻量高效的加密与认证组合
加解密开销直接影响每字节吞吐,尤其在无 AES-NI 指令集的 CPU(如部分 ARM 或老 Intel)上差异突出。
- 推荐加密算法(Ciphers):
Ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com - 推荐消息认证码(MACs):
Macs hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com - ChaCha20-Poly1305 在无硬件加速 CPU 上远快于 AES;
- GCM 和 ETM 是 AEAD 模式,一次运算完成加密+校验,比传统 CBC+HMAC 更高效;
- 禁用
3des-cbc、arcfour、blowfish-cbc等已弃用或性能差的算法。
关闭非必要认证机制
GSSAPI 认证在普通 Linux 服务器上基本不用,但默认开启,会触发额外票据查询,单次连接多耗 1–3 秒。
- 在 /etc/ssh/sshd_config 中添加:
GSSAPIAuthentication noGSSAPICleanupCredentials no - 客户端临时禁用:
ssh -o GSSAPIAuthentication=no user@host; - 确认未接入 Kerberos 域环境,即可安全关闭。
按需启用压缩(仅限低带宽/高延迟场景)
压缩不加速密钥交换,但能减少后续命令输出、日志回传等文本载荷体积,缓解感知卡顿。
- 服务端启用需谨慎:
Compression yes(增加 CPU 负担,对已压缩内容无效); - 更推荐客户端按需启用:
ssh -C user@host; - 或在 ~/.ssh/config 中为特定主机设置:
Host example.com<br> Compression yes
。











