如果我只是连接到一个 SSH 服务器,获取它的密钥指纹,然后立即断开连接,那么 SSH 协议是否确保服务器也拥有私钥以便深入握手?
也就是说,这整个连接会不会被冒充服务器的人欺骗,但没有拥有服务器的私钥?
如果我只是连接到一个 SSH 服务器,获取它的密钥指纹,然后立即断开连接,那么 SSH 协议是否确保服务器也拥有私钥以便深入握手?
也就是说,这整个连接会不会被冒充服务器的人欺骗,但没有拥有服务器的私钥?
客户端和服务器进行 Diffie-Hellman 密钥交换(生成临时密钥)。其中一个产品是会话密钥和该会话密钥的散列。ssh 服务器使用其(“长期”)主机密钥的私有部分对会话密钥进行签名。客户端使用公钥对其进行验证。这就是避免 MITM 的方式。请记住,无法使用 DH 强制指定特定值。MITM 需要用它自己的 DH 协议欺骗客户端,并用它自己的 DH 协议欺骗服务器。如果不控制私钥,那是不可能发生的。请记住,这是独立于客户端身份验证的服务器身份验证。