Как создать веб-терминал с помощью xterm.js для ssh в систему в локальной сети
я наткнулся на эту удивительную библиотеку xterm.js который также является базой для терминала кода Visual Studio. У меня очень общий вопрос.
Я хочу получить доступ к машине (ssh в машину) в локальной сети через веб-терминал(который находится вне сети, может быть на сервере aws). Я смог сделать это в локальной сети успешно, но я не мог прийти к выводу, чтобы сделать это из интернета-->локальной сети .
в качестве примера - An aws server running the application on ip 54.123.11.98 which has a GUI with a button to open terminal. I want to open terminal of a local machine which is in a local network somewhere behind some public ip on local ip 192.168.1.7.
может ли приведенный выше пример быть достигнут с помощью каких-то решений, где я могу использовать xterm.js, чтобы мне не нужно было создавать веб-терминал? Каковы основные проблемы безопасности, которые я должен иметь в виду, подвергая терминалы таким образом?
Я думал в соответствии с использованием фиксированного промежуточного сервера между AWS и ip локальной сети и использовать какой-то обратный процесс туннеля ssh для этого, но я не уверен, что это правильный путь или есть ли более простой/лучший способ достичь этого.
Я знаю digital ocean, Google cloud, все они делают это, но они должны подключиться к компьютеру, который имеет публичный ip, а у меня есть машина в локальной сети. Я действительно не хочу настраивать маршрутизатор для какой-либо настройки .
1 ответов
после нескольких исследований здесь работает код.
следующие библиотеки вам нужно понять, как его работы.
эта библиотека используется для передачи пакетов от клиента к серверу.
2) https://github.com/staltz/xstream
эта библиотека используется для просмотра терминала.
3) https://github.com/mscdex/ssh2
это главная библиотека. который используется для установления соединения с удаленным сервером.
Шаг 1 : Установите эту библиотеку 3 в папку проекта
Setp 2 : Начните со стороны узла создайте сервер.JS файл для открытого сокета
Шаг 3 : Подключение клиентского сокета к узловому серверу (оба находятся в локальной машине )
хитрая логика-это просто использование сокета и ssh2
при излучении сокета вам нужно вызвать команду ssh с помощью библиотеки ssh2. на ответ ssh2 (с сервера) вам нужно передать пакет сокета клиенту, вот и все
Не пишите больше вот пример кода, который я загрузил для вас
Это похоже на следующие файлы и папки
server.js
package.json
src/
xtream/
сначала вам нужно настроить IP-адрес сервера, пользователя и пароль или файл сертификата на сервере.js. и просто нажмите node server.js
P. S : Не забудьте запустить npm install
Дайте мне знать, если у вас есть вопросы !