密钥强度看算法与长度
SSH 密钥的强度由算法与长度共同决定:Ed25519 是当前推荐选择,密钥短、性能好;需要兼容老设备时用 RSA 至少 3072 位;DSA 已被弃用,应当清理。服务端还可以收敛允许的算法集合,避免协商到弱算法。密钥指纹清单应纳入资产台账,轮换与离职回收时按指纹定位到具体机器与账号。
基本信息
| 适用平台 | Linux / Windows(OpenSSH、PuTTY 等客户端) |
|---|---|
| 推荐算法 | ssh-ed25519;兼容场景用 rsa-sha2-512、rsa-sha2-256 |
| 长度要求 | RSA 不低于 3072 位;禁用 DSA |
| 盘点命令 | ssh-keygen -lf 输出指纹与位长 |
| 基线 | 无 DSA 密钥、RSA 不低于 3072 位 |
典型使用场景
- 新建密钥:生成 Ed25519 密钥作为默认选择
- 存量盘点:扫描所有 authorized_keys,找出弱密钥
- 服务端收敛:限制允许的 HostKeyAlgorithms 与公钥算法
- 离职回收:按指纹精确删除离职人员在各机器上的公钥
- 定期轮换:按资产台账与使用期限安排密钥轮换
生成强密钥与盘点
生成强密钥与盘点
ssh-keygen -t ed25519 -a 100 -C "ops@2026q4" -f ~/.ssh/id_ed25519
ssh-keygen -t rsa -b 4096 -C "legacy-app" -f ~/.ssh/id_rsa_legacy # 兼容老设备时
for f in /home/*/.ssh/authorized_keys /root/.ssh/authorized_keys; do [ -f "$f" ] && ssh-keygen -lf "$f"; done
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub # 核对服务端主机密钥
ssh-keygen -lf ~/.ssh/id_ed25519.pub # 记录指纹入台账服务端算法收敛
服务端算法收敛
# /etc/ssh/sshd_config
HostKeyAlgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
PubkeyAcceptedAlgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256
# 修改后先校验再重载:
# sshd -t && systemctl reload sshd指纹输出读法
| 输出内容 | 含义 | 正常与异常 |
|---|---|---|
| 位长(如 256) | 密钥长度 | Ed25519 为 256 位仍安全;RSA 低于 3072 需整改 |
| 指纹(SHA256) | 密钥唯一标识 | 用于台账登记与轮换定位 |
| 注释字段 | 生成时写入的说明 | 为空时难以判断归属 |
| 类型(ED25519/RSA/DSA) | 算法种类 | 出现 DSA 即需清理 |
| 主机密钥 | 服务端身份 | 变更主机密钥前需通知客户端 |
把 ssh-keygen -lf 的指纹清单纳入资产台账:轮换与离职回收时可按指纹精准定位,而不是逐台翻文件。
落地要点
- 新密钥统一用 Ed25519,老设备兼容需求单独登记例外清单
- 私钥必须设口令:无口令私钥一旦被复制即可直接使用
- 密钥轮换与人员变动同步执行,避免旧密钥长期有效
- 服务端算法收敛前确认客户端与自动化工具的兼容性
- 主机密钥变更会影响客户端的 known_hosts 校验,需提前通告
算法收敛要留例外清单:网络设备与嵌入式系统可能只支持 ssh-rsa,一刀切会导致运维断链。