ssh-keyscan

采集服务器主机密钥,供后续检查。

执行前须知

采集到的密钥尚未经过身份验证。写入 known_hosts 前,必须通过可信管理员或独立可信来源核对指纹。不要将未经核验的输出直接追加到 known_hosts。扫描不是登录成功,也不代表具备访问权限。下面的重定向会覆盖已有的 hostkeys.txt。

使用示例

在五秒超时内采集 2222 端口的主机密钥,保存到本地文件。

ssh-keyscan -T 5 -p 2222 server.example.com > hostkeys.txt

显示采集到的指纹;独立核对后再决定是否信任。

ssh-keygen -lf hostkeys.txt

参数与示例

-p port常用

查询指定的SSH端口。

示例
ssh-keyscan -p 2222 server.example.com
-T timeout常用

设置连接超时(以秒为单位)。

示例
ssh-keyscan -T 5 server.example.com
-t type常用

请求特定的主机密钥类型,以逗号分隔。

示例
ssh-keyscan -t ed25519,rsa server.example.com
-4 / -6

分别仅使用 IPv4 或仅使用 IPv6。

示例
ssh-keyscan -4 server.example.com
-f file

从文件中读取主机名或地址,每行一个。

示例
ssh-keyscan -f hosts.txt
-H

对输出中的主机名进行哈希处理。这不会验证返回的密钥。

示例
ssh-keyscan -H server.example.com
-c

如果支持,请请求主机证书而不是普通主机密钥。

示例
ssh-keyscan -c server.example.com

权威参考

核对日期:2026 年 10 月 27 日