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/8/11 8:28:59 阅读更多 →
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/8/11 8:28:59 阅读更多 →
单片机计算机毕设之基于 STM32 的多阈值可调健康照明监测装置设计与开发 基于 STM32 单片机的蜂鸣预警坐姿久坐提醒智能设备(018402)

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

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

2026/8/11 8:28:59 阅读更多 →

最新新闻

比特派钱包增长失效,Web3分发全面转向用户质量

比特派钱包增长失效,Web3分发全面转向用户质量

过去数年,Web3 钱包行业普遍以 APP 下载量、新增装机数作为增长核心指标,渠道投放、社群拉新、空投补贴成为主流获客手段,比特派等老牌钱包也曾依托流量打法快速扩大用户盘子。但伴随行业红利消退、流量成本飙升、用户分层加剧,单纯依靠下载量扩张的粗放增长模式彻底失效,整个 …

2026/8/11 9:20:18 阅读更多 →
Unity Wheel Collider 入门:从零构建可驾驶3D车辆物理系统

Unity Wheel Collider 入门:从零构建可驾驶3D车辆物理系统

1. 项目概述:从零开始,用Unity的Wheel Collider打造你的第一辆3D小车 如果你刚接触Unity,想找一个既有成就感又能快速理解物理交互和脚本控制的入门项目,那么实现一辆3D可驾驶的车辆绝对是个绝佳的选择。这不仅仅是放几个轮子那么…

2026/8/11 9:20:18 阅读更多 →
【Linux系统编程】shell与权限(2)——从 rwx 到 chmod/chown

【Linux系统编程】shell与权限(2)——从 rwx 到 chmod/chown

🎈主页传送门:良木生香 🔥个人专栏:《C语言》《数据结构-初阶》《鼠鼠的C学习之路》《Linux系统编程》 🌟人为善,福随未至,祸已远行;人为恶,祸虽未至,福已远离 前言:在 Linux 中,权限是系统安全的基石。普通用户和 r…

2026/8/11 9:20:18 阅读更多 →
C++强大的背后

C++强大的背后

C广泛应用在不同领域,使用者以数百万计。根据近十年的调查,C的流行程度约稳定排行第3位(于C/Java之后)。 C经历长期的实践和演化,才成为今日的样貌。1998年,C标准委员会排除万难,使C成为ISO标准(俗称C98),当…

2026/8/11 9:20:18 阅读更多 →
AI命理软件深度测评:技术如何赋能传统八字排盘与解读

AI命理软件深度测评:技术如何赋能传统八字排盘与解读

1. 项目概述:当AI遇上传统命理,我们到底在测评什么? 最近几年,AI的风吹遍了各行各业,从写代码到做设计,现在这股风终于刮到了“玄学”领域。作为一个对技术趋势和传统文化都抱有兴趣的从业者,我…

2026/8/11 9:20:18 阅读更多 →
《怪物猎人》竞速攻略:单瓶攻击极限爆发策略与资源管理

《怪物猎人》竞速攻略:单瓶攻击极限爆发策略与资源管理

1. 先搞清楚“打电鳐榜”是什么,以及为什么“一个攻击瓶”是关键 如果你在社区或论坛里看到“打电鳐榜,虽然排名有点可惜,但分是真的高,只用了一个攻击瓶”这样的讨论,第一反应可能是好奇:这到底是在玩什么…

2026/8/11 9:19:17 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →