我正在登录 Debian 机器,然后收到显示主机公钥的安全警报。当我将 PuTTY 报告的完整公钥与 ~/.ssh/authorized_keys 中的公钥进行比较时,我发现它们不匹配。
我是不是被 MITM 攻击了,还是我误解了什么?
答案1
我不清楚私钥 /etc/ssh/ssh_host_${type}_key 在连接中扮演什么角色。我不清楚让服务器向我发送公钥有什么帮助,因为攻击者可以检查被攻击的服务器发送的公钥,进入中间并伪造完全相同的公钥
要明确的是,服务器实际上并没有重新将你的公钥发回给你。服务器已经它自己的发送给您的完全独立的密钥 - “主机密钥”。主机密钥的公钥和私钥部分都存储在 /etc/ssh 中。
服务器没有只是发送公钥;它还会发送一个签名使用相应的私钥进行签名,客户端可以使用该私钥作为证据。(签名的数据对于每个连接都是唯一的。)攻击者可以发送相同的公钥,但无法生成签名。
这也是证书在 SSL/TLS(HTTPS 等)中的工作方式。
您自己的身份验证密钥也以相同的方式由服务器进行验证 - 即 PuTTY 不仅单独发送您的公钥,还使用您的私钥对消息进行签名,这样其他人就无法仅通过查看您的 authorized_keys 文件就以您的身份登录。