"[指纹]"选项在SSH主机真实性检查中的目的是什么?

8

第一次使用SSH连接到 git 仓库时,会要求根据其指纹确认主机的真实性:

The authenticity of host 'github.com (192.30.255.112)' can't be established.
RSA key fingerprint is SHA256:....
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

现在我们有三个选择:“是”,“否”和“[指纹]”。我很清楚“是”和“否”的含义:

是= 我已经检查了主机的指纹,它是正确的,请连接我。

否= 主机的指纹与记录不符,请不要连接我。

但是我没有找到任何关于第三个选项的文档。在我查看的所有文档中,如MicrosoftHeroku的文档中都只有两个选项:“是”或“否”。

为什么我有第三个“[指纹]”选项?它的目的是什么?


1
我不确定,但我认为您可以在提示符处复制和粘贴指纹本身,这将要求 ssh 为您比较两个指纹。(这需要您首先获取指纹;不要只是复制主机本身报告的指纹。) - chepner
1个回答

9

每个SSH服务器都有主机SSH密钥,用于:

  1. 认证主机并随后检查您是否连接到同一台主机
  2. 建立安全连接(以安全方式交换凭据)

因此,第一次连接到任何SSH服务器时,您将获得此密钥的公共密钥和指纹,并建议将指纹存储在“known hosts”文件中。

指纹是一个新选项,只是作为“yes”的补充,因此,如果您已以其他方式收到指纹,可以手动提供指纹。 https://github.com/openssh/openssh-portable/commit/05b9a466700b44d49492edc2aa415fc2e8913dfe

似乎manpages尚未更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接