主 题:修复 Xshell 导出的 OpenSSH Ed25519 私钥在 Linux 下报 `incomplete message`
发 布 者:h3ll0-w0rld
标签分类: 技术
时 间:2026-08-27 17:14:05
内容预览:前情提要我之前在 Windows 上使用 Xshell,由于我从 Windows 迁移到了 Fedora,所以准备将密钥数据通过 Xshell 导出并复制到 Fedora。然而,在 Fedora 平台上我却发现该私钥无法使用,具体报错:Load key "~/.ssh/私钥": incomplete messageroot@服务器IP: Permission denied (publickey).检查私钥外观也是正常的:-----BEGIN OPENSSH PRIVATE KEY-----...-----END OPENSSH PRIVATE KEY-----cat -A 也没有 ^M,可以排除 CRLF:-----BEGIN OPENSSH PRIVATE KEY-----$...-----END OPENSSH PRIVATE KEY-----$说明私钥在传输过程中并没有损坏,而是在 Xshell 导出这个环节出了问题。适用范围本文仅处理未加密的 OpenSSH Ed25519 私钥:其外层容器和密钥材料完整,但 Xshell 导出结果在私钥数据后只剩一个 01 padding 字节,缺少空 comment 的 4 字节长度字段。脚本会先逐项校验该特征;与此不符时会停止且不修改文件。排查过程文件大小:wc -c ~/.ssh/NoBrandwc -l ~/.ssh/NoBrand结果:379 ~/.ssh/NoBrand7 ~/.ssh/NoBrand进一步解析 OpenSSH 私钥内部结构,得到:decoded bytes: 226magic: Trueciphername: declared=4, available=207kdfname: declared=4, available=199kdfoptions: declared=0, available=191n
直达链接: https://www.nodeseek.com/post-897019-1
发 布 者:h3ll0-w0rld
标签分类: 技术
时 间:2026-08-27 17:14:05
内容预览:前情提要我之前在 Windows 上使用 Xshell,由于我从 Windows 迁移到了 Fedora,所以准备将密钥数据通过 Xshell 导出并复制到 Fedora。然而,在 Fedora 平台上我却发现该私钥无法使用,具体报错:Load key "~/.ssh/私钥": incomplete messageroot@服务器IP: Permission denied (publickey).检查私钥外观也是正常的:-----BEGIN OPENSSH PRIVATE KEY-----...-----END OPENSSH PRIVATE KEY-----cat -A 也没有 ^M,可以排除 CRLF:-----BEGIN OPENSSH PRIVATE KEY-----$...-----END OPENSSH PRIVATE KEY-----$说明私钥在传输过程中并没有损坏,而是在 Xshell 导出这个环节出了问题。适用范围本文仅处理未加密的 OpenSSH Ed25519 私钥:其外层容器和密钥材料完整,但 Xshell 导出结果在私钥数据后只剩一个 01 padding 字节,缺少空 comment 的 4 字节长度字段。脚本会先逐项校验该特征;与此不符时会停止且不修改文件。排查过程文件大小:wc -c ~/.ssh/NoBrandwc -l ~/.ssh/NoBrand结果:379 ~/.ssh/NoBrand7 ~/.ssh/NoBrand进一步解析 OpenSSH 私钥内部结构,得到:decoded bytes: 226magic: Trueciphername: declared=4, available=207kdfname: declared=4, available=199kdfoptions: declared=0, available=191n
直达链接: https://www.nodeseek.com/post-897019-1