5月30日 20:53

SSH 密钥交换算法是如何生成会话密钥的?

SSH 密钥交换负责让客户端和服务器在不可信网络上协商出同一个会话密钥,重点不是传输密钥,而是双方各自算出相同结果。现代 SSH 通常优先 curve25519-sha256,它速度快、实现成熟,并具备前向保密。传统 diffie-hellman-group1-sha1group14-sha1 不建议继续启用。

追问

密钥交换和公钥认证有什么区别?

密钥交换是建立加密信道,发生在登录认证之前。公钥认证是证明“你是谁”,不负责生成会话密钥。

Curve25519 为什么常被推荐?

它计算快、密钥短,实现上不容易踩参数选择坑。新版 OpenSSH 兼容性也足够好。

禁用 SHA-1 会影响老客户端吗?

会。老系统可能只支持 group14-sha1,若必须兼容,建议给遗留入口单独开策略。

前向保密解决什么问题?

它防的是长期私钥后来泄露,也不能直接解过去抓到的流量;但不解决当前服务器被入侵的问题。

写段配置

bash
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512 ssh -Q kex ssh -vv user@host
标签:SSH