推荐优先使用ed25519或rsa 4096密钥:ssh-keygen -t ed25519 -C "email" 或 ssh-keygen -t rsa -b 4096 -C "email";禁用dsa及rsa 1024/2048,因其安全性已不满足当前标准。

生成不同加密强度的密钥,关键在选对算法类型和位数长度。现代推荐优先用 ed25519 或 rsa 4096,不建议再用 dsa 或 rsa 1024/2048(安全性已不足)。
常用高强度密钥生成命令
以下命令均默认保存在 ~/.ssh/ 目录下,按提示回车即可完成生成:
-
Ed25519(首选,速度快、安全性高、密钥短):
ssh-keygen -t ed25519 -C "your_email@example.com" -
RSA 4096 位(兼容性好,仍广泛支持):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -
ECDSA 384 位(比 RSA 轻量,但部分老旧系统支持有限):
ssh-keygen -t ecdsa -b 384 -C "your_email@example.com"
为什么不能只用默认参数
直接运行 ssh-keygen 不加参数,会生成 2048 位 RSA 密钥——它虽能用,但已不满足当前主流安全要求。NIST 和 OpenSSH 官方均已建议淘汰 2048 位 RSA 用于新部署;ed25519 和 3072+ 位 RSA 才是当前基准。
另外,-t dsa 已被 OpenSSH 8.8+ 版本完全禁用,尝试使用会报错;-t rsa -b 1024 属于严重弱密钥,多数服务器拒绝接受。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
验证密钥强度是否达标
生成后可快速检查类型与长度:
- 看公钥文件头:
head -n1 ~/.ssh/id_ed25519.pub→ 应含ssh-ed25519head -n1 ~/.ssh/id_rsa.pub→ 应含ssh-rsa,再配合ssh-keygen -l -f ~/.ssh/id_rsa查看实际位数 - 确认指纹格式:
现代密钥(如 ed25519、RSA 3072+)默认输出 SHA256 指纹;若显示 MD5 指纹(含冒号分隔十六进制),说明密钥或工具链过于陈旧
注意事项与权限设置
密钥生成只是第一步,后续必须确保权限正确,否则 SSH 会拒绝使用:
- 本地私钥文件权限必须为
600:chmod 600 ~/.ssh/id_ed25519 - 本地
~/.ssh目录权限必须为700:chmod 700 ~/.ssh - 公钥内容要准确写入远程服务器的
~/.ssh/authorized_keys,且该文件权限应为600,目录为700










