什么是中间人攻击? ssh 连接出现 Host key verification failed 解决方法

文章目录

  • 前言
  • `known_hosts` 文件是什么
    • 文件路径
    • 示例
  • 连接出现 `Host key verification failed`
    • `ssh-keygen -R [hostname or ip address]`
    • 删除整个 `known_hosts` 文件
  • 其它
  • 聊聊中间人攻击
    • `ssh` 如何保证安全?
    • 加密流程
    • 漏洞在哪里
    • 如何避免中间人攻击
  • 个人简介

前言

  • 最近服务器到期,将自己的服务迁移到了一台更优惠的服务器,使用 ssh 连接出现 Host key verification failed,下面来看看如何解决这个问题以及聊聊问题中涉及的中间人攻击。

known_hosts 文件是什么

  • known_hosts 文件是SSH客户端用来存储已知主机的公钥信息的文件。每次您连接到一个SSH服务器时,该服务器的公钥将被存储在这个文件中。当您以后再次连接到相同的服务器时,SSH客户端将检查 known_hosts 文件以确保服务器的公钥没有被篡改,以防止中间人攻击。

文件路径

  • known_hosts 文件通常位于用户的家目录下的 .ssh 文件夹中。

示例

  • hostname_or_ip algorithm public_key
hostname_or_ip 是主机的域名或IP地址
algorithm 是使用的加密算法
public_key 服务端公钥example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC98vOeovBJsWaw....当连接到新主机时,SSH客户端会询问您是否接受新的主机密钥。此时新主机将被添加到known_hosts文件中。

连接出现 Host key verification failed

  • 当连接出现 Host key verification failed 时,说明我们的连接信息出现了变更,无法和 known_hosts 文件中的数据进行匹配 ,我们有以下两种方式进行修正,前提是你知道你的连接操作是安全的。

ssh-keygen -R [hostname or ip address]

  • 命令会从 known_hosts 文件中删除指定主机的记录。下次连接时会重新生成记录。

删除整个 known_hosts 文件

  • rm -rf known_hosts,操作会删除所有已连接过的主机记录,下次连接需要重新添加。(一般不推荐)

其它

  • 基于 ssh 的其它传输方式出现上述问题解决方式和上文一致,比如 sftp 等。

聊聊中间人攻击

ssh 如何保证安全?

  • 我们知道 ssh 之所以能保证安全是使用公钥加密,不会将密码明文传输。

加密流程

  • 当用户登录远程服务器时,服务端收到用户登录请求会将公钥发给用户
  • 用户收到公钥后将登录密码使用公钥加密,发送给服务端
  • 服务端收到后使用私钥进行解密,若密码正确则登录成功

漏洞在哪里

  • 上述的过程看似很美好,但是服务端的公钥并没有类似 HTTPS 的 CA 中心,也就是说当你收到公钥时,公钥是否可信需要你自己进行判断。
  • 比如此时你登录的服务是是一台伪造的服务器,发给你了一个假的公钥,那么你的账号密码就会泄露。

如何避免中间人攻击

  • 1、将公钥指纹公布在服务器展示栏,让用户进行核对(这时候即使发生中间人攻击,但使用的是正确的公钥,伪造的服务器也无法解密拿到密码)
  • 2、上述的 known_hosts 方案其实也是为了避免中间人攻击,第一次核对连接成功后将可信服务端加入 known_hosts 列表,后续连接都会进行校验服务端是否改变,如果改变则需要重新信任。

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646273.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可pin to pin替代TI DRV8872的GLOBALCHIP直流电机驱动芯片GC8872,低成本、宽电压,内置电荷泵,短地短电源保护,限流

在现如今电机驱动芯片处于持续涨价的状态下,并且供货期货期长,偶尔缺货的状态下。为了降低设计成本,第一时间设计出优秀的产品占据市场高位。我这边推荐使用浙江GLOBALCHIP国产电机驱动芯片进行替换设计。供货稳定、价格低廉。GC8872是GLOBAL…

使用uniApp+vue3+Vite4+pinia+sass技术栈构建微信小程序

使用uniApp的cli模式安装,可以使用vscode开发。不用再单独去下载HBuilderX. 1.基础安装 vue3tsuniapp 方法一: npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project方法二:可以去uni-preset-vue的vite分支下选择vite-ts直接下载zi…

win7虚拟机安装VMware Tools失败,主机远程虚拟机解决

情况描述:安装完win732位虚拟机后,VMWare Tools安装失败,这时传文件就成了问题;所以才有了此文档,需要通过主机直接远程到虚拟机进行文件传输,网上的说明不全,导致摸索了一番才解决此问题; 首先,下载win732补丁; 下载地址:Microsoft Update Catalog首先,虚拟机需要…

【数据结构】 链队列的基本操作 (C语言版)

目录 一、链队列 1、链栈的定义: 2、链栈的优缺点: 二、链队列的基本操作算法(C语言) 1、宏定义 2、创建结构体 3、链栈的初始化 4、链队列的入队 5、链队列的出队 6、取链队列的对头元素 7、链队列的销毁 8、链…

Windows Defender存在威胁执行操作无反应且一直存在红叉(已解决)

文章目录 前言问题如图一、原因二、解决办法(亲试有效)总结 前言 Windows安全中心(Windows Defender)执行快速扫描/完全扫描后一直存在威胁,执行隔离或者删除操作后下次扫描还会扫出该威胁,但看威胁文件位置…

一些es的基本操作

目录 给索引增加字段:给索引删除字段[^1]:创建索引:插入document删除document(应该是按ID) : 给索引增加字段: 用postMan: 给名为population_portrait_hash_seven的索引增加了一个text类型的字段。 用chrome插件Elasticvue 的Re…

架构管理敏捷常用工具

产品部署:Jenkins/云效流水线 代码库:Git 产品管理:Maven 任务进度管理:Jira/云效 API管理:SmartdocTorna-接口规范和接口发布 代码review:sornor做代码review 生产事故和BUG管理:阐道/云效-bug…

CentOS最优雅的方式安装mysql8

本来想偷个小懒使用yum/dnf安装一下mysq8,但是发现会出现各种问题,系统是CentOS8的. 于是还是使用最原始但是也是比较简单的方法来进行安装: 首先进入到https://dev.mysql.com/downloads/mysql/ 选择系统是Linux-Generic, 然后系统版本x86 64bit, 选择第一个TAR Archive的文件…

vue.config.js的配置

vue.config.js的配置 const path require(path) const CompressionPlugin require("compression-webpack-plugin") const MomentLocalesPlugin require(moment-locales-webpack-plugin) const ProgressBarPlugin require(progress-bar-webpack-plugin) const ch…

Vue3+Vite使用Puppeteer进行SEO优化(SSR+Meta)

1. 背景 【笑小枫】https://www.xiaoxiaofeng.com上线啦 资源持续整合中,程序员必备网站,快点前往围观吧~ 我的个人博客【笑小枫】又一次版本大升级,虽然知道没有多少访问量,但我还是整天没事瞎折腾。因为一些功能在Halo上不太好实…

Element-UI中的el-upload插件上传文件action和headers参数

官网给的例子action都是绝对地址,我现在需要上传到自己后台的地址,只有一个路由地址/task/upload 根据 config/index.js配置,那么action要写成/api/task/upload,另外也可以传入函数来返回地址:action"uploadUrl()"。 …

初级通信工程师-现代通信网(二)

11、DWDM 光网络 ● 波分复用 (WDM) 系统的基础是将携带不同信息的多个光载波复合到一根光纤中 进行传输,且互不干扰。 ● WDM 系统由5部分组成:光发射机、光中继放大、光接收机、光监控信道和网 络管理系统。其中:光发射机是 DWDM 系统的核…

什么是线程死锁

死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资 源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推 进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相…

喜讯!聚铭网络荣获“2023年网络安全十大优秀案例”称号

近日,由等级保护测评主办的2023年网络安全优秀评选活动结果正式公布。聚铭网络凭借其卓越的技术实力和优秀的项目实施能力,成功荣获“2023年网络安全十大优秀案例”称号。 为了挖掘网络安全行业优秀企业、案例与产品,充分发挥优秀网安企业各…

Sulfo Cy2 Biotin,水溶性 Cy2 生物素,能够与各种氨基基团特异性结合

您好,欢迎来到新研之家 文章关键词:Sulfo Cyanine2 Biotin,Sulfo Cy2 Biotin,水溶性 Cy2 生物素,Sulfo-Cy2-Biotin,水溶性-Cy2-生物素 一、基本信息 产品简介:Sulfo Cyanine2 Biotin, also k…

开源运维平台Spug本地docker部署结合内网穿透实现远程访问

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件…

OceanBase创建租户

租户是集群之上的递进概念,OceanBase 数据库采用了多租户架构。 集群偏部署层面的物理概念,是 Zone 和节点的集合,租户则偏向于资源层面的逻辑概念,是在物理节点上划分的资源单元,可以指定其资源规格,包括…

from sklearn.preprocessing import LabelEncoder的详细用法

sklearn.preprocessing 0. 基本解释1. 用法说明2. python例子说明 0. 基本解释 LabelEncoder 是 sklearn.preprocessing 模块中的一个工具,用于将分类特征的标签转换为整数。这在许多机器学习算法中是必要的,因为它们通常不能处理类别数据。 1. 用法说…

存储过程为什么使用DELIMITER $$,存储过程的详细运用解释

这是正确的存储过程写法,可以成功执行,相比较上图的报错,增加了DELIMITER,简单解释下这个命令的用途,在MySQL中每行命令都是用“;”结尾,回车后自动执行,在存储过程中“;…

五款焊在电脑上的效率软件

在当今快节奏的商业环境中,提高工作效率成为了每个人都渴望实现的目标。尤其是在面对繁忙的工作日程、庞杂的任务清单和团队合作的压力时,我们需要一些可靠的工具来帮助我们更好地管理时间、组织工作和提高生产力。幸运的是,现在有许多高效的…