You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:ssh-keygen生成的ed25519私钥转PPK时遇‘unrecognized cipher name’错误

解决ed25519私钥转PPK时“unrecognized cipher name”错误

我来帮你搞定这个密钥转换的问题!你遇到的错误本质是OpenSSH 7.6p1默认使用的加密算法,老版本PuTTY(0.70及更早)不支持。下面分几种方案解决:

原因分析

OpenSSH 7.6p1生成ed25519私钥时,默认采用chacha20-poly1305@openssh.com或aes256-gcm@openssh.com这类新加密算法,同时使用OpenSSH专属的私钥格式(而非传统PEM格式)。而PuTTY 0.70及更早版本对这些新算法和格式的支持不完善,导致加载时触发“unrecognized cipher name”错误。


解决方案

方案1:生成密钥时直接兼容PuTTY

如果还没生成密钥,或者可以重新生成,直接用PuTTY支持的加密算法和格式生成:

ssh-keygen -t ed25519 -m PEM -c aes256-cbc -f ~/.ssh/id_ed25519

参数说明:

  • -m PEM:生成传统PEM格式的私钥,PuTTY更好识别
  • -c aes256-cbc:指定PuTTY支持的AES-256-CBC加密算法
  • -f:指定密钥文件路径

生成后直接用PuTTYgen加载,或者用命令行转换:

puttygen ~/.ssh/id_ed25519 -O private -o ~/.ssh/id_ed25519.ppk

方案2:转换现有私钥的加密算法

如果已经有了无法重新生成的私钥,用ssh-keygen修改其加密算法:

ssh-keygen -p -f ~/.ssh/id_ed25519 -c aes256-cbc

执行后按提示操作:

  1. 输入原私钥密码(如果设置过)
  2. 设置新密码(可以直接回车留空)
    修改完成后,再用PuTTYgen或命令行转换为PPK即可。

方案3:升级PuTTY到支持新算法的版本

PuTTY从0.71版本开始正式支持chacha20-poly1305@openssh.com和aes256-gcm@openssh.com加密算法。你可以升级到PuTTY 0.71或更高版本(比如最新稳定版),之后直接加载OpenSSH生成的原生ed25519私钥,就能正常转换为PPK了。


验证步骤

转换完成后,你可以用PuTTYgen打开PPK文件,或者尝试用PuTTY连接目标主机,验证密钥是否能正常使用。

内容的提问来源于stack exchange,提问作者takaomag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:11:27