sshd_config servidores por instalar configurar conexion conectarse comandos linux networking ssh-tunnel terminal-emulator xtermjs

linux - servidores - Cómo crear un terminal basado en web usando xterm.js para ssh en un sistema en la red local



openssh linux (1)

Me encontré con esta impresionante biblioteca, xterm.js que también es la base para el terminal de Visual Studio Code. Tengo una pregunta muy general.

Quiero acceder a una máquina (ssh en una máquina) en una red local a través de un terminal basado en web (que está fuera de la red, puede estar en un servidor aws). Pude hacerlo con éxito en una red local, pero no pude llegar a una conclusión para hacerlo desde Internet -> red local.

Como ejemplo: 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. 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.

¿Se puede lograr el ejemplo anterior utilizando algún tipo de soluciones donde pueda usar xterm.js para no tener que ir a construir un terminal basado en web? ¿Cuáles son los principales problemas de seguridad que debo tener en cuenta al exponer los terminales de esta manera?

Pensaba en línea con el uso de un servidor intermedio fijo entre AWS y la red local ip y uso algún tipo de proceso de túnel ssh inverso para hacer esto, pero no estoy seguro de que sea la forma correcta o podría haber una forma más simple / mejor lograr esto.

Sé digital ocean, google cloud, todos hacen esto, pero tienen que conectarse a una computadora que tenga una ip pública mientras tengo una máquina en una red local. Realmente no quiero configurar el enrutador para hacer ningún tipo de configuración.


Después de algunas investigaciones aquí está funcionando el código.

Siguiendo las bibliotecas necesitas entender cómo funciona.

1) https://socket.io/

Esta biblioteca se utiliza para transmitir paquetes desde el cliente al servidor.

2) https://github.com/staltz/xstream

Esta biblioteca se utiliza para la vista de terminal.

3) https://github.com/mscdex/ssh2

Esta es la biblioteca principal. que se utiliza para establecer conexión con su servidor remoto.

Paso 1: Instala esta biblioteca 3 en tu carpeta de proyecto

Setp 2: comience desde el lado del nodo cree un archivo server.js para el socket abierto

Paso 3: Conexión del cliente de conexión al servidor de nodo (ambos están en la máquina local)

La lógica complicada es cómo usar socket y ssh2

En la emisión de socket, debe activar el comando ssh utilizando la biblioteca ssh2. en la respuesta de ssh2 (desde el servidor) necesita transmitir el paquete de socket al cliente, eso es todo

No escriba más aquí es el código de ejemplo que he cargado para usted

Descargar codigo

Esto le gusta tener los siguientes archivos y carpetas

server.js package.json src/ xtream/

Primero necesita configurar la IP de su servidor, el usuario y la contraseña o el archivo cert en server.js. y simplemente pulse nodo server.js

PD: No te olvides de ejecutar npm install

Déjame saber si tienes alguna pregunta!