Qué es y para qué sirve el SSH

Qué es y para qué sirve el SSH

Javier Jiménez

SSH son las siglas de Secure Shell. Es un protocolo que tiene como función ofrecer acceso remoto a un servidor. La principal peculiaridad es que este acceso es seguro, ya que toda la información va cifrada. Esto evita que pueda filtrarse y que un tercero pueda ver esos datos. Vamos a explicar en qué consiste este protocolo, cómo funciona y también hablaremos de cómo podemos utilizarlo en Windows.

 

En qué consiste

Es uno de los protocolos que tenemos para conectarnos de forma remota a un servidor. Está disponible para Linux y macOS, además de poder utilizar un cliente en Windows. Básicamente consiste en poder gestionar un servidor de forma remota, pero además hacerlo con seguridad.

SSH utiliza un sistema de autenticación, lo que va a aportar esa seguridad que mencionamos. Podremos comunicar dos equipos entre sí, de forma remota, y esa comunicación va a estar cifrada. Por ejemplo, se utiliza para entrar en un ordenador de forma remota y utilizar para ello un nombre de usuario y contraseña.

Funciona de forma similar al protocolo Telnet, pero SSH apareció como una solución cifrada, para mantener la seguridad y evitar problemas. Se basa en el cifrado de 128 bits, lo que garantiza una protección fuerte y hace que sea realmente difícil que un intruso pueda descifrar y leer los datos que se envían o reciben. Telnet transfiere los datos en texto plano y eso es un problema.

 

Para qué se puede utilizar

Este protocolo permite diferentes acciones, entre ellas, conectarte a un servidor de manera remota y, lo mejor de todo, de forma segura. Aunque esto es solo una de las distintas opciones que ofrece la opción de utilizar el protocolo SSH.

Y regresando a la seguridad, usar SSH no solo es bueno, sino que también es un hecho relevante. Especialmente si se quiere utilizar una conexión cifrada. De lo contrario, cualquier usuario puede llegar a tener la opción de interceptar esa transmisión de datos, por lo que pondrías en juego tu información personal, como usuarios, contraseñas, datos bancarios, etc.

Para que puedas tener una idea más clara de para qué sirve, aquí puedes encontrar las acciones más comunes que se pueden realizar a través de este protocolo en particular:

 

Conectar remotamente a un servidor

El uso más importante del protocolo SSH es el de conectarnos de forma remota a un servidor. Esto puede ser de forma gráfica, como sería un programa en Windows, pero también a través de la terminal, como por ejemplo en Linux.

Siempre vamos a tener que utilizar el nombre de usuario y contraseña correspondiente, ya que este protocolo requiere autenticación. Esto es lo que nos permitirá acceder de forma remota a un servidor y poder controlarlo o llevar a cabo diferentes acciones sin necesidad de estar físicamente delante.

Servidor SSH

 

Actualizar un dispositivo o realizar cambios

De forma remota y a través de SSH vamos a poder actualizar un dispositivo. Por ejemplo, podemos acceder a un NAS para actualizar a una nueva versión del firmware y enviar los archivos que sean necesarios para ello.

También podremos realizar cambios en la configuración de forma remota. Por ejemplo, instalar una aplicación o incluso reiniciar el dispositivo si hubiera algún error. Todo ello, una vez más, sin necesidad de estar físicamente delante de ese dispositivo.

 

Modificar o copiar archivos

También podremos enviar archivos de un equipo a otro a través del protocolo SSH. Esto significa que podremos estar trabajando desde un ordenador, por ejemplo, y posteriormente subir esos archivos a un servidor mediante este protocolo.

De la misma manera, podemos acceder a un servidor y modificar los archivos que ya hay. Esto evita que tengamos que descargar los archivos, modificarlos y posteriormente volverlos a enviar. Lo que hacemos es modificarlos directamente en el servidor.

 

Transferencia de archivos segura

SSH no solo se limita al acceso remoto, sino que también ofrece un protocolo específico para la transferencia segura de archivos, conocido como SFTP. Este protocolo proporciona una capa adicional de seguridad en comparación con los métodos tradicionales como FTP, ya que toda la comunicación, incluida la autenticación y la transferencia de datos, está cifrada. Esto asegura que la información sensible, como nombres de usuario y contraseñas, esté protegida durante la transmisión.

La principal ventaja de SFTP es su capacidad para transferir archivos de manera segura a través de conexiones encriptadas. Al utilizar el mismo mecanismo de autenticación y seguridad que SSH, SFTP garantiza la confidencialidad e integridad de los datos, convirtiéndose en una opción preferida para la transferencia de archivos en entornos donde la seguridad es primordial. Además, SFTP suele ser compatible con firewalls, ya que utiliza el mismo puerto que SSH.

 

Gestión de dispositivos en red

Muchos administradores de red utilizan SSH para acceder y administrar dispositivos de red, como routers y switches, de manera segura.

La gestión segura de dispositivos de red es una parte fundamental en entornos de red y SSH tiene un papel crucial en este tema. Los administradores de red utilizan SSH para acceder y administrar dispositivos de manera remota y segura. La clave de esta función está en la capacidad de SSH para proporcionar una conexión cifrada, lo que garantiza que la información crítica transmitida entre el administrador y el dispositivo de la red esté protegida contra posibles amenazas.

El uso de SSH en la gestión de dispositivos de red también permite a los administradores realizar tareas de configuración, monitoreo y resolución de problemas de manera eficiente. La encriptación de extremo a extremo proporcionada por SSH asegura que los comandos y la información confidencial no sean vulnerables a ataques de interceptación, lo que es muy importante para mantener la integridad y la seguridad de la infraestructura de la red.

 

Seguridad del protocolo SSH

Una de las grandes ventajas del protocolo SSH a diferencia de sus antecesores, es la transferencia de archivos de forma segura entre el host y el servidor. Y para ello tenemos tres formas de cifrar los datos. Estas son el cifrado simétrico, asimétrico y el hashing:

 

Cifrado Simétrico

En esta forma se utiliza una clave, la cual es secreta. Su función es cifrar y a su vez descifrar el contenido de un mensaje para el cliente y para el host. Por lo cual, cualquiera que tenga dicha clave, puede ver el contenido. También es conocido por clave compartida o cifrado secreto compartido.

Puede parecer que se trata de un mecanismo no seguro, pero lo cierto es que, todo lo contrario, pues la clave no es transmitida entre el cliente y el host. En su defecto, los dos equipos comparten datos públicos y luego los manipulan para realizar un cálculo independiente que da como resultado la clave secreta.

 

Cifrado Asimétrico

Este caso es el contrario del anterior, y no solo por el nombre. Aquí se utilizan dos claves, una pública y otra privada. Estas forman lo que se le llama un par de claves. En primer lugar, la clave pública se distribuye entre los equipos de forma abierta. Siendo una clave que se puede calcular como vimos en el caso anterior. Luego tenemos la clave privada, la cual siempre permanece en privado, y es lo que hace de esta conexión más segura. Por lo cual ningún tercero puede conocerla.

Por otro lado, hay que tener en cuenta que este tipo de cifrado no se usa para llegar a cifrar toda la sesión SSH. En este caso, por más que la idea general sea que es así, se usa durante el algoritmo de intercambios de claves de cifrado simétrico. Hay que llegar hasta el punto en el que se establece una comunicación simétrica que sea segura, para que luego el servidor use la clave pública de los clientes con tal de transmitirlas al cliente para su comprobación. De esta forma, si después el cliente recibe el contenido de manera correcta, ya se puede decir que cuenta con la clave privada que es la necesaria para la conexión. Por lo que, en ese mismo momento, arranca la sesión SSH.

 

Hashing

De primeras, hay que tener claro que los mensajes que se cifran para por el algoritmo conocido como ‘hash‘. Eso es lo primero, ya que este crear un valor alfanumérico para cada mensaje. Esto mismo nos lleva a que esta difiere de las dos anteriores.

Por tanto, con el hashing se genera un valor único de longitud fija, y se utiliza para cada entrada que no muestra una tendencia clara para que se pueda explotar. Esto lo hace irreversible. Este genera una clave hash criptográfica, y compara su valor para verificar si se poseen los accesos correctos.

 

¿Cómo es de seguro?

Ahora que ya conoces los tipos de cifrado que pueden llevarse a cabo con los SSH, podemos ver si es algo que influye directamente en la seguridad de este servicio. La seguridad del SSH, está basada en el uso de claves públicas y privadas para poder autenticar a los usuarios. Y así poder establecer el cifrado en la comunicación entre ambos. Y lo cierto, es que de forma generalizada el protocolo SSH es considerado muy seguro. El cifrado de extremo a extremo que se utiliza para proteger esta comunicación entre dos sistemas de posibles atacantes, es bastante eficaz. Sin duda, es mucho más seguro que utilizar usuarios y contraseñas más convencionales.

En cambio, como cualquier protocolo, no estamos ante algo perfecto. Este no es infalible, y siempre tendremos algunos riesgos potenciales que debemos considerar. El primero, es que, si la clave privada se llega a perder o es filtrada, puede comprometer gravemente la seguridad de la conexión SSH. Por otro lado, todo debe estar correctamente actualizado, ya que así podremos tratar de poner solución a posibles vulnerabilidades que los atacantes suelen aprovechar. Ante todo, debemos tener en cuenta que el SSH solo puede proteger la comunicación entre los dos sistemas, pero no proporciona protección para ataques que no tengan que ver con esta comunicación. Para ello, lo mejor que podemos hacer es implementar herramientas de seguridad que nos protejan de esas amenazas que no tienen que ver con el SSH.

En definitiva, estamos ante una herramienta muy segura, y que es ampliamente utilizada en el mundo de la informática para establecer comunicaciones. Pero esto no quita de que sea necesario utilizar otras herramientas de seguridad en los equipos. También se debe hacer una correcta implementación del SSH, puesto que su configuración es importante para la estrategia de seguridad que va a seguir. Y esto se puede aplicar tanto a usuarios, como a empresas que les quieran dar uso.

 

Cómo funciona SSH

Pero, ¿cómo funciona exactamente SSH? Hay que mencionar que necesita tres puntos indispensables: usuario, puerto y servidor. Esto es lo que va a permitir establecer una conexión entre servidores y poder hacer todo lo que hemos mencionado.

El puerto SSH estándar asignado es el TCP 22. No obstante, ese puerto siempre puede ser cambiado si queremos. El cliente SSH va a contactar con el servidor para iniciar la conexión. Ese servidor está escuchando a través del puerto 22 o el que se le haya asignado. Posteriormente el servidor va a enviar la clave pública y comienzan a organizar los parámetros y abrir un canal seguro. El cliente inicia sesión para conectarse a ese servidor.

El servidor podría ser por ejemplo un dominio web o una dirección IP. El usuario sería el nombre, como puede ser root o administrador.

En cuanto al cifrado SSH, hay de diferentes tipos. Por un lado, está el cifrado simétrico, que es el más popular, en el que utiliza una clave secreta que va a ser usada tanto al cifrar como al descifrar la conexión. Esa clave es única.

Por otra parte, está el cifrado asimétrico, que en esta ocasión utiliza dos claves diferentes. Una clave es pública y la otra privada y la información solo se puede obtener si se conoce esta última clave.

Una última opción de cifrado es lo que se conoce como hash o hashing. Esto se consigue al convertir esa información en una serie de datos que son únicos.

 

Cómo usar SSH en Windows

Hay que tener en cuenta que los sistemas operativos de Linux y macOS ya traen incorporado SSH. Podemos utilizar la línea de comandos para acceder a un servidor desde Ubuntu, por ejemplo. Pero también vamos a poder usarlo en Windows. Podremos instalar programas y aprovechar el funcionamiento de este protocolo, aunque habrá que habilitarlo en el sistema.

Para ello tendremos que ir a Inicio, escribimos Servicios y lo abrimos. Allí nos debería de aparecer OpenSSH Server. En el caso de que no sea así, tendremos que habilitarlo. Tendremos que ir a Configuración, entrar en Aplicaciones, Características opcionales y Agregar una característica. Tendremos que pinchar y darle a Instalar.

Agregar el servidor OpenSSH en Windows

Ya sea que lo hayamos tenido que instalar o ya lo tengamos, tendremos que ir a Servicios y pinchar en OpenSSH Server y hace clic con el segundo botón. Tendremos que pinchar en Iniciar, aunque también podemos configurarlo para que se inicie siempre con Windows.

Iniciar SSH en Windows

Una vez tengamos esto, vamos a PowerShell y, con permisos de administrador, tenemos habilitar el puerto de escucha y para ello hay que ejecutar el siguiente código.

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Service sshd -Enabled True -Direction Inbound -Protocol TCP -Action Allow -Profile Domain

Ya podremos acceder a este ordenador mediante el protocolo SSH. Lo siguiente será utilizar un programa para tal efecto. El más utilizado en Windows es Putty, que podremos descargar e instalar de forma gratuita.

En definitiva, el protocolo SSH es muy útil para poder acceder de forma remota a un equipo y además de forma segura. Es una alternativa a Telnet, mejorando notablemente la seguridad, y que podemos utilizar en nuestro sistema Windows. Ofrece diferentes usos, como es el poder enviar archivos, modificarlos directamente en el servidor, actualizar un equipo, etc.

¡Sé el primero en comentar!