SSHD配置,无法建立localhost的真实性

Mik*_*sta 2 ssh

如果我试试这个

ssh jh@jh-System-Product-Name
Run Code Online (Sandbox Code Playgroud)

工作正常。

Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-40-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
Run Code Online (Sandbox Code Playgroud)

另一方面

ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:gsLR5X+7Im1MdPch7u8Jlvm0ql6PH0rDBsWnpOpizd4.
Are you sure you want to continue connecting (yes/no)? no
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

Rub*_*amp 5

简答

这意味着/或:

  • 您从未通过ssh.
  • 您的系统上已生成新的主机密钥。

更长的答案以包含评论中的信息

SSH首次使用信任 (TOFU)系统。这意味着连接系统有一个它永远信任的已知主机列表。如果建立了先前未知的远程连接,则远程系统的主机密钥将提供给连接用户以检查和接受或拒绝。如果新主机被接受,该主机密钥将被添加到始终受信任的已知主机的本地列表中。

这是 SSH 最脆弱的区域。 除非部署了DNSSEC,否则大多数域的DNS查找都是不安全的。因此,攻击者有可能将 DNS 伪装成远程系统。在这种情况下,主机密钥将不匹配,但许多用户无论如何都懒得检查主机密钥。因此,如果使用带有密码验证的 SSH,远程攻击者可以中间人 (MITM) SSH 连接并拦截您的用户名和密码,如果主机密钥不正确并且连接用户不费心去检查。

有一个名为 的缓解 DNS 记录sshfp,它代表 SSH 指纹。该sshfp记录由域所有者在 DNS 区域文件中输入。连接到域的系统检查sshfp记录。如果找到记录,则验证指纹。这可以防止连接系统连接到 TOFU 信任模型中不正确的远程主机。但是,许多(也许是大多数)DNS 提供商不支持sshfp记录类型。因此,大多数ssh连接都不受 DNS 欺骗保护。

因此,在连接到以前连接过但提供新主机密钥的远程系统时要小心。你关心的反应很好。然而,在这种情况下,很可能是没有根据的。