每当我从我的计算机连接到新的 SSH 服务器时,我都会收到此消息:
The authenticity of host '[censored]:censored ([0.0.0.0]:censored)' can't be established.
RSA key fingerprint is SHA256:censored.
Are you sure you want to continue connecting (yes/no)?
为什么 SSH 会问我这个问题?
连接到随机 SSH 服务器是否存在风险?
或者这只是为了确保您连接的服务器没有被黑客入侵?
答案1
它之所以询问您,是因为它之前从未连接过该主机。
如果您处于安全的环境中,那么您将知道远程主机的指纹,并在第一次连接时对其进行比较 - 如果指纹与您知道的指纹相匹配,那就太好了。如果您处于不太安全的环境中,那么您可以在第一次连接时接受它。
一旦你说“是的,我信任该主机密钥,并希望它与该主机名/IP 相关联“,SSH 客户端会为你记住这一点……如果出于任何原因(重新安装/新主机密钥/新机器/中间人)密钥没有在后续连接中匹配,您将看到如下警告:
$ ssh baloo
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:Su0uy/4BcRcpmyLfxO9ndlcda52F8uct6yWNp7Sa92M.
Please contact your system administrator.
Add correct host key in /home/attie/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/attie/.ssh/known_hosts:65
remove with:
ssh-keygen -f "/home/attie/.ssh/known_hosts" -R baloo
ECDSA host key for baloo has changed and you have requested strict checking.
Host key verification failed.
在这种情况下,如果您知道远程主机确实已更改,那么您可以继续……可能验证指纹是否正确。
如果您不确定,或者知道远程主机不应该发生变化,那么它会提示您潜在的攻击。
答案2
当您收到此消息时,SSH 只是在说“我以前从未见过这台计算机,所以我不能确定它是否是它所说的那个人。你信任它吗?”此时,您可以说您信任它,并且将来您的计算机会记住并且不会再次询问您。
理想情况下,要信任它,您应该手动将提供的密钥与服务器上的密钥进行比较(就像您会通过检查您认为属于该密钥的人是否真的可以生成公钥来信任 GPG 密钥一样)。尽管实际上人们并不关心这一点(至少据我所知)。
真正的好处在于您每次连接到服务器时。如果 SSH 抱怨您已经信任的服务器不是同一个服务器,那么您就有可能成为 MiTM 攻击的受害者。
总的来说,如果您确信网络上没有中间人攻击,而且这是您第一次连接到计算机,那么您可以安全地接受密钥。(但如果您正在执行某些绝密的政府任务,那么也许可以在连接前要求系统管理员验证指纹)