ошибка входа в систему с красным администратором узла

#node-red

Вопрос:

Я пытаюсь следовать этому руководству, чтобы создать логин для узла red.

Из того, что я могу собрать, администратор node-red встроен в node red, так зачем мне устанавливать пакет? Я получаю сообщение об ошибке при использовании обучающего кода при попытке

 npm install -g --unsafe-perm node-red-admin
 

Терминал Linux эта команда работает из учебного кода:

 node-red-admin hash-pw
 

Чтобы получить пароль hash и sudo nano ~/.node-red/settings.js , следуя руководству, раскомментировать правильные строки на моем конце, это выглядит так:

 /** To password protect the Node-RED editor and admin API, the following
 * property can be used. See http://nodered.org/docs/security.html for details.
 */
adminAuth: {
    type: "credentials",
    users: [{
        username: "ben",
        password: "supersecretP@$word",
        permissions: "*"
    }]
},

/** The following property can be used to enable HTTPS
 * This property can be either an object, containing both a (private) key
 * and a (public) certificate, or a function that returns such an object.
 * See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener
 * for details of its contents.
 */
 

А затем через nano записываем файл и выполняем sudo reboot я не могу войти в систему с этим именем пользователя и паролем, есть идеи попробовать?

изображение

Комментарии:

1. password Поля должны быть хэшированы с помощью bcrypt. Ваш settings.js поле пароля хэшировано?

Ответ №1:

Пароль, который вы храните в своем settings.js файл должен представлять собой хэш, сгенерированный на основе вашего пароля. Вы можете сгенерировать этот хэш с помощью инструмента из вашей командной строки

узел-красный-хэш администратора-pw

или

узел -e «console.log(require(‘bcryptjs’).hashSync(process.argv[1], 8));» ваш пароль-здесь

После ввода вашего пароля появится строка хэша, скопируйте ее и вставьте в файл настроек:

 adminAuth: {
    type: "credentials",
    users: [{
        username: "ben",
        password: "$2b$08$wuAqPiKJlVN27eF5qJp.RuQYuy6ZYONW7a/UWYxDTtwKFCdB8F19y",
       permissions: "*"
    }]
},
 

Это должно выглядеть примерно так.

Я предлагаю вам подробно ознакомиться со страницей документации, чтобы должным образом защитить ваш экземпляр node-red, прежде чем открывать его для публичного использования.

Ответ №2:

Здесь это неправильно:

 adminAuth: {
    type: "credentials",
    users: [{
        username: "ben",
        password: "supersecretP@$word",
        permissions: "*"
    }]
},
 

Это password должен быть hash не тот пароль, который я надеялся использовать для входа в Node Red.