我有两种方式访问我的远程主机 ssh 服务器:
使用其本地 IP 地址
使用其公共 IP 地址
昨天,我在远程主机上重新安装了 SSH 服务器,并更新了已知主机文件本地 IP 地址。我现在已退出本地网络并尝试使用其公共 IP 地址我发现重新安装 SSH 服务后忘记更新已知主机文件。这导致出现以下常见错误。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
MD5:FINGERPRINT.
Please contact your system administrator.
Add correct host key in /Users/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/user/.ssh/known_hosts:25
ECDSA host key for [PUBLIC IP]:PORT has changed and you have requested strict checking.
Host key verification failed.
我 99% 确定这是因为我更改了 SSH 服务器,但是,如果我想仔细检查并验证,我该怎么做?
我的问题是
如何验证远程主机的新指纹与保存的指纹当地的服务器的 IP 地址?
我做了什么
我运行了以下命令:
ssh-keygen -lv -f ~/.ssh/known_hosts
并找到了为当地的我的服务器的 IP 地址。我将其与远程主机发送给我的 SHA256 指纹进行了比较,它们看起来完全相同。
我怎么能 100% 确定呢?我做得对吗?
答案1
是的,你做对了。如果你想让 SSH 为你验证,请编辑你的~/.ssh/known_hosts
文件。找到列出服务器本地 IP 地址和指纹的行,复制该指纹,并使用它来替换服务器公共 IP 地址行上的旧指纹。