Estableciendo conexión remota
Autor : Rodrigo Marinao Rivas
La capacidad de acceder y controlar recursos en servidores remotos es esencial para diversas actividades hidroinformáticas. Esta necesidad surge al trabajar en un entorno distribuido o al requerir acceso a recursos específicos alojados en un computador conectado a la red.
El principal desafío radica en cómo acceder de forma segura y eficiente a estos computadores, especialmente en el contexto de redes corporativas o cuando se manejan datos sensibles. Para enfrentar este reto es fundamental contar con tres herramientas básicas: VPN, SSH y Screen. Estas herramientas, usadas en conjunto, permiten establecer flujos de trabajo adecuados para majear infraestructura computacional. Veamos brevemente en qué consiste cada una y cómo, al funcionar en conjunto, facilitan la implementación de un caso práctico efectivo.
VPN (Virtual Private Network)
Una VPN establece una conexión segura hacia un servidor remoto desde un dispositivo ubicado en otra red local. Esta conexión segura es esencial para proteger la confidencialidad e integridad de los datos transmitidos entre ambos puntos. En un entorno académico o corporativo, una VPN se utiliza comúnmente para permitir que los estudiantes y/o empleados accedan de forma segura a la red interna de la empresa desde ubicaciones externas.
SSH (Secure Shell)
SSH proporciona una forma segura de acceder y administrar un servidor remoto a través de una conexión encriptada. Una vez que te has conectado al servidor a través de SSH, puedes ejecutar comandos en la terminal del servidor como si estuvieras físicamente presente en él. Esto es fundamental para realizar tareas de administración, configuración y ejecución de scripts en el servidor.
Los comandos SSH más comunes incluyen:
ssh usuario@servidor
: Inicia una sesión SSH en el servidor remoto.ssh -p puerto usuario@servidor
: Especifica un puerto personalizado para la conexión SSH.ssh-keygen
: Genera un par de claves pública y privada para autenticación SSH sin contraseña.ssh-copy-id usuario@servidor
: Copia la clave pública al servidor remoto para autenticación sin contraseña.
Screen
Screen es una herramienta que permite crear sesiones de terminal virtuales que persisten incluso después de cerrar la conexión SSH. Esto es útil cuando necesitas ejecutar un proceso que lleva tiempo o no quieres que se interrumpa si pierdes la conexión.
Algunos comandos útiles de Screen incluyen:
screen
: Crea una nueva sesión de Screen.screen -ls
: Muestra una lista de todas las sesiones de Screen activas.screen -r nombre_sesion
: Reconecta a una sesión de Screen existente.Ctrl + A, D
: Despega la sesión de Screen sin cerrarla.Ctrl + A, C
: Crea una nueva ventana dentro de la sesión de Screen.Ctrl + A, N
: Cambia a la siguiente ventana dentro de la sesión de Screen.Ctrl + A, P
: Cambia a la ventana anterior dentro de la sesión de Screen.
Con la combinación de VPN, SSH y Screen, puedes establecer una conexión remota segura y mantener procesos en ejecución en servidores remotos sin temor a interrupciones.
Ejemplo Práctico: Ejecución de Tarea en Servidor Remoto
Paso 1: Establecer Conexión VPN con FortiClient
Inicia FortiClient y establece una conexión VPN con el servidor remoto.
Paso 2: Conexión por SSH al Servidor Remoto
Abre la terminal en tu computadora y ejecuta el siguiente comando para conectarte al servidor:
ssh usuario@servidor_remoto
Paso 3: Crear y Utilizar una Sesión de Screen
Una vez conectado al servidor, crea una nueva sesión de Screen con un nombre personalizado:
screen -S mi_sesion
Ejecuta la tarea que deseas realizar dentro de la sesión de Screen. Por ejemplo:
python3 mi_script.py
Presiona Ctrl + A
, seguido de D
para despegarte de la sesión de Screen y dejar la tarea en ejecución en segundo plano.
Paso 4: Retomar la Sesión de Screen
Para retomar la sesión de Screen y verificar el estado de la tarea, reconéctate al servidor por SSH y ejecuta:
screen -r mi_sesion
Esto te llevará de vuelta a la sesión de Screen. Si la sesión estaba “detached”, significa que la sesión estaba en segundo plano pero la tarea sigue en ejecución. Si la sesión estaba “attached”, significa que estás interactuando activamente con la sesión de Screen y la tarea.
Conclusión
Utilizando una combinación de VPN, SSH y Screen, has logrado ejecutar una tarea en un servidor remoto de manera segura y eficiente, incluso si te desconectas de la red. Este enfoque te permite administrar recursos en servidores remotos de manera efectiva y sin interrupciones.