SSH如何检查公钥是否已注册到特定的授权机构



我正在努力了解SSH是否可以设置为以HTTPS的工作方式工作-有证书"授权机构"可以为公司签署具有各种有用信息(如日期、签名、公司名称等(的证书。换句话说,它是一个证书(链(,可以由客户端(通常是浏览器(检查并验证该网站所代表的公司。这对于防止中间人攻击或伪造与原始网页完全相同的网页至关重要。

我是SSH的新手,我正在努力了解是否有类似的证书检查机制——我到处找,都找不到答案。让我困扰的是,当你有一个由另一个人设置的服务器(也许你不相信这个人(,并且你想第一次ssh到这个服务器(让它成为未来连接的已知主机(时,你不能绝对确定没有中间人,因为你没有根据权威机构验证证书(这可能只是你公司的证书权威机构(?您的ssh client收到的ssh server的公钥未知,无法验证。我如何确定这真的是我要连接的服务器?

这有意义吗?或者我只是错过了什么?

提前感谢!

我理解你的困惑。

让我试着澄清一下,也许这会有所帮助。

为了建立您登录的远程主机确实是您期望的主机的信任,SSH为您提供了主机密钥指纹验证机制。

在登录之前,你如何知道主机密钥应该是什么?嗯,这似乎是一个只能在频带外解决的问题。

SSH无法知道您登录的主机是否是您认为的主机——这正是它要求您确认主机指纹是否符合您预期的原因。

因此,您需要从为您设置主机的人员或实体处获得正确的主机密钥指纹。换句话说:你需要相信这个人已经满足了以下三个前提:

  1. 正确设置主机,然后
  2. 为您提供了正确的主机密钥,以及
  3. 确保没有其他人可以访问主机的私钥

如果建立了这三个前提,您可以在将来验证您是否确实连接到了正确的主机,因为SSH能够验证远程主机是否确实拥有与主机指纹对应的私钥。

最新更新