必须显式指定-t ed25519,因OpenSSH 8.8+默认禁用ssh-rsa,不加该参数会回退到不安全的rsa 2048,导致no mutual signature algorithm等协商失败;私钥需设强口令(如MapleTigerJolt7!)、权限设为600,并通过ssh-add加载验证可用性。

直接用 ssh-keygen -t ed25519 -C "your_email@example.com" 就能生成可用的 Ed25519 密钥对——但多数人卡在“生成了却连不上”或“被 SSH 拒绝加载”,问题通常不出在命令本身,而在后续三步:算法是否真被服务端认、私钥有没有加密、权限有没有锁死。
为什么必须显式指定 -t ed25519?
OpenSSH 8.8+ 默认禁用 ssh-rsa 签名,不加 -t 参数会回退到不安全的 rsa(2048 位),连接时可能报错 no mutual signature algorithm 或直接拒绝认证。这不是你密钥“坏了”,是协商失败。
-
ssh-keygen -t ed25519强制使用现代椭圆曲线算法,签名快、验签稳、私钥固定 32 字节,无弱参数可调 - 别加
-b参数——Ed25519 不支持指定长度,加了会报错invalid option -- 'b' - 旧系统(如 CentOS 7.9 的 OpenSSH 6.4)不支持 Ed25519,需先确认服务端能力:
ssh -Q sig user@host查看是否列出sk-ssh-ed25519@openssh.com或ssh-ed25519
Passphrase 不是可选项,是企业级底线
留空 passphrase 相当于把私钥明文存硬盘,只要文件泄露,服务器就等于裸奔。企业环境里,ssh-add 托管才是标准做法,不是“图省事”的替代方案。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 输入两次完全一致的 passphrase,输错三次会退出,得重跑命令
- 推荐组合:4 个无关联单词 + 1 数字 + 1 符号,例如
MapleTigerJolt7!;避免姓名、生日、123456、qwerty - 验证是否真加密:
ssh-keygen -l -f ~/.ssh/id_ed25519,输入 passphrase 后能显示指纹才算生效;如果直接报错load failed: invalid format,说明没加密成功
权限和部署错一步,SSH 就直接拒载
OpenSSH 对权限极其敏感,不是“差不多就行”。私钥权限不对,会报 UNPROTECTED PRIVATE KEY FILE!;公钥格式多一个换行或空格,就会 Authentication refused 却不提示具体原因。
- 私钥必须是
-rw-------(600):chmod 600 ~/.ssh/id_ed25519 - 公钥必须单行、末尾带空格分隔的注释:
cat ~/.ssh/id_ed25519.pub | tr -d '\n'确认无换行后再复制 - 远程
~/.ssh/authorized_keys权限必须是-rw-------(600),目录~/.ssh必须是drwx------(700);用ssh-copy-id最稳妥,手动操作务必补上chmod 600 ~/.ssh/authorized_keys
最常被跳过的动作是验证:生成后不查 ssh-keygen -l -f ~/.ssh/id_ed25519.pub 确认算法类型,不测 ssh -o PubkeyAcceptedAlgorithms=+ssh-ed25519 user@host 排除协商问题,不运行 ssh-add -l 看密钥是否真进 agent——这些不是“额外步骤”,是判断密钥是否真正可用的唯一依据。

















