En el mundo actual, la capacidad de acceder a los recursos de tu trabajo de forma remota es esencial. Este tutorial te guiará a través del proceso de conexión a la red de tu trabajo, utilizando herramientas como SSH y Wake-on-LAN para acceder y gestionar un servidor remoto.

Acceso a la Red de tu Trabajo

Para conectarse a la red de tu trabajo, te solicitará un usuario y contraseña. Una vez que lo recibas, lo podrás activar pasadas 24 horas.

Trabajo Remoto con SSH

La idea es tener todo en tu Laptop. Tener archivos, clases, códigos, etc. Pero si necesitas entrenar algo potente o dejar entrenando algo y dejar mi laptop disponible para hacer mis cosas puedo hacerlo. Para ello mi idea es dejar a J.A.R.V.I.S como un servidor remoto, lo enciendo sólo cuando lo necesito y puedo apagarlo de manera remota o dejarlo programado para su apagado. Para ello entonces utilizo SSH.

SSH es un protocolo de traspaso de datos entre un cliente (en este caso mi Laptop) y un servidor (J.A.R.V.I.S). En este caso yo sólo envío comandos del cliente al servidor, lo cual es bastante rápido pero la ejecución se realiza en el servidor, el cual tiene más poder que mi Laptop. De esa manera no tengo que desconectar nada, sólo trabajo en mi Laptop y a J.A.R.V.I.S se le ocupa a través del terminal, o incluso un Jupyter Lab o VS Code Remoto.

Configuración del Servidor (J.A.R.V.I.S)

  1. Al correr esto, ssh comenzará a correr de manera automática cada vez que J.A.R.V.I.S encienda.
  2. Si aparece algo así como Active: active (running) : está perfecto.
  3. Luego es necesario correr el siguiente comando y rescatar la IP para conectarse:

En este caso la ip que arroja es: 192.168.0.59. Esto es sólo una IP local, para efectos de mostrar cómo obtener el valor. Esta es toda la configuración en el lado del Servidor.

Configuración del Cliente (Laptop)

Acá no hay mucho que hacer ya que Ubuntu ya viene con un cliente instalado para SSH. Hay que poner yes sin miedo.

Entonces cuando uno ingresa a ssh, se verá algo así (tapando el verdadero IP de mi servidor):

Dado que en ambas maquinas instalé Oh my ZSH y Powerline10k les dí una configuración distinta, por lo que inmediatamente se nota que cambié de ambiente. Además Powerline10k indica que ahora me conecté a J.A.R.V.I.S.

Integración con Jupyter Lab y VS Code

El tema es que todo esto nos tiene que llevar a la productividad. Mis dos herramientas principales para codear son Jupyter Lab y VS Code.

Jupyter Lab en SSH

Si yo intento abrir Jupyter Lab en SSH, no va a pasar nada. Eso es porque SSH no tiene una interfaz gráfica que me permita ingresar al Jupyter Lab que se inicializa en J.A.R.V.I.S. Esto porque Jupyter Lab se inicia en localhost remoto, no en el localhost del cliente. Si quiero acceder al localhost del remoto tengo que hacer algo que se conoce como SSH Tunneling o Port Forwarding.

Una vez habilitado el puerto, puedo dirigirme al localhost:5678 en mi Laptop y abrir Jupyter Lab. El tema es que para el primer inicio se solictará un Token y una clave. El token puede ser obtenido del URL generado al iniciar Jupyter Lab, y la clave se debe definir para futuros ingresos.

VS Code en SSH

VS Code es bastante más sencillo. Si es que ya tenemos todo lo anterior configurado, sólo es necesario bajar la extensión Remote SSH, esto permite abrir una nueva sesión de VS Code desde J.A.R.V.I.S.

Para ello presiono Ctrl+Shift+P y busco Remote-SSH: Connect to Host.... El resultado debería mostrar algo así, obviamente utilizando la información de su conexión.

Apagado Remoto

Finalmente cuando necesito apagar a J.A.R.V.I.S:

Wake-on-LAN (WOL)

Todo esto funciona muy bien cuando estoy sentado al lado de mi Servidor ya que tengo que encenderlo. Pero, ¿qué pasa si estoy en otra parte y necesito ocupar a J.A.R.V.I.S y lo dejé apagado? Para eso existe el Wake-on-LAN.

TAG: #Trabajo

Lea también: