Tutoriales

Instale WebSSH para conectarse a una terminal Linux desde un navegador web

Resumen: esta guía demuestra la instalación y el uso de WebSSH, un cliente SSH basado en la web, para que los usuarios puedan autenticarse y conectarse fácilmente a un servidor SSH desde un navegador web.

Para la mayoría de los usuarios de Linux, el método tradicional de conectarse a un servidor remoto a través de un cliente SSH ha sido a través de un entorno de línea de comandos. Sin embargo, Red SSH Simplifica las conexiones SSH de cliente a servidor al proporcionar una interfaz web fácil de usar escrita en Python y basada en xterm.js, paramiko y tornado.

Función WebSSH

  • Admite navegadores modernos como Chrome, Edge, Firefox, Opera y Safari.
  • Implementa una ventana de terminal de tamaño variable.
  • Detecta automáticamente la codificación predeterminada del servidor SSH de destino.
  • Se admite terminal de pantalla completa.
  • Se admite la autenticación de dos factores.
  • Las claves de cifrado son compatibles.
  • Admite autenticación de clave pública SSH con claves DSA RSA ECDSA Ed25519.
  • Admite la autenticación de contraseña SSH con contraseñas vacías.

Paso 1: instale las dependencias de WebSSH (Python y PIP)

ya que Pitón es el requisito principal antes de la instalación y el uso Red SSHdebe asegurarse de que esté instalado en su sistema.

$ sudo apt install python3         [On Debian, Ubuntu and Mint]
$ sudo yum install python3         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a dev-lang/python   [On Gentoo Linux]
$ sudo apk add python3             [On Alpine Linux]
$ sudo pacman -S python3           [On Arch Linux]
$ sudo zypper install python3      [On OpenSUSE]    

A continuación, debe instalar Python PIP, que se utiliza para instalar módulos y bibliotecas de Python en su sistema.

$ sudo apt install python3         [On Debian, Ubuntu and Mint]
$ sudo yum install python3         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a dev-lang/python   [On Gentoo Linux]
$ sudo apk add python3             [On Alpine Linux]
$ sudo pacman -S python3           [On Arch Linux]
$ sudo zypper install python3      [On OpenSUSE]    

Después de la instalación, puede confirmar la versión de Python y PIP con los siguientes comandos.

$ python3 -V
$ pip --version
Comprobar la versión de Python y PIP

Paso 2: instale WebSSH en Linux

y Pitón y pitón imagen en imagen Instalado en su sistema, finalmente podemos instalar Red SSH:

$ pip3 install webssh 
Instalar WebSSH en Linux
Instalar WebSSH en Linux

Confirmar instalación Red SSH Al ejecutar la versión:

$ wssh --version

1.6.0

Paso 3: conéctese a la terminal de Linux desde un navegador web usando WebSSH

si tienes instalado Red SSH En su sistema local, puede comenzar Red SSH ejecutando el siguiente comando.

$ wssh

si tienes instalado Red SSH En el sistema Linux remoto, debe agregar un parámetro adicional al siguiente comando que permitirá conexiones remotas a través del protocolo HTTP, que no es seguro de forma predeterminada, por lo que debe asegurarlo habilitando HTTPS como se describe más adelante en este artículo.

$ wssh --fbidhttp=False
Inicie WebSSH en Linux
Inicie WebSSH en Linux

Como se muestra en la captura de pantalla anterior, usaremos el puerto 8888debe estar permitido en su firewall.

$ sudo ufw allow 8888
OR
$ sudo firewall-cmd --zone=public --add-port=8888/tcp

En tu navegadornavegue a la siguiente dirección para conectarse a Red SSH Proporcionando credenciales SSH regulares como se muestra.

OR

Conectar WebSSH en Linux
Conectar WebSSH en Linux

Para la autenticación basada en claves, cargue su archivo de clave SSH, que generalmente se encuentra en ~/.ssh carpeta.Usar atajos de teclado Ctrl+h Mostrar archivos y directorios ocultos antes de cargar archivos.

Después de conectarse con éxito a la computadora remota, verá la siguiente interfaz del navegador:

Conéctese a SSH desde un navegador web usando WebSSH
Conéctese a SSH desde un navegador web usando WebSSH

Paso 4: WebSSH seguro con un certificado SSL

Este paso asume que tiene un nombre de dominio registrado y un activo Certificado SSL LetsEncryptEl certificado SSL asociado con su nombre de dominio debe estar ubicado en la ubicación del directorio:

/etc/letsencrypt/live/your_domain_name

Los archivos de su certificado en este directorio tendrán un .pem extensión de archivo, p. cadena completa.pem y archivo de clave privada.

por Red SSH con correr HTTPS soporte, la ruta al archivo del certificado (cadena completa.pem) y el archivo clave (archivo de clave privada) debería ser provisto.

Primero, asegúrese de que su firewall permita el puerto 4433 usó Red SSH por HTTPS Derecho de uso:

$ sudo ufw allow 4433
OR
$ sudo firewall-cmd --zone=public --add-port=4433/tcp

A partir de aquí, empieza Red SSH El servidor hace esto apuntándolo al certificado de nombre de dominio y los archivos clave:

$ sudo wssh --certfile="/etc/letsencrypt/live/your_domain_name/fullchain.pem" --keyfile="/etc/letsencrypt/live/your_domain_name/privkey.pem"

acceso Red SSH interfaz de navegador web a través de HTTPSimplementar:

OR

Paso 5: ejecute WebSSH detrás de un proxy inverso Nginx

En este paso, el usuario solicita Red SSH estarán Nginx (proxy inverso), para ello necesitas instalar Nginx y configurarlo como proxy inverso.

$ sudo apt install nginx             [On Debian, Ubuntu and Mint]
$ sudo yum install nginx             [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a www-servers/nginx   [On Gentoo Linux]
$ sudo apk add nginx                 [On Alpine Linux]
$ sudo pacman -S nginx               [On Arch Linux]
$ sudo zypper install nginx          [On OpenSUSE]    

A continuación, permita Nginx entrando al puerto 80 y 443 en su cortafuegos.

$ sudo ufw allow “Nginx Full”
Or
$ sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
$ sudo firewall-cmd --permanent --zone=public --add-port=443/tcp

crear Nginx configurado como Red SSH:

$ sudo nano /etc/nginx/sites-available/webssh

Pegue la siguiente información y reemplace tu nombre de dominio Utilice su nombre de dominio real:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name your_domain_name www.your_domain_name
    root /var/www/html;

    access_log /var/log/nginx/webssh.access.log;
    error_log /var/log/nginx/webssh.error.log;

    location / {
        proxy_pass ;
        proxy_http_version 1.1;
        proxy_read_timeout 300;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
    }

    listen 443 ssl;
    # RSA certificate
    ssl_certificate /etc/letsencrypt/live/your_domain_name/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain_name/privkey.pem;

    # For Redirecting non-https traffic to https
    if ($scheme != "https") {
        return 301 
    }
}

activación disco de red Archivo de configuración:

$ sudo ln -s /etc/nginx/sites-available/webssh /etc/nginx/sites-enabled/webssh

retirar Nginx Archivo de configuración predeterminado para evitar conflictos con los recién creados Nginx WebSSH Archivo de configuración:

$ sudo rm /etc/nginx/sites-enabled/default

verificar Nginx Configuración:

$ sudo nginx -t 

También puede eliminar el puerto 8888 y 4433 de las reglas de su cortafuegos porque Nginx Todo el tráfico será manejado.

reiniciar Red SSH no especificado Certificado y llave La ruta al archivo.

$ wssh 

Desde aquí, ahora puede acceder a su nombre de dominio directamente desde un navegador web sin especificar un puerto.

 

Paso 6: cree el archivo Systemd de WebSSH

Hasta ahora hemos automatizado todos los pasos excepto el inicio wssh El servidor utiliza el entorno de línea de comandos del sistema. Para automatizar este paso, necesitamos configurar un servicio en segundo plano.

Necesitamos crear un archivo de unidad y cerrar wssh ¿Sigue funcionando el servidor? Ctrl+C teclas del teclado

Crear Red SSH archivo de servicio:

$ sudo nano /etc/systemd/system/webssh.service

Agregue lo siguiente al archivo:

[Unit]
Description=WebSSH terminal interface
After=network.target

[Service]
User=www-data
Group=www-data
ExecStart=wssh

[Install]
WantedBy=multi-user.target

el valor es comienza la ejecución por debajo [Service] Se puede encontrar ejecutando:

$ whereis wssh

wssh: /home/linuxbrew/.linuxbrew/bin/wssh

En el caso anterior, el valor ingresado sería:

[Service]
User=www-data
Group=www-data
ExecStart=/home/linuxbrew/.linuxbrew/bin/wssh

Ahora podemos iniciar y habilitar Red SSH Utilice los siguientes comandos:

$ sudo systemctl start webssh
$ sudo systemctl enable webssh
$ sudo systemctl status webssh
Compruebe WebSSH en Linux
Compruebe WebSSH en Linux

Vuelva a cargar la URL del dominio cada vez (http://su_nombre_de_dominio)puedes usar fresco Red SSH con conversación Red SSH y Nginx Se ejecuta en segundo plano.

Red SSH Le brinda la flexibilidad de acceder y administrar fácilmente sus máquinas remotas desde la comodidad de un navegador web moderno y seguro.

LEER  Controle otras PC enviando un solo enlace

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba