我的问题是

我的问题是

我有两种方式访问​​我的远程主机 ssh 服务器:

  1. 使用其本地 IP 地址

  2. 使用其公共 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 地址?

我做了什么

  1. 我运行了以下命令:ssh-keygen -lv -f ~/.ssh/known_hosts并找到了为当地的我的服务器的 IP 地址。

  2. 我将其与远程主机发送给我的 SHA256 指纹进行了比较,它们看起来完全相同。

我怎么能 100% 确定呢?我做得对吗?

答案1

是的,你做对了。如果你想让 SSH 为你验证,请编辑你的~/.ssh/known_hosts文件。找到列出服务器本地 IP 地址和指纹的行,复制该指纹,并使用它来替换服务器公共 IP 地址行上的旧指纹。

相关内容