SSH - 我如何回答“[指纹]”的“连接”提示,它有什么作用?

Mar*_* B. 44 ssh

我查看了 ssh 的手册页,但我仍然一无所知。当我使用 ssh 连接到远程主机时,它显示如下内容:

ssh user@10.11.12.13
The authenticity of host '10.11.12.13 (10.11.12.13)' can't be established.
ECDSA key fingerprint is SHA256:CwrcHjdd9349u38rj392fr9j389rj3298rj23.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Run Code Online (Sandbox Code Playgroud)

我认为:

  • 是 - 连接并在已知主机文件中写入指纹
  • 否 - 不连接(显示“主机密钥验证失败。”)

第三个选项[指纹]是什么?

use*_*686 75

此提示允许您粘贴实际指纹作为响应;ssh 本身会将其与通过网络看到的公钥进行比较。如果两者匹配,则假定答案为yes

(当然,您应该从合理可信的来源复制指纹——而不是从相同的确认消息!)

除了比手动比较更快之外,这还避免了“模糊指纹”攻击,即假主机密钥具有真实主机密钥在视觉上相似的指纹(因为人们通常只看第一个和最后几个字母而跳过其余部分)。

此功能是在 OpenSSH 8.0 中添加的。