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.