此消息是什么意思?这是一个潜在问题吗?该通道是否不安全?
或者这只是一条默认消息总是连接到新服务器时显示什么?
我以前使用 SSH 时经常看到此消息:我总是以正常方式输入密码作为登录名,而且我对此感觉很好,因为我没有使用私钥/公钥(这比短密码安全得多)。但这次我使用 ssh 设置了公钥以连接到 bitbucket,但我仍然收到该消息。我知道最后的密码提示是一种不同的补充安全措施,用于解密私钥。
我希望有人可以很好地解释“无法确定真实性”这一消息的含义。
The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.
RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,207.223.240.181' (RSA) to the list of
known hosts.
Enter passphrase for key '/c/Users/Steven/.ssh/id_rsa':
答案1
它告诉你你以前从未连接过这个服务器。如果你预料到了这一点,那完全正常。如果你有点担心,可以使用备用通道验证密钥的校验和/指纹。(但请注意,可以重定向你的 ssh 连接的人也可以重定向 Web 浏览器会话。)
如果您之前已通过此 ssh 安装连接到此服务器,则服务器已使用新密钥重新配置,或者有人正在伪造服务器的身份。由于中间人攻击的严重性,它会警告您这种可能性。
无论哪种方式,你都有一个安全的加密通道来某人. 没有指纹对应的私钥的人97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
无法解码你发送的内容。
您用来验证身份的密钥无关紧要... 您不会想将验证信息发送给可能窃取它的欺诈性服务器,因此您不应期望根据您是使用密码还是私钥登录而发生任何变化。 您只是还没有走那么远。
答案2
假设你与某人见面交换一些商业机密。你的顾问告诉你,你以前从未见过这个人,他可能是个冒名顶替者。此外,对于与他的下一次会面,你的顾问将不再警告你。这就是这条消息的含义。这个人是远程服务器,而你的顾问是 ssh 客户端。
我认为在与对方分享秘密之前仔细检查对方身份并不算偏执。例如,你可以打开一个有她照片的网页,将其与你面前的脸进行比较。或者检查她的身份证。
对于 bitbucket 服务器,您可以使用不同的、更受信任的计算机并获取它的脸的照片然后将其与你现在使用的计算机中得到的结果进行比较。使用:
ssh-keyscan -t rsa bitbucket.org | ssh-keygen -lv -f -
如果面孔匹配,你可以将密钥添加到文件例如~/.ssh/known_hosts
(许多 Linux 发行版中的标准位置):
ssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts
ssh 客户端不会警告你,因为它已经知道了她的脸. 它将比较面孔每次连接时。这非常重要。如果出现冒名顶替者(例如中间人攻击),ssh 客户端将拒绝连接,因为脸将会改变。
答案3
还有另一种简单的方法,只需触摸config
下面的文件/root/.ssh
并添加参数
StrictHostKeyChecking no
下次您登录服务器时,系统会添加 RSA 密钥known_hosts
,并且不会要求您输入“是”以确认真实性
答案4
此消息只是 SSH 告诉您它以前从未见过此特定主机密钥,因此它无法真正验证您是否正在连接到您认为的主机。当您说“是”时,它会将 ssh 密钥放入您的 known_hosts 文件中,然后在后续连接中将从主机获取的密钥与 known_hosts 文件中的密钥进行比较。
Stack Overflow 上有一篇相关文章介绍了如何禁用此警告,https://stackoverflow.com/questions/3663895/ssh-the-authenticity-of-host-hostname-cant-be-established。