Невозможно проанализировать 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"),
}
}