通过 SSH 连接到 raspberry pi returns "middle man attack"

SSHing to raspberry pi returns "middle man attack"

我正在尝试通过 SSH 连接到我的 raspberry pi,它与我的计算机连接在同一路由器下。它是 运行 raspbian 精简版的最新版本。我使用以下命令在 pi 上启用了 ssh 服务:systemctl enable ssh。但是,当我尝试从我的个人计算机通过 SSH 连接到我的 raspberrypi 时,我收到以下消息:

fahd@Fahd-PC:~$ ssh pi@192.168.1.23
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:***************************************************
Please contact your system administrator.
Add correct host key in /home/fahd/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/fahd/.ssh/known_hosts:1
  remove with:
  ssh-keygen -f "/home/fahd/.ssh/known_hosts" -R "192.168.1.23"
ECDSA host key for 192.168.1.23 has changed and you have requested strict checking.
Host key verification failed.
fahd@Fahd-PC:~$ 

而且我不完全确定这是我应该担心的真实情况还是我不知道如何正确使用 SSH。

出于某种原因,您的终端存储的 Pi 密钥不同。这可能是由于多种原因造成的(例如,更新了 ssh 包并在 Pi 上重新生成了 SSH 主机密钥。或者您更改了网络上的 IP。或者您有 DHCP 和 two 不同的客户端,你交换了地址。或者...)。

所以,它会警告你。

除非你有理由不相信,否则我会听从建议:

删除: ssh-keygen -f "/home/fahd/.ssh/known_hosts" -R "192.168.1.23"

此通信通知您设备上的 RSA 密钥已更改,发生在您:

  • 在设备上重新安装 OS
  • 生成新的/删除旧的 RSA 密钥
  • 有人试图进行 MITM 攻击(现在很少见)

如何修复:

  1. 删除有关 raspberry pi 主机的已保存信息
sudo vim ~/.ssh/known_hosts
or
sudo vim /etc/ssh/known_hosts
  1. 使用 ssh-keygen
ssh-keygen -R host_ip
or
ssh-keygen -R host_ip -f path_to_known_hosts
  1. 删除known_hosts
    如果“known_hosts”文件中只有一个主机,您可以将其删除。
sudo rm .ssh/known_hosts