Невозможно проанализировать privateKey: неподдерживаемый формат ключа

В моей книге про Mac с ОС Majave я использовал SSH-KEYGEN для генерации нового ключа SSH для модуля node.js SSH2. Тем не менее, я получил сообщение об ошибке: 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 не включает мой заголовок. Кто-нибудь может помочь?

0 ответов

Была такая же проблема, нашел решение здесь.

в основном используйте опцию PEM при создании ключа:

ssh-keygen -m PEM -t rsa 

Вы также можете преобразовать существующий ключ, а не создавать новый (убедитесь, что вы создали резервную копию, прежде чем запускать следующую команду, поскольку она перезапишет исходный):

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

(Оригинальный ответ https://serverfault.com/a/950686)

У меня такая же проблема при помещении содержимого закрытого ключа в файл конфигурации:

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"),
    }
}
Другие вопросы по тегам