Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 虚拟化

  • Git

  • 可视化

  • Linux

    • Linux 系统中常见目录符号
    • nohub启动jar并保存日志到文件
    • Linux添加SSH公钥
    • ssh命令常用场景详解
    • lvm是什么,和文件系统什么关系,windows下有吗
    • linux查询某个文件夹大小
    • linux删除某个文件夹
    • linux根目录下的文件夹解析
    • linux的文件权限解析
    • dev-null是什么
    • 2&1是什么意思
    • .ssh下有哪些文件,分别有什么作用
    • known_hosts具体举例说明
    • 非对称加密原理和真实数据举例
    • 查询linux端口是否占用
    • 若 SELinux 处于 Enforcing 模式,需在挂载路径后添加 Z是什么意思
    • linux查看每个进程内存大小
    • 分辨文件的种类
  • 远程串流等

  • SWF

  • 网络

  • 网站收藏
  • 技术
  • Linux
plantre
2025-05-13

known_hosts具体举例说明

known_hosts 文件的具体示例与功能解析
known_hosts 文件是 SSH 协议中用于验证远程主机身份的核心文件,以下通过具体场景和示例说明其作用及操作方式:


1. 文件结构与条目示例
known_hosts 文件中的每一条目记录一个远程主机的公钥信息,格式为:

[主机名/IP地址] [公钥算法类型] [公钥字符串]
1

示例(来自实际场景):

example.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9...(省略长字符串)
172.16.10.6 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTI...(省略长字符串)
1
2

说明:
• 主机名/IP地址:标识远程主机的访问入口(如 example.com 或 172.16.10.6)。

• 公钥算法类型:如 ssh-rsa(RSA 算法)、ecdsa-sha2-nistp256(椭圆曲线算法)。

• 公钥字符串:远程主机的公钥指纹,用于身份校验(长度通常超过 100 字符)。


2. 首次连接时的自动生成示例
当用户首次通过 SSH 连接到一个新主机时,系统会提示确认并自动生成条目:

$ ssh user@example.com
The authenticity of host 'example.com (93.184.216.34)' can't be established.
ECDSA key fingerprint is SHA256:...(指纹信息)
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
1
2
3
4

结果:
• 用户输入 yes 后,远程主机的公钥会自动写入 ~/.ssh/known_hosts 文件。

• 后续连接时,SSH 客户端会直接对比公钥,不再提示确认。


3. 公钥变更的冲突处理示例
若远程主机的公钥发生变化(如服务器重装系统),再次连接时会触发安全警告:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Possible DNS Spoofing or Host Key Change Detected!
Offending key in ~/.ssh/known_hosts:1
1
2
3
4

解决方法:

  1. 删除旧条目:
    • 命令行方式:ssh-keygen -R example.com(自动删除相关条目)。

    • 手动编辑:用文本编辑器打开 known_hosts,删除对应行。

  2. 重新连接:再次执行 ssh user@example.com,接受新公钥并更新文件。


4. 手动管理条目的场景示例
在自动化脚本或批量部署中,可能需要手动添加公钥以避免交互式提示:

# 使用 ssh-keyscan 扫描远程主机公钥并追加到文件
ssh-keyscan -H example.com >> ~/.ssh/known_hosts
1
2

结果:
• 文件末尾新增条目,格式与自动生成的条目一致。

• 适用于需要预先配置信任主机的场景(如 Ansible 批量管理)。


5. 跨系统路径示例
• Linux/macOS:~/.ssh/known_hosts

• Windows:%USERPROFILE%\.ssh\known_hosts


总结
known_hosts 文件通过存储远程主机的公钥实现身份验证,是 SSH 安全机制的重要组成部分。通过具体示例可见:

  1. 首次连接自动记录:用户确认后生成条目。
  2. 公钥变更告警:强制用户核实变更的合法性。
  3. 灵活管理方式:支持命令行工具(如 ssh-keygen)和手动编辑。
    理解其运作逻辑,可有效提升 SSH 连接的安全性和运维效率。
编辑 (opens new window)
上次更新: 2025/06/10, 09:18:05
.ssh下有哪些文件,分别有什么作用
非对称加密原理和真实数据举例

← .ssh下有哪些文件,分别有什么作用 非对称加密原理和真实数据举例→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式