Node.js 无法分析privateKey:不支持的密钥格式

Node.js 无法分析privateKey:不支持的密钥格式,node.js,ssh,openssh,ssh-keygen,ssh2,Node.js,Ssh,Openssh,Ssh Keygen,Ssh2,在我的Mac book pro with OS Majave中,我使用SSH-KEYGEN为node.js模块SSH2生成一个新的SSH密钥。但是,我收到错误消息:无法解析privateKey:不支持的密钥格式 我用ssh命令验证了密钥,它可以正常工作。但node.js模块SSH2不能使用 在私钥文件中,头是 ----开始OPENSSH私钥------,结束为----结束OPENSSH私钥------ 我检查了模块ssh2 streams keyParser.js。regexp模式RE_HEAD

在我的Mac book pro with OS Majave中,我使用SSH-KEYGEN为node.js模块SSH2生成一个新的SSH密钥。但是,我收到错误消息:
无法解析privateKey:不支持的密钥格式

我用ssh命令验证了密钥,它可以正常工作。但node.js模块SSH2不能使用

在私钥文件中,头是
----开始OPENSSH私钥------
,结束为
----结束OPENSSH私钥------


我检查了模块ssh2 streams keyParser.js。regexp模式
RE_HEADER\u OPENSSH\u PRIV
不包括我的头。有人能帮忙吗?

遇到同样的问题,找到了解决方案

创建密钥时基本上使用PEM选项:

ssh-keygen -m PEM -t rsa 

我在将私钥内容放入配置文件时遇到了相同的问题:

module.exports={
sftp:{
私钥:“我的私钥
内容在这里`
}
}
解决方案:改用
fs.readFileSync

const fs=require('fs'))
module.exports={
sftp:{
privateKey:fs.readFileSync(“我的私钥路径”),
}
}

您也可以转换现有密钥,而不是创建新密钥(请确保在运行以下命令之前备份密钥,因为它将覆盖原始密钥):


(原始答案来自)

我在中发现了这个问题。有人知道如何将ssh-keygen退回到旧版本吗?您对ssh-keygen使用了哪些参数?
ssh-keygen
?我已经尝试了“-o”和几乎所有的组合。但它仍然在头文件中使用OPENSSH。现在,我只是复制了SSH2的旧私钥。看这篇文章可能只是需要一个缓冲区?
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa