known_hosts有什么用?

一、问题描述#

当我连接我的服务器的时候,返回信息如下

二、问题分析#

返回的信息是什么意思?

Copy
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. 也有可能host key刚刚改变了。 The fingerprint for the ECDSA key sent by the remote host is SHA256:XXXXX 远程主机发送过来的ECDSA key 指纹是xxxxx Please contact your system administrator. Add correct host key in /Users/fangzhijie/.ssh/known_hosts to get rid of this message. 添加正确的host key到这个文件中来避免这条信息。 Offending ECDSA key in /Users/fangzhijie/.ssh/known_hosts:8 ECDSA host key for bei1 has changed and you have requested strict checking. Host key verification failed.

这里的原因是,我把原先的腾讯云服务器重装系统,是属于host key改变的情况。所以根据提示,将正确的host key添加到指定的文件中。

三、问题解决#

于是找到known_hosts这个文件,将远程主机发来的指纹(下面被红笔覆盖的),

替换到bei1对应指纹。重新连接,发现问题解决。

四、问题再分析#

known_hosts这个文件究竟有什么用?里面放的是什么内容?

ssh会把你每个你访问过计算机的公钥(public key)都记录在known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

从上面的图中可以看出,known_hosts中的格式是

Copy
Ip或域名 主机名 host-key

还是比较容易理解的,使用known_hosts的作用是防止DNS攻击

posted @   清泉白石  阅读(10685)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2016-07-22 算法学习 —— 数学
2016-07-22 Ubuntu使用(二)——eclipse配置与问题
点击右上角即可分享
微信分享提示
CONTENTS