SSH连接同局域网树莓派出现中间人攻击告警该如何处理?
SSH远程主机标识变更报错解答
报错原因
SSH为了防止中间人攻击,会将所有曾经连接过的远程主机的公钥指纹存储在本地用户目录下的.ssh/known_hosts文件中,当再次连接同一地址时,SSH会自动比对当前返回的公钥和本地存储的记录,如果二者不匹配就会触发该警告。
风险判断
你当前是在家庭局域网内连接同一路由器下的树莓派,只要你确认局域网没有不明未知设备接入,该警告几乎不会是真实的中间人攻击风险,触发原因通常属于以下几种正常情况:
- 你此前曾经用
192.168.1.23这个IP连接过局域网内的其他设备,本地存储的是其他设备的公钥记录 - 树莓派重装过系统、重新生成过SSH主机密钥,哪怕IP未变,公钥变更也会触发警告
- 路由器DHCP自动分配IP时,将之前分配给其他设备的
192.168.1.23分配给了现在的树莓派,导致公钥不匹配
解决方案
直接按照报错提示的命令删除本地存储的旧公钥记录即可:
ssh-keygen -f "/home/fahd/.ssh/known_hosts" -R "192.168.1.23"
执行完成后再次发起SSH连接:
ssh pi@192.168.1.23
此时会弹出确认新主机公钥的提示,输入yes后再输入树莓派的登录密码即可正常连接。
额外优化建议
可以进入路由器管理后台,给树莓派绑定静态IP,避免IP漂移导致后续再次出现同类报错。
内容的提问来源于stack exchange,提问作者Fahd
相关产品推荐
相关产品推荐

