En el mundo de la administración remota, SSH es una herramienta esencial. Ya sea para tareas de mantenimiento, gestión de servidores o transferencia de archivos, SSH se ha convertido en el estándar de facto para acceder y administrar dispositivos a distancia.
Por eso, en este artículo, vamos a explorar sus principales beneficios y a contarte todo lo que debes saber sobre esta forma de hacer las cosas.
¿Qué es SSH y para qué sirve?
Con su encriptación segura y versatilidad, SSH permite controlar sistemas y transferir datos de manera eficiente desde cualquier punto del mundo. Esto permite hacer cambios en tu página web sin estar ni remotamente cerca del servidor, aunque para ello debes conocer la herramienta al dedillo para saber cómo utilizarla y qué puedes esperar utilizándola.
SSH (Secure Shell) es un protocolo de red que permite una comunicación segura y cifrada entre dos sistemas, como un cliente y un servidor remoto.
Proporciona autentificación, confidencialidad e integridad de los datos transmitidos, lo que lo convierte en una herramienta vital para la administración remota de sistemas a día de hoy.
¿Cómo funciona el protocolo SSH?
A continuación, te explicamos cómo funciona Secure Shell:
- SSH utiliza una arquitectura cliente-servidor, donde el cliente SSH establece una conexión segura con el servidor SSH.
- Durante el proceso de conexión, se realiza un intercambio de claves criptográficas, para establecer una conexión segura.
- Una vez establecida la conexión, SSH permite la ejecución de comandos remotos, transferencia de archivos y reenvío de puertos, entre otras funcionalidades.
El funcionamiento de SSH se basa en el uso de algoritmos criptográficos, como cifrado asimétrico y simétrico, para garantizar la seguridad de la comunicación. Es más, el proceso de autentificación se realiza mediante el intercambio de claves públicas y privadas.
Además, SSH utiliza técnicas de compresión y verificación de integridad de los datos transmitidos, para asegurar la confidencialidad y la integridad de la información, por lo que todos los datos privados que intercambiemos quedarán siempre a buen recaudo, lejos de posibles robos o accesos ilícitos.
Funciones y aplicaciones de SSH
Las funcionalidades del protocolo SSH abarcan una amplia gama de usos para la administración remota y la transferencia segura de datos:
- Acceso remoto seguro: SSH permite conectarse y administrar sistemas de forma remota a través de una conexión encriptada.
- Ejecución de comandos remotos: También, facilita el ejecutar comandos en un sistema remoto como si estuvieras en frente de él.
- Transferencia de archivos segura: Este protocolo da acceso a la transferencia segura de archivos entre sistemas locales y remotos.
- Reenvío de puertos: Facilita la redirección segura del tráfico de red desde un sistema local hacia otro sistema remoto.
- Túneles de SOCKS: SSH proporciona la capacidad de crear un proxy SOCKS a través de la conexión SSH para enrutar el tráfico de red de manera segura.
- Administración de servidores: Esta herramienta también permite la gestión y configuración de servidores de forma remota, facilitando tareas como la instalación de software, la monitorización y la resolución de problemas.
- Acceso seguro a bases de datos: Permite acceder y administrar bases de datos de forma segura a través de una conexión SSH.
- Uso en scripts y automatización: SSH puede ser utilizado en scripts y procesos automatizados para realizar tareas repetitivas de forma segura y eficiente.
Conexión SSH: Cómo establecer una sesión segura
Crear una conexión SSH permite acceder de forma segura a un servidor remoto. Es posible usar puertos SSH en distintos sistemas operativos, pero existen diferencias importantes que hay que conocer.
- Linux y MacOS: Estos SO cuentan con soporte SSH integrado, lo que permite acceder fácilmente mediante la terminal para usar Secure Shell en Linux u ordenadores Mac. Solo necesitas el comando SSH ‘usuario@host’, cambiando ‘usuario’ y ‘host’ por los datos del servidor. Así, al ejecutar el comando, se iniciará la conexión, aunque si es la primera vez que lo haces se te pedirá confirmar la autenticidad del host y proporcionar una contraseña.
- Windows: En las versiones más recientes del sistema operativo de Microsoft es posible usar PowerShell, que soporta el comando SSH, aunque también puedes recurrir al cliente SSH llamado PuTTY. Para utilizarlo, solo tienes que introducir la dirección IP o el nombre de host y elegir el puerto de conexión (por defecto, el puerto 22). Tras iniciar la sesión, el proceso con Secure Shell en Windows es parecido al de otros sistemas, pero con una interfaz gráfica en vez de una terminal, lo que a su vez lo hace más accesible.
¿Cómo proteger una conexión SSH?
Para proteger una conexión de este tipo es recomendable utilizar claves SSH en lugar de contraseñas. Esto aumenta la seguridad, ya que solicita una clave privada que solo tú poseerás.
Además, podrás limitar el acceso por IP y cambiar el puerto de conexión por defecto, acciones que te ayudarán a reducir el riesgo de sufrir ataques no autorizados.
Comandos SSH esenciales para administradores
Las características de SSH hacen que los administradores puedan utilizar ciertos comandos para gestionar servidores de forma mucho más eficiente y segura, ¡y los que te mostramos a continuación son algunos de los más comunes!
- SSH usuario@host: Conexión básica que permite acceder al servidor remoto desde la terminal.
- SCP: Herramienta que permite transferir archivos entre equipos de forma segura utilizando para ello el comando ‘scp archivo usuario@host:/ruta/destino’.
- SSH-keygen: Crea claves SSH públicas y privadas para autenticación, lo que contribuye a evitar el uso de contraseñas y aumenta el nivel de seguridad.
- SSH-add y SSH-agent: Administran claves SSH en la sesión activa, lo que permite el uso de varias de ellas sin necesidad de tener que volver a introducir contraseñas.
El uso de SSH es mucho más ágil e intuitivo si se utilizan comandos como estos, aunque como verás en los siguientes apartados, no son los únicos que te vendrá de maravilla conocer.
Los comandos SSH más comunes
La administración remota de sistemas se ha vuelto esencial en el mundo de la tecnología moderna. Por eso, si estás buscando una forma segura y versátil de controlar sistemas a distancia, vamos a contarte cómo funciona el protocolo SSH (Secure Shell) y por qué es tu mejor aliado.
A continuación, vamos a mostrarte algunos de los comandos SSH más utilizados y cómo te permitirán acceder, transferir archivos y ejecutar tareas en máquinas remotas de manera eficiente. Si para el uso de comandos te resulta más sencillo usar inicialmente un editor de código, te dejamos aquí algunos de los más populares.
SSH -C
El comando SSH -C es una potente opción de compresión disponible en SSH. Al utilizar esta opción, SSH comprimirá los datos antes de enviarlos a través de la red, lo que puede resultar en una transmisión más rápida, especialmente en conexiones de red lentas o con ancho de banda limitado.
Además de mejorar el rendimiento, SSH -C también puede reducir los costes de transferencia de datos, especialmente si estás utilizando servicios de alojamiento web con límites de ancho de banda. Esta función de compresión puede ser habilitada al establecer una conexión SSH utilizando el siguiente comando: ssh -C usuario@host.
SSH -X
El comando SSH -X habilita la funcionalidad de reenvío de X11 a través de SSH, lo que significa que puedes ejecutar aplicaciones gráficas en un servidor remoto y visualizarlas en tu máquina local.
SSH -X establece un canal seguro para transmitir los datos gráficos entre los sistemas, lo que te permite ejecutar programas con interfaz gráfica de usuario (GUI), sin necesidad de tener una pantalla física en el servidor remoto.
Esta capacidad resulta particularmente útil cuando administras servidores o máquinas virtuales sin una interfaz gráfica y necesitas acceder a herramientas gráficas específicas.
SSH -P
El comando SSH -P se utiliza para especificar un puerto personalizado al establecer una conexión SSH. Por defecto, SSH utiliza el puerto 22 para las conexiones, pero a veces es necesario cambiar este puerto por motivos de seguridad o configuración específica.
Al utilizar SSH -P, puedes indicar el número de puerto deseado después del comando SSH. Por ejemplo, para conectarte a un host remoto en el puerto 2222, utilizarías el siguiente comando: ssh -P 2222 usuario@host. Asegúrate de que el servidor SSH remoto esté configurado, para escuchar en el puerto especificado antes de utilizar esta opción.
SSH -W
El comando SSH -W se utiliza para establecer túneles TCP directos a través de una conexión SSH. Esta opción permite redirigir el tráfico de red desde una máquina local a una máquina remota, a través de una conexión SSH segura.
Puedes utilizar SSH -W para redirigir puertos, lo que es útil para acceder a servicios en una red interna a través de un servidor SSH externo. Por ejemplo, puedes redirigir el tráfico del puerto 8080 en tu máquina local al puerto 80 en un servidor remoto utilizando el comando: ssh -W localhost:8080 usuario@host.
SSH -R
El comando SSH -R establece reenvíos de puerto inversos a través de una conexión SSH. Es decir, gracias a él puedes redirigir el tráfico de red desde una máquina remota a una máquina local, a través de una conexión SSH segura.
SSH -R es útil cuando deseas exponer servicios locales de tu máquina a través de un servidor SSH remoto. Por ejemplo, si tienes un servidor web en tu máquina local y quieres que sea accesible desde el servidor SSH remoto, puedes utilizar el comando: ssh -R 8080:localhost:80 usuario@host, para redirigir el tráfico del puerto 8080 en el servidor remoto al puerto 80 de tu máquina local.
SSH -L
El comando SSH -L se utiliza para establecer un reenvío de puerto local a través de una conexión SSH. Gracias a ello, es posible redirigir el tráfico de red desde una máquina local a una máquina remota a través de una conexión segura.
SSH -L es útil cuando deseas acceder a servicios en una red remota a través de un servidor SSH, lo que resulta muy ventajoso en el alojamiento web porque permite acceder a servicios y recursos alojados en una red remota de forma segura y eficiente.
SSH -D
El comando SSH -D se utiliza para establecer un túnel SOCKS a través de una conexión SSH. Al utilizar SSH -D, puedes configurar un servidor proxy SOCKS en tu máquina local, que enruta el tráfico de red a través de la conexión SSH segura hacia una red remota.
Esta funcionalidad es útil cuando deseas ocultar tu ubicación real o acceder a contenido restringido geográficamente, hecho que hace que cada vez más VPN premiums la implementen. En términos de alojamiento web, SSH -D puede ofrecer ventajas al permitirte realizar pruebas de rendimiento, o acceder a recursos alojados en ubicaciones geográficas específicas, a través de un túnel seguro.
SSH -N -R
El comando SSH -N -R se utiliza para establecer un reenvío de puerto remoto sin abrir una sesión de shell en el servidor remoto. Esto significa que puedes redirigir el tráfico de red desde una máquina remota a una máquina local a través de una conexión SSH segura, pero sin necesidad de interactuar con el shell del servidor remoto.
El comando SSH -N -R es especialmente útil cuando deseas exponer servicios en tu máquina local a través de un servidor SSH remoto sin tener una interacción en el lado del servidor. Si nos centramos en el alojamiento web, esto te permite acceder y administrar recursos alojados en tu máquina local a través de una conexión segura y sin la necesidad de abrir una sesión de shell remota.
SSH -N -F -L
El comando SSH -N -F -L se utiliza para establecer un reenvío de puerto local sin abrir una sesión de shell en el servidor remoto, utilizando una configuración personalizada especificada en un archivo. SSH -N -F -L permite cargar una configuración de archivo (-F) que contiene los detalles del reenvío de puerto local (-L) que deseas establecer.
Esta opción resulta útil cuando tienes una configuración compleja o múltiples reenvíos de puerto que deseas utilizar. En el contexto del alojamiento web, SSH -N -F -L permite administrar y acceder a servicios y recursos de manera más eficiente al cargar y utilizar configuraciones personalizadas, simplificando el proceso de administración remota.
Ahora que sabes qué es SSH y cómo funciona, cada uno de sus principales comandos y para qué utilizarlos, debes saber que un buen alojamiento web puede influir en su disponibilidad y configuración. Es más, un alojamiento web de calidad como el de GoDaddy suele ofrecer acceso SSH como parte de sus servicios, lo que te permite administrar tu web de manera remota garantizando una conexión estable y segura en todo momento, ¡ponnos a prueba!
Túneles SSH y reenvío de puertos
Un túnel SSH permite crear un canal seguro de comunicación cifrada entre un cliente y un servidor SSH, por lo que es muy útil para acceder de forma segura a servicios internos de una red privada desde ubicaciones externas.
Para crear conexiones seguras de este tipo, puedes utilizar el reenvío de puertos locales y remotos. Gracias a esto, podrás redirigir el tráfico de un puerto en tu máquina a un puerto en un servidor remoto.
Por ejemplo, al ejecutar ‘ssh -L 8080:localhost:3306 usuario@host’, puedes acceder a una base de datos MySQL en el puerto 3306 del servidor remoto a través del puerto 8080 en tu ordenador, perfecto a la hora de trabajar con bases de datos de manera segura.
Por otro lado, el reenvío de puertos remotos permite que el servidor SSH redirija el tráfico desde un puerto específico hacia un ordenador en la red del cliente.
Ventajas y desventajas del protocolo SSH
El protocolo SSH ofrece un gran número de beneficios para la administración remota y la seguridad en conexiones, aunque a la vez también presenta algunos contras de los que conviene estar al tanto.
Estas son algunas de las ventajas del protocolo SSH que te vendrá bien conocer:
- SSH cifra todos los datos que se transmiten, protegiendo la información de posibles ataques.
- Este protocolo permite acceder y gestionar servidores de forma remota sin poner en riesgo su seguridad ni la de los datos que se almacenan en ellos.
- SSH está disponible en diferentes sistemas operativos, incluyendo Linux, Windows y MacOS.
- Además, una vez configurado, es fácil conectarse y realizar tareas de administración de servidores con esta herramienta.
En cuanto a sus principales desventajas, no dejes de lado las siguientes para poder anticiparte a ellas:
- La configuración y uso de SSH pueden ser complicadas para quienes no están familiarizados con terminales y comandos.
- No contar con medidas de seguridad extra puede dejar la conexión expuesta a ataques, ¡ten mucho cuidado con esto!
- Además, necesitarás proteger el acceso con autenticación fuerte, ya que las conexiones sin estas medidas pueden ser mucho más vulnerables.
Ahora que sabes qué es el protocolo SSH y cómo funciona, podrás empezar a utilizarlo en tu beneficio sin ningún tipo de problema. ¡Toda precaución es poca cuando hablamos de seguridad informática para tus proyectos!