Ed25519 是一种基于椭圆曲线的高速数字签名算法,公钥仅 32 字节、签名 64 字节,安全强度相当于 RSA 3072 位,但速度快数十倍 。
Ed25519 是什么
基本定义:Ed25519 是基于 Curve25519 扭曲爱德华兹曲线的数字签名算法,属于 EdDSA 家族,2006 年由密码学家 Daniel J. Bernstein 设计 。
核心参数:
公钥长度:32 字节(256 位)。
私钥长度:64 字节。
签名长度:64 字节。
安全强度:约 128 位对称加密强度。
工作原理:密钥生成时从安全随机数生成 32 字节种子,通过 SHA-512 哈希和椭圆曲线点乘生成公钥;签名过程是确定性的,不依赖随机数生成器 。
比 RSA 好在哪
性能优势:
密钥生成速度比 RSA-4096 快约 65 倍(28ms vs 1820ms)。
签名速度比 RSA-4096 快约 47 倍(15200 次/秒 vs 320 次/秒)。
验证速度比 RSA-4096 快约 6 倍(68000 次/秒 vs 11500 次/秒)。
安全性更强:
天然抵抗时序攻击,签名时间恒定。
确定性签名,不依赖随机数,避免因随机数重复导致私钥泄露。
抗侧信道攻击能力优于 RSA 和 ECDSA。
密钥更短:
Ed25519 公钥 32 字节,RSA-2048 公钥约 256 字节。
256 位 Ed25519 密钥安全强度相当于 3072 位 RSA。
兼容性:OpenSSH 6.5+、LibreSSL 2.6.4+ 及现代系统均支持,但老旧系统可能需回退到 RSA。
SSH 里怎么用
生成密钥:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -C "your_email@example.com"生成过程仅需 0.15 秒,远快于 RSA-4096 的 1.8 秒 。
2.部署公钥:
ssh-copy-id user@your-server或将公钥内容手动添加到服务器 ~/.ssh/authorized_keys 文件 。
3.禁用密码登录(可选但推荐):
编辑 /etc/ssh/sshd_config,将 PasswordAuthentication 改为 no
执行 sudo systemctl reload sshd 平滑加载配置。
常见问题:
连接旧服务器报错:在 ~/.ssh/config 中指定回退算法 PubkeyAcceptedKeyTypes ssh-rsa,ssh-ed25519
密钥权限错误:执行 chmod 600 ~/.ssh/id_ed25519 设置正确权限。
密钥密码管理:建议使用 ssh-agent 缓存解密后的私钥,避免每次连接都输入密码。
