跳到主要内容
ecdsa.com

SSH 主机密钥

SSH 服务器对每次密钥交换签名所用的长期密钥对,用来向客户端证明服务器身份;这些客户端已在 known_hosts 中记录了其公钥,或者信任为其签发证书的 CA。
其他写法host keyknown_hostsSSHFPssh_host_ed25519_key

服务器通常为每种算法保存一个主机密钥(/etc/ssh/ssh_host_ed25519_key、…_ecdsa_key、…_rsa_key),使用哪一个由客户端 HostKeyAlgorithms 的顺序决定。首次连接时,OpenSSH 会显示 SHA-256 指纹并询问是否信任;此后如果主机密钥发生变化,就会显示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 并中止连接(StrictHostKeyChecking 为默认值时)。

在不影响客户端的情况下轮换主机密钥:OpenSSH 的 UpdateHostKeys(较新的客户端默认启用)允许服务器在身份验证完成后公布自己的全部主机密钥,让客户端在旧密钥移除之前就记住新密钥。大规模服务器集群可以借助主机证书(known_hosts 中的 @cert-authority)或经 DNSSEC 签名的 SSHFP 记录(RFC 4255),完全避免“首次使用即信任”。

内置主机密钥的黄金镜像会让每台克隆出的服务器具有相同的身份;应在首次启动时重新生成密钥。HashKnownHosts 以哈希形式存储主机名,这样即使 known_hosts 文件被盗,也不会暴露你的服务器列表。

标准与参考资料

全部术语