web-dev-qa-db-ja.com

privateKeyを解析できません:サポートされていないキー形式

OS Majaveを搭載したMacブックプロでは、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にはヘッダーが含まれません。誰でも助けることができますか?

8
George Zhang

同じ問題を抱えていたので、解決策を見つけました here

キーを作成するときは、基本的にPEMオプションを使用します。

ssh-keygen -m PEM -t rsa 
10
Dozon Higgs

構成ファイルに秘密鍵のコンテンツを入れると同じ問題が発生しました:

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"),
    }
}
0
Tho