Búsqueda de sitios web

Cómo acceder a la terminal del servidor Linux en el navegador web utilizando la herramienta 'Wetty (Web + tty)'


Como administrador del sistema, probablemente se conecte a servidores remotos usando un programa como GNOME Terminal (o similar) si está en un escritorio Linux, o un cliente SSH como Putty si tiene un máquina Windows, mientras realiza otras tareas como navegar por la web o consultar su correo electrónico.

¿No sería fantástico si hubiera una manera de acceder a un servidor Linux remoto directamente desde el navegador web? Por suerte para todos nosotros, existe una herramienta llamada Wetty (Web + tty) que nos permite hacer precisamente eso, sin necesidad de cambiar. programas y todo desde la misma ventana del navegador web.

Instalación de Wetty en Linux

Wetty está disponible en el repositorio GitHub de su desarrollador. Por esa razón, independientemente de la distribución, estás utilizando algunas dependencias que deben instalarse primero manualmente antes de clonar el repositorio localmente e instalar el programa.

En distribuciones basadas en RHEL, como CentOS, Rocky Linux y AlmaLinux, debe instalar NodeJS y el repositorio EPEL como se muestra:


yum groupinstall 'Development Tools'
curl -fsSL https://rpm.nodesource.com/setup_17.x | bash -
yum update 
yum install epel-release git nodejs npm

En Debian y sus derivados, la versión de NodeJS disponible en los repositorios de la distribución es anterior a la versión mínima requerida para instalar Wetty, por lo que hay que instalarla desde el >NodeJS Repositorio de desarrolladores de GitHub:


apt install curl build-essential
curl -fsSL https://deb.nodesource.com/setup_17.x | sudo -E bash -
apt update && apt install -y git nodejs npm

Después de instalar estas dependencias, clona el repositorio de GitHub:

git clone https://github.com/krishnasrinivas/wetty

Cambie el directorio de trabajo a wetty, como se indica en el mensaje anterior:

cd wetty

luego instale Wetty ejecutando:

npm install

Si recibe algún mensaje de error durante el proceso de instalación, solucionelo antes de continuar. En mi caso, la necesidad de una versión más nueva de NodeJS en Debian era un problema que debía resolverse antes de ejecutar la instalación de npm con éxito.

Iniciar Wetty y acceder a la terminal Linux desde el navegador web

En este punto, puede iniciar la interfaz web en el puerto local 8080 para Wetty ejecutando (esto supone que su directorio de trabajo actual es /wetty) :

node app.js -p 8080

Como puedes ver en la imagen a continuación:

Pero hazte un favor y NO ingreses tu nombre de usuario y contraseña ya que esta conexión no es segura y no quieres que tus credenciales viajen por el cable sin protección.

Por ese motivo, siempre debes ejecutar Wetty a través de HTTPS. Creemos un certificado autofirmado para asegurar nuestra conexión al servidor remoto:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

Y luego úselo para iniciar Wetty a través de HTTPS.

Tenga en cuenta que deberá abrir el puerto HTTPS personalizado donde desea ejecutar Wetty:

firewall-cmd --add-service=https # Run Wetty in the standard HTTPS port (443)
firewall-cmd --permanent --add-service=https
firewall-cmd --add-port=XXXX/tcp # Run Wetty on TCP port XXXX
nohup node app.js --sslkey key.pem --sslcert cert.pem -p 8080 &

El último comando en la secuencia anterior iniciará Wetty en segundo plano escuchando en el puerto 8080. Dado que estamos utilizando un certificado autofirmado, es de esperar que el navegador muestre una advertencia de seguridad (es perfectamente seguro ignorarla y agregar una excepción de seguridad) ya sea de forma permanente o para la sesión actual:

Una vez que haya confirmado la excepción de seguridad, podrá iniciar sesión en su VPS utilizando Wetty. No hace falta decir que puedes ejecutar todos los comandos y programas como si estuvieras sentado frente a una terminal real o virtual, como puedes ver en la siguiente pantalla: