Использование SSH туннеля для подключения к удаленной базе данных MYSQL из Node-Red

0

У меня есть набор данных, которые выводятся из Node-Red, которые я хочу отправить в удаленную базу данных MYSQL. Система Node-Red работает на малине Pi. Как это сделать? Я знаю, как с помощью Node.JS, но я не уверен, как это сделать в Node-Red. IP-адрес Pi является динамическим, поэтому просто авторизация его адреса Ip не работает печально.

Заранее спасибо!

EDIT для уточнения:

Я хочу подключиться к удаленной базе данных MYSQL, размещенной на моем веб-хостинге. Я подключил малину Pi к батарее, и я хочу сохранить эту информацию в вышеупомянутой базе данных. Поскольку в разных местах будет несколько настроек батареи, я не могу сохранить данные локально. Итак, так или иначе мне нужно получить доступ к удаленной базе данных через Node-Red. Авторизация одного IP-адреса не работает, поскольку IP-адрес сети Raspberry Pi динамичен и, следовательно, изменяется. Я думаю, что SSH-Tunnel может быть решением, но я понятия не имею, как это происходит в Node-Red, а google не очень помогает.

  • 1
    Вам нужно будет более подробно объяснить, чего вы пытаетесь достичь здесь. Вы всегда можете установить, чтобы пользователи / пароли MySQL принимались с любого адреса (%) или подсети.
Теги:
ssh-tunnel
node-red

1 ответ

1

Хорошо, так как я сказал в комментариях, что вы можете сделать пару Username/Password для MySQL, может быть предоставлено разрешение на любой IP-адрес (который менее безопасен, если имя пользователя/пароль скомпрометировано). Установите хост на "%", чтобы разрешить все хосты при настройке параметров гранта).

Чтобы снизить риск, вы можете ограничить имя пользователя/пароль определенной подсетью. Это может быть Wi-Fi-сеть или подсеть, связанная с пиблическим IP-адресом (она должна быть общедоступной, так как почти все сотовые провайдеры используют CGNAT) для сотового провайдера, которого вы можете использовать. (См. Этот вопрос для деталей. Как предоставить удаленный доступ к MySQL для всей подсети?).

Если вы хотите использовать SSH-туннель, то это обычно делается за пределами Node-RED с командной строкой ssh, например

ssh -L localhost:3306:localhost:3306 remote.host.com

Затем настройте узел Node-RED MySQL, чтобы указать на localhost.

Поскольку соединение будет выглядеть так, как будто это происходит из localhost на машине MySQL, вам нужно убедиться, что имя пользователя/пароль заблокировано на этом узле.

Вероятно, вы также захотите настроить аутентификацию открытого/закрытого ключа для подключения ssh.

Вы можете запустить команду ssh в узле node-red-daemon, который должен перезапустить соединение, если оно будет удалено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню