Linux命令-ssh-keyscan(从主机收集公钥)
Linux命令-ssh-keyscan从主机收集公钥 ssh-keyscan 是一个批量收集 SSH 主机公钥的工具。与交互式的 ssh 首次连接确认不同ssh-keyscan 非交互地从指定主机获取公钥非常适合自动化脚本、主机清单管理和大规模部署前的 known_hosts 预填充。快速参考基本用法选项详解常见使用场景批量操作安全管理高级用法安全注意事项ssh-keyscan是一个批量收集 SSH 主机公钥的工具。与交互式的ssh首次连接确认不同ssh-keyscan非交互地从指定主机获取公钥非常适合自动化脚本、主机清单管理和大规模部署前的known_hosts预填充。快速参考ssh-keyscan[选项][主机...]ssh-keyscan从目标的 SSH 服务端口连接并获取公钥输出可重定向到~/.ssh/known_hosts文件避免首次连接时的交互式确认提示。基本用法# 获取单台主机的公钥ssh-keyscan server.example.com# 获取并直接添加到 known_hostsssh-keyscan-Hserver.example.com~/.ssh/known_hosts# 指定非标准端口ssh-keyscan-p2222server.example.com# 获取多个主机的公钥ssh-keyscan server1 server2 server3# 从文件批量获取ssh-keyscan-fhosts.txt选项详解选项说明-H哈希主机名推荐增加安全性-p PORT指定 SSH 端口-T TIMEOUT连接超时时间秒-t TYPE指定密钥类型rsa/dsa/ecdsa/ed25519-f FILE从文件读取主机列表-4/-6强制使用 IPv4/IPv6-c请求证书而非纯密钥-v详细输出-D打印调试信息常见使用场景# 场景 1: 避免首次连接提示 # 传统方式交互式sshnew-server.example.com# The authenticity of host new-server.example.com cant be established.# Are you sure you want to continue connecting (yes/no)?# 使用 ssh-keyscan 预填充ssh-keyscan-Hnew-server.example.com~/.ssh/known_hostssshnew-server.example.com# 无提示# 场景 2: Ansible/自动化部署 # 部署前批量添加所有主机公钥ansible all --list-hosts|tail-n2|whilereadhost;dossh-keyscan-H$host~/.ssh/known_hosts2/dev/nulldone# 场景 3: 不同密钥类型收集 # 仅收集 Ed25519 密钥ssh-keyscan-ted25519 host.example.com# 收集多种类型ssh-keyscan-tecdsa,ed25519 host.example.com# 收集全部可用类型ssh-keyscan-trsa,dsa,ecdsa,ed25519 host.example.com2/dev/null批量操作# 从 IP 范围批量收集foripin192.168.1.{1..254};dossh-keyscan-T2$ip~/.ssh/known_hosts2/dev/nulldonewait# 从主机清单文件批量操作cathostlist.txtEOF 192.168.1.10 192.168.1.20 db.private.local web.prod.internal EOF# 哈希存储推荐ssh-keyscan-H-fhostlist.txt~/.ssh/known_hosts# 非哈希存储调试时使用ssh-keyscan-fhostlist.txtknown_hosts_plain.txt# 去重 known_hostssort-u~/.ssh/known_hosts-o~/.ssh/known_hosts# 并行批量收集超时 3 秒cathostlist.txt|xargs-P10-I{}ssh-keyscan-T3-H{}~/.ssh/known_hosts2keyscan_errors.log# 验证收集结果wc-l~/.ssh/known_hosts安全管理# 清除特定主机的旧记录ssh-keygen-Rcompromised-host.example.com# 清除旧记录后重新扫描ssh-keyscan-Hnew-server.example.com~/.ssh/known_hosts# 验证 known_hosts 中的记录ssh-keygen-H-Fserver.example.com# 审计 known_hosts 文件echo known_hosts 审计 echo总记录数:$(wc-l~/.ssh/known_hosts)echoMD5 哈希:$(md5sum ~/.ssh/known_hosts|cut-d -f1)# 提取所有主机名需要先取消哈希安全注意ssh-keygen-F*-f~/.ssh/known_hosts2/dev/null# 对比新旧主机密钥检测 MITM 攻击ssh-keyscan server.example.com|whilereadline;doifgrep-qF$line~/.ssh/known_hosts;thenecho✅ 密钥匹配: server.example.comelseecho❌ 密钥不匹配可能存在中间人攻击fidone高级用法# 为特定子网生成 known_hosts 文件NETWORK10.0.0mkdir-p/tmp/ssh_scanforoctetin{1..50};dossh-keyscan-T1-H${NETWORK}.${octet}/tmp/ssh_scan/network_hosts2/dev/nulldonewaitecho收集完成条目数:$(wc-l/tmp/ssh_scan/network_hosts)# 按密钥类型分类输出ssh-keyscan-trsa-Hhost.example.comrsa_keys.txt ssh-keyscan-ted25519-Hhost.example.comed25519_keys.txt# 导出为 SSHFP DNS 记录格式ssh-keyscan host.example.com|ssh-keygen-rhost.example.com# 扫描域名对应的多个 IP处理负载均衡HOSTcdn.example.comforipin$(digshort$HOST);doecho# IP:$ipssh-keyscan-T3$ip2/dev/nulldone# 脚本化检查密钥是否已存在于 known_hostscheck_known_host(){localhost$1ifssh-keygen-F$host-f~/.ssh/known_hosts/dev/null21;thenecho✅$host已存在于 known_hostsreturn0elseecho⚠️$host未在 known_hosts 中正在添加...ssh-keyscan-H$host~/.ssh/known_hosts2/dev/nullreturn$?fi}check_known_hostnew-server.local安全注意事项安全警告ssh-keyscan不验证主机身份——它只是收集公钥。收到的主机公钥在首次使用时都应通过带外方式如电话、当面确认进行验证始终使用-H选项哈希主机名防止主机名信息泄露在生产环境中应使用 SSH CA 证书签名代替手动 known_hosts 管理定期使用ssh-keygen -R清理不再需要的 known_hosts 记录# SSH CA 模式企业推荐方案避免手动管理 known_hosts# 客户端配置 ~/.ssh/configcat~/.ssh/configEOF Host *.company.com CertificateFile ~/.ssh/user_key-cert.pub EOF# 这样就不需要逐台收集主机密钥了ssh-keyscan是自动化 SSH 部署中的先遣工具。虽然它不验证主机身份但在可信任的私有网络环境中它极大地简化了首次 SSH 连接的工作流程。

相关新闻

AI矩阵获客实战案例大揭秘!

AI矩阵获客实战案例大揭秘!

AI矩阵获客实战案例大揭秘!在当今数字化商业浪潮中,企业获客面临着诸多挑战,AI 矩阵获客作为新兴解决方案应运而生。然而,这一领域在发展过程中也遭遇了不少核心技术挑战。当前,企业营销正面临“人力成本高、获客效率低…

2026/10/15 18:46:24 阅读更多 →
3分钟搞定音乐加密文件!Unlock Music Electron桌面版终极指南

3分钟搞定音乐加密文件!Unlock Music Electron桌面版终极指南

3分钟搞定音乐加密文件!Unlock Music Electron桌面版终极指南 【免费下载链接】unlock-music-electron Unlock Music Project - Electron Edition 在Electron构建的桌面应用中解锁各种加密的音乐文件 项目地址: https://gitcode.com/gh_mirrors/un/unlock-music-e…

2026/10/10 14:38:15 阅读更多 →
单片机计算机毕设之基于 STM32 的多阈值可调健康照明监测装置设计与开发 基于 STM32 单片机的蜂鸣预警坐姿久坐提醒智能设备(018402)

单片机计算机毕设之基于 STM32 的多阈值可调健康照明监测装置设计与开发 基于 STM32 单片机的蜂鸣预警坐姿久坐提醒智能设备(018402)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/10/12 6:42:10 阅读更多 →

最新新闻

Flask微服务架构与深度学习模型部署:从服务拆分到Docker容器化的完整实践

Flask微服务架构与深度学习模型部署:从服务拆分到Docker容器化的完整实践

每年到这个节点,我的私信列表基本就被同一类问题刷屏了:选的毕设题目是“基于Flask的微服务架构开发”,前缀还要挂上“大数据深度学习”,导师给的方向看着很唬人,自己却不知道从哪下手;等跌跌撞撞把代码堆出…

2026/10/17 4:56:16 阅读更多 →
即时通讯APP安全防护:从加密设计到运维监控的完整指南

即时通讯APP安全防护:从加密设计到运维监控的完整指南

做即时通讯APP安全防护这件事,我最大的感受是:安全不是上线前加个证书就完事,而是从产品定义那天起就要一路跟着走的工程问题。这几年我参与过几个即时通讯类项目的安全改造,见过太多“开发一时爽、安全火葬场”的案例&#xff1a…

2026/10/17 4:56:16 阅读更多 →
HBase四大数据流优化:写入、读取、Compaction与元数据流调优实战

HBase四大数据流优化:写入、读取、Compaction与元数据流调优实战

1. 项目概述:这不是一次简单的调参,而是一场对HBase读写链路的深度解剖“HBase优化”这四个字,在大数据工程师的日常里出现频率极高,但真正能说清楚“到底在优化什么、为什么这么优化、不这么优化会怎样”的人,其实不多…

2026/10/17 4:56:16 阅读更多 →
C++高精度模板详解:大数加减乘除从原理到压位优化

C++高精度模板详解:大数加减乘除从原理到压位优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 4:56:16 阅读更多 →
国内使用 Claude Code AI 完整配置指南:TaoToken 统一 Key 接入与 IDEA 验证

国内使用 Claude Code AI 完整配置指南:TaoToken 统一 Key 接入与 IDEA 验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 4:56:16 阅读更多 →
API经济驱动AI智能体营销:从底层逻辑到实战指南

API经济驱动AI智能体营销:从底层逻辑到实战指南

这两年做营销越来越有个明显的感觉:过去我们讨论的是“预算怎么分、渠道怎么排期、内容怎么铺”,现在大家聚在一起聊的却是“哪个智能体能帮我盯数据、哪条API能让我把内容和广告串起来、怎么让AI Agent自己跑完一圈用户运营”。这种变化不是某个工具升级…

2026/10/17 4:55:16 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →