SSHD 配置,无法确定 localhost 的真实性

SSHD 配置,无法确定 localhost 的真实性

如果我尝试这个

ssh jh@jh-System-Product-Name

工作正常。

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

另一方面

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

这是什么意思?

答案1

简答

这意味着要么/要么:

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

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

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

这是 SSH 最容易受到攻击的地方。 域名系统大多数域的查找都是不安全的,除非DNSSEC已部署。因此,攻击者有可能欺骗 DNS,使其看起来像远程系统。在这种情况下,主机密钥将不匹配,但许多用户无论如何也懒得检查主机密钥。因此,如果使用带有密码身份验证的 SSH,如果主机密钥不正确且连接用户懒得检查,则远程攻击者可以通过中间人 (MITM) 方式建立 SSH 连接并拦截您的用户名和密码。

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

因此,在连接到您之前连接过但显示新主机密钥的远程系统时,请务必小心。您的担忧回应是好的。但是,在这种情况下,很可能是没有根据的。

相关内容