应使用ssh-keygen -F命令验证特定主机密钥是否存在于本地信任列表:按主机名查ssh-keygen -F example.com,按IPv4查ssh-keygen -F 192.168.1.100,按IPv6查ssh-keygen -F '[2001:db8::1]';有输出即已信任,无输出则未记录。

SSH 密钥指纹验证不是“多此一举”,而是防止中间人攻击(MITM)的关键一环。每次首次连接新服务器时,系统会显示服务器的公钥指纹,你必须核对它是否可信,否则可能把密码或私钥交给了假冒服务器。
怎么查看和核对服务器指纹
首次连接时,终端会提示类似这样的信息:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcde.
Are you sure you want to continue connecting (yes/no)?
这时别急着敲 yes。正确做法是:
- 联系服务器管理员,获取该服务器官方公布的指纹(通常在内网文档、运维平台或初始化日志中)
- 比对 SHA256 后面那一长串字符是否完全一致(大小写、符号、顺序都不能错)
- 确认无误后再输入 yes,系统才会把该服务器公钥存入 ~/.ssh/known_hosts
如何手动查已存服务器指纹
已连接过的服务器指纹都存在本地 ~/.ssh/known_hosts 文件里。想快速查看某台服务器当前记录的指纹,可用命令:
ssh-keygen -F 192.168.1.100 -l(替换为实际IP或域名)
输出示例:
192.168.1.100 ssh-ed25519 SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcde
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
如果想看所有已存主机的指纹列表,运行:
ssh-keygen -l -f ~/.ssh/known_hosts
指纹变了?别慌,先排查原因
再次连接时若提示 “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”,说明 known_hosts 里存的指纹和当前服务器发来的不一致。常见原因有:
- 服务器重装系统或重置 SSH 服务(最常见),生成了新的主机密钥
- IP被复用,现在指向另一台设备(比如云主机释放后又被分配给新用户)
- 网络中存在代理或跳板机干扰,导致你连的不是目标机器
安全做法是:先通过其他可信渠道(如控制台、带外管理口)确认服务器是否真的重置过;确认后再清理旧记录:
ssh-keygen -R 192.168.1.100
私钥指纹也要心里有数
你的私钥也有唯一指纹,可用于快速识别和校验。查看方法:
ssh-keygen -lf ~/.ssh/id_ed25519(路径换成你自己的私钥文件)
输出类似:
256 SHA256:XYZ...abc id_ed25519 (ED25519)
这个指纹建议记下来或存进密码管理器——万一哪天怀疑私钥被篡改或替换,比对指纹就能快速判断。

















