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

ssh2-sftp-client加载Putty私钥报错:不支持密钥格式求解

问题原因

ssh2-sftp-client底层依赖的ssh2库只认OpenSSH格式的私钥,你现在用的是Putty独有的PPK格式,直接读取PPK文件传入后,库无法解析该格式,导致连接失败。

解决方法

方法1:用Puttygen转换为OpenSSH格式

  • 打开Puttygen,点击「Load」加载你的PrivateKey.ppk文件
  • 加载完成后,点击顶部菜单栏「Conversions」→「Export OpenSSH key」
  • 保存导出的文件(比如命名为id_rsa),如果原PPK无加密,导出时不要设置密码
  • 修改代码中的私钥路径:
await sftp.connect({ 
  host, 
  port, 
  username, 
  privateKey: fs.readFileSync('/path/to/id_rsa') 
})

方法2:代码中实时转换PPK格式

不想手动转换文件的话,可借助ppk-converter包在代码内完成格式转换:

  1. 安装依赖:
npm install ppk-converter
  1. 修改连接代码:
const ppkConverter = require('ppk-converter');
const ppkContent = fs.readFileSync('/path/to/PrivateKey.ppk', 'utf8');
const openSshKey = ppkConverter.ppkToOpenSsh(ppkContent);

await sftp.connect({ 
  host, 
  port, 
  username, 
  privateKey: openSshKey 
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:52:43