En Internet existen diversos protocolos de internet para acceder a sus distintos servicios y características. Sin duda, el protocolo HTTP es el más conocido, porque es el que nos permite realizar conexiones para recibir páginas web profesionales, pero hay muchos otros protocolos que también son esenciales para el funcionamiento de la Red.
En este artículo, te explicaremos qué es el protocolo SSH que usamos para conectarnos de manera segura para la administración de servidores.
SSH son las siglas de Secure Shell y es un protocolo de red destinado principalmente a la conexión con máquinas a las que accedemos por línea de comandos. En otras palabras, con SSH podemos conectarnos con servidores usando la red Internet como vía para las comunicaciones. Esto es algo en lo que profundizamos en Comandos básicos para administrar servidores Linux por SSH.
Su característica más importante es que siempre se realiza de manera segura. Gracias a SSH, la información que viaja por la Red no es legible por terceras personas y, para ello, todo el tránsito de la información se realiza encriptando los datos. Esto es importante para garantizar que el tráfico de datos se realice siempre de manera confidencial y que nadie sea capaz de escuchar el canal de comunicaciones para robar información o claves de acceso a los servidores.
El puerto predeterminado para las conexiones SSH es el 22.
El protocolo SSH utiliza una arquitectura cliente-servidor para establecer conexiones seguras. Aquí hay un resumen de cómo funciona:
Cliente SSH: Es la aplicación que utilizas para conectarte a un servidor remoto. Puedes utilizar diferentes clientes SSH, como OpenSSH en sistemas Linux o PuTTY en Windows.
Servidor SSH: Se ejecuta en el servidor remoto al que deseas acceder. Este servidor está configurado para aceptar conexiones SSH y autenticar a los usuarios.
Autenticación: Cuando intentas conectarte a un servidor remoto, el cliente SSH y el servidor SSH inician un proceso de autenticación. Esto generalmente implica el uso de un nombre de usuario y una contraseña (o una clave SSH). La clave SSH es una forma más segura de autenticación y se recomienda encarecidamente su uso.
Debido a su seguridad, SSH es el modo preferido para la realización de conexión con servidores que necesitamos administrar. La diferencia con respecto a otros protocolos más antiguos como Telnet es que el protocolo SSH siempre es seguro.
Sin embargo, aprovechando la seguridad de las comunicaciones, también se utiliza para otros objetivos como:
Transferencia de Archivos Segura: Permite transferir archivos de forma segura entre sistemas locales y remotos utilizando herramientas como el comando SCP o SFTP.
Creación de Túneles de Red: SSH se utiliza para crear túneles de datos seguros que redirigen el tráfico de red a través de conexiones SSH, lo que puede ayudar a proteger la comunicación en redes no seguras. Se usan en sistemas como Ngrok, un software que permite a los desarrolladores exponer de manera remota los trabajos, tal como los tienen funcionando en su servidor de desarrollo local.
El protocolo SSH utiliza diferentes técnicas de seguridad para proteger sus conexiones.
El cifrado simétrico es una técnica en la que se utiliza la misma clave tanto para cifrar como para descifrar los datos entre el cliente y el servidor, lo que garantiza su seguridad y confidencialidad.
En cambio, el cifrado asimétrico utiliza dos claves: una pública y otra privada; en otras palabras, se hace uso de una clave para el cifrado y otra para el descifrado, verificando así la identidad tanto del cliente como la del servidor.
Cuando un cliente se conecta a un servidor, utiliza la clave pública del servidor para cifrar un mensaje que sólo puede descifrarse con la clave privada correspondiente.
El hashing es una técnica que se utiliza para verificar la integridad de los datos transmitidos. El algoritmo toma un conjunto de datos y genera un valor hash único, que es una representación de los datos originales.
Este valor se envía junto con los datos a través de la conexión SSH. En el extremo receptor, los datos se vuelven a calcular y se genera un nuevo valor hash.
Si coincide con el recibido, se confirma que los datos no se han modificado.
Si no coincide, los datos podrían haber sido alterados y se considera una posible amenaza de seguridad.
Para la realización de conexiones seguras con SSH usamos el propio programa de terminal de línea de comandos que dispongamos en nuestro ordenador local. En Windows, generalmente se recomienda el uso de terminales modernos como Windows Terminal o PowerShell, entre otros.
El comando para realizar la conexión para la administración remota de servidores se llama igual que el mismo protocolo: SSH. Para usar este comando necesitamos indicar tanto el usuario como la dirección IP o el nombre del host del servidor al que deseamos conectarnos.