无法解析privateKey:不支持的密钥格式

时间:2018-11-20 19:57:23

标签: node.js ssh openssh ssh-keygen ssh2

在Mac OS Pro Majave的Mac Pro中,我使用SSH-KEYGEN为node.js模块SSH2生成了一个新的SSH密钥。但是,我收到错误消息:Cannot parse privateKey: Unsupported key format

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

在私钥文件中,标题为 -----BEGIN OPENSSH PRIVATE KEY-----,而结尾为-----END OPENSSH PRIVATE KEY-----

我检查了模块ssh2-streams keyParser.js。正则表达式模式RE_HEADER_OPENSSH_PRIV不包含我的标题。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:7)

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

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

ssh-keygen -m PEM -t rsa 

答案 1 :(得分:0)

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

module.exports = {
    sftp: {
        privateKey: `MY PRIVATE KEY
        CONTENT WAS HERE!!!`
    }
}

解决方案:改用fs.readFileSync

const fs = require('fs')

module.exports = {
    sftp: {
        privateKey: fs.readFileSync("Path to my private key"),
    }
}