Saltar al contenido

Cómo crear un terminal basado en web usando xterm.js para ingresar a un sistema en la red local

Este equipo especializado pasados varios días de trabajo y de juntar de datos, obtuvieron los datos necesarios, nuestro deseo es que todo este artículo sea de utilidad para tu trabajo.

Solución:

Después de un poco de investigación aquí está el código de trabajo.

Bibliotecas:

1) https://socket.io/

Esta biblioteca se utiliza para transmitir paquetes del 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 una conexión con su servidor remoto.

Paso 1: Instale la Biblioteca 3 en la carpeta de su proyecto

Paso 2: Comience desde el lado del nodo, cree un server.js archivo para socket abierto

Paso 3: Conexión toma de cliente 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 del socket, debe activar un comando SSH utilizando la biblioteca ssh2. En la respuesta de la biblioteca ssh2 (desde el servidor), debe transmitir el paquete de socket al cliente. Eso es todo.

Haga clic aquí para encontrar un ejemplo.

Ese ejemplo tendrá estos archivos y carpetas:

Type    Name
------------
FILE    server.js
FILE    package.json
FOLDER  src
FOLDER  xtream

Primero debe configurar la IP del servidor, el usuario y la contraseña o el archivo de certificado en server.js y simplemente ejecutar node server.js.

PD: No olvides correr npm install

¡Hazme saber si tienes alguna pregunta!

Después de investigar un poco más tarde, encontré este servicio: https://tmate.io/ que hace el trabajo perfectamente. Aunque si necesita un terminal de tmate basado en la web, debe usar sus servidores ssh como un proxy inverso con el que, idealmente, no me sentía cómodo. Sin embargo, proporcionan tmate-server que se puede usar para alojar su propio servidor proxy inverso pero carece de interfaz de usuario web. Pero para construir un sistema donde tiene que acceder a un cliente detrás de NAT sobre ssh en la web, a continuación se encuentran los pasos.

  • Instale y configure tmate-server en alguna máquina en la nube.
  • Instale tmate en el lado del cliente y configúrelo para conectarse a una máquina en la nube.
  • Cree una aplicación nodejs usando xterm.js (fácil debido a la comunicación basada en WebSocket) que se conecta a su servidor tmate y pasa comandos al cliente respectivo. (Cuidado con los problemas de seguridad de exponer esta aplicación, ya que estará pasando comandos de Linux).
  • Dependiendo de su caso de uso, es posible que necesite un pequeño contenedor alrededor del cliente tmate en el lado del cliente para iniciarlo/detenerlo automáticamente o mediante alguna acción manual/IU.

Nota: también escribí un pequeño contenedor en el lado del cliente para iniciar/detener y pasar la información requerida a un servidor API (escrito en nodejs) que luego pasa la información a otra API que conecta el navegador a la respectiva sesión del cliente . Dado que habíamos escrito esta aplicación, incluía autenticación y restricciones de comando de lo que se puede ejecutar en la terminal. Puedes personalizarlo mucho.

Si guardas algún escollo o capacidad de acrecentar nuestro tutorial te evocamos ejecutar una reseña y con gusto lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *