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

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

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

ssh [email protected]
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])?

我认为:

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

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

答案1

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

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

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

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

答案2

扩展@user1686的答案,至少对于我的ssh客户端(OpenSSH_9.0p1,Mac上的LibreSSL 3.3.6)输入不正确密钥令人困惑。它不会显示“密钥不匹配,退出!”之类的消息,而是只会回复“请输入‘是’、‘否’或指纹:”,让您怀疑格式是否正确……

{HASH_TYPE}:{HASH_FINGERPRINT}当输入为“ ”时,接受正确的指纹,例如SHA256:6IwH4s6MTcIsiC6vol79ODXqdFH1E3/qp/fQVj4jZ5q,AND 正确的密钥类型,在连接过程中先前协商。

如果主机有多种类型,请确保检查正确的密钥!

相关内容