直接用ssh-keygen -t ed25519 -C "your_email@example.com"可生成Ed25519密钥对,但真正安全需三步:必须显式指定-t ed25519(OpenSSH 8.8+禁用ssh-rsa,否则回退至不安全RSA 2048);务必设强passphrase(如MapleTigerJolt7!),避免私钥裸奔;严格设置权限——私钥600、~/.ssh目录700、authorized_keys 600,且公钥须单行无换行。

直接用 ssh-keygen -t ed25519 -C "your_email@example.com" 就能生成安全可用的 Ed25519 密钥对——但“生成成功”不等于“真正安全”,关键在算法选择、口令保护和权限控制三个环节。
必须显式指定 -t ed25519
OpenSSH 8.8+ 默认禁用老旧的 ssh-rsa(SHA-1 签名),不加 -t 参数会自动回退到不安全的 RSA 2048,连接时可能报 no mutual signature algorithm 或直接拒绝。Ed25519 是现代标准,签名快、验签稳、私钥固定 32 字节,无弱参数可调。
- 命令中不要加
-b参数——Ed25519 不支持指定长度,加了会报错invalid option -- 'b' -
-C后的注释建议填邮箱或用途标识,比如"admin@prod-server-2026",方便后续管理多个密钥 - 回车接受默认路径
~/.ssh/id_ed25519即可,私钥和公钥自动成对生成
务必设置强 passphrase
留空 passphrase 相当于把私钥明文存硬盘,一旦文件泄露,服务器就等于裸奔。企业级场景中,这是底线要求,不是可选项。
- 推荐组合:4 个无关联单词 + 1 数字 + 1 符号,例如
MapleTigerJolt7! - 避免姓名、生日、常见弱口令如
123456、qwerty - 验证是否真加密:运行
ssh-keygen -l -f ~/.ssh/id_ed25519,输入 passphrase 后能显示指纹才算生效;若直接报load failed: invalid format,说明没加密成功
严格校验权限与格式
OpenSSH 对权限极其敏感,错一步就会拒载,且错误提示往往模糊,比如只报 UNPROTECTED PRIVATE KEY FILE! 却不说明具体哪一环出问题。
- 私钥权限必须是
600:chmod 600 ~/.ssh/id_ed25519 -
~/.ssh目录权限必须是700:chmod 700 ~/.ssh - 公钥内容必须单行、末尾带空格分隔的注释:
cat ~/.ssh/id_ed25519.pub | tr -d '\n'确认无换行后再复制 - 上传后,远程服务器上的
~/.ssh/authorized_keys权限也必须是600
不复杂但容易忽略。


















