发生这种情况的原因有很多:
- 托管位置。 Gitlab 可以在其他地方下载和托管。如果您的大学托管自己的 gitlab 版本,则发布在 gitlab 页面上的主机密钥没有任何意义。在那种情况下,你永远不会看到 gitlab 的主机密钥——你会看到你的大学服务器的主机密钥,差异将毫无意义。您将不得不询问大学他们的主机密钥是什么,并且您不太可能从他们那里得到答案。
- 过时的信息Gitlab 的主机密钥可能已更改,他们只是忘记相应地更新该帮助页面。
- MitM有人可能正在对您的计算机执行 MitM 攻击,并将流量从 gitlab 重定向到他们自己的恶意服务器。
我认为选项 #1 值得一提,因为您的大学的 gitlab 页面是由 gitlab 还是您的大学托管还不太清楚。听起来它是 gitlab 托管的,但不一定(显然 repo URL 应该清楚地说明这一点)。
中间人的可能性
在所有这三个选项中,#3 是最不可能的。在这种情况下,成功的中间人攻击可能既困难又几乎没有真正的好处(对攻击者而言),以至于在正常情况下我什至不会考虑它。因此,除非您尝试连接到远程 gitlab 存储库以便传输状态机密,否则您可能只是在处理选项 #1 或 #2。
您还可以通过检查您正在连接的服务器的 IP 地址并尝试确定它是否属于 gitlab 来尝试验证 MitM 的可能性。Gitlab 确实有一个(可能也是旧的)IP 地址列表:
https://gitlab.com/gitlab-com/infrastructure/issues/434
由于可能存在过期文档,因此即使对于有效的 gitlab 连接也不能保证匹配。也不能保证,因为运行成功的 MitM 的人可能(取决于细节)也可以欺骗 IP 地址。
最可能的情况
无论如何,MitM(IMO)不太可能,因此我会做你的事。如果有问题,您应该能够尽快发现。假设您将连接到 gitlab 服务器,找到您希望找到的文件,复制一些您自己的东西,然后将能够与您合作的任何人验证他们收到了您的工作副本。如果是这样,绝对没有什么可担心的。
一般来说,我的经验表明,很少有组织会为验证而发布主机密钥。主机密钥当然可用于验证您从未连接到的服务器,但实际上我认为这并不常见。我怀疑这主要是因为我在上面简要提到的原因:我不认为这是一个常见的攻击媒介,如果你连接到正确的服务器,你通常可以很容易地发现,因为几乎总是有更多的参与方来验证你的结果。因此,我最常使用主机密钥验证来检测服务器何时发生变化,而我很少(如果有的话)在第一次连接时使用它来验证服务器。