El SSH o Secure Shell es un protocolo administrativo que nos permite gestionar y administrar nuestros servidores de forma remota. Este utiliza un sistema criptográfico para asegurarse que todas las comunicaciones entre usuario y servidor estén cifradas, resguardando los datos de la mejor forma posible.
El Secure Shell es muy útil para la gestión y optimización de servidores virtuales privados (VPS). Es por ello que al contratar uno servicio de alojamiento VPS vamos a tener que aprender a utilizarlo. SSH está disponible en las principales plataformas como lo son Windows, Linux y MacOS. En las dos últimas mencionadas podemos acceder desde la ventana del dispositivo, mientras que para operar en Windows necesitaremos un cliente SSH como PuTTY. A continuación te enseñamos a utilizar SSH en los tres sistemas operativos.
NOTA: No dudes en consultarnos, si necesitas contratar un servidor administrado 100%
Aprende a crear un túnel SSH con PuTTY
Hacer SSH tuneling es una técnica que no sólo se puede hacer con PuTTY, hay otros clientes para ello, pero al ser este uno de los más utilizados, hemos decidido explicar el proceso. Tenemos que ingresar a PuTTY en Windows y seguir los siguientes pasos:
- Cargar puerta de entrada: Tenemos que crear una puerta de entrada SSH. Para ello vamos a la lista Saved Sessions en la sección Sessions y seleccionamos la opción Load.
- Configurando túnel: la configuración del túnel es bastante sencilla. Tenemos que ingresar en la sección Connection > SSH > Tunnels en donde tenemos que colocar la dirección SSH como destino (Destination).
- Abrir el túnel: Ahora sólo queda seleccionar Add y posteriormente en Open para abrir nuestro túnel SSH y poder utilizarlo en Windows.
Cómo funciona SSH
Para despejar dudas, hay que decir que el SSH no es un software, sino un protocolo, de modo que no tenemos que instalar ningún programa. Un comando de clave SSH indica a un equipo que deseamos abrir una conexión remota cifrada y segura. Dicho comando consta de tres partes: ssh {user}@{host}. El {user} representa la cuenta a la cual deseamos acceder mientras que el {host} representa el equipo al cual deseamos ingresar. Este último puede ser representado perfectamente por una dirección IP.
Una vez ejecutados estos tres comandos con sus respectivos datos, se nos pedirá que ingresemos las credenciales del usuario al que deseamos ingresar. Si dichas credenciales son correctas, entraremos a la interfaz de SSH.
La ventana de SSH nos permite asegurar las comunicaciones entre un equipo y un servidor remoto. En este caso, el {user} sería el equipo mientras que el {host} es el servidor al cual se desea ingresar. El SSH encripta y resguarda toda la información entre ambos. Para ello, utiliza tres tecnologías de cifrado; cifrado cimetrico, cifrado asimétrico y hashing.
Cifrado Simétrico
El cifrado cimétrico es una de las formas de encriptación que nos ofrece SSH. Se basa en la utilización de una clave secreta tanto para el cifrado como el descifrado, de modo que usuario y host la necesitarán para descifrar el mensaje.
El cifrado simétrico hace que usuario y host compartan una misma clave para descifrar sus mensajes, aunque en ocasiones se implementan dos claves que son fáciles de determinar una a partir de la otra.
El cifrado simétrico es utilizado para todas las comunicaciones con SSH, asegurándose que la clave o claves de acceso sólo sean conocidas por usuario y host, sin posibilidad que la vea un tercero. Lo que garantiza la seguridad del proceso es un algoritmo de intercambio de claves. Este algoritmo permite que las claves sean generadas fuera de la red, de modo que incluso si otro equipo ingresa en los datos compartidos de la red, jamás será capaz de obtener la clave porque esta se encuentra fuera.
Existen varios cifrados simétricos. Antes de una conexión entre host y usuario, estos determinan que cifra utilizarán según una lista de publicados ordenados en orden preferencial. Generalmente se elige el cifrado preferido de dicha lista se elegirá como cifrado bidireccional de las comunicaciones.
Cifrado Asimétrico
A diferencia del cifrado simétrico, las cifras asimétricas utilizan dos claves de acceso estrechamente relacionadas. Ambas se conocen como clave pública y clave privada; la primera puede ser visualizada por cualquier usuario, mientras que la segunda sólo es vista por el sistema. Lo que hace fuerte este encriptado es que ambas claves son únicas y una es derivada de la otra, de modo que para obtener acceso a las comunicaciones es necesario contar con ambas claves; un mensaje emitido desde la clave pública de una máquina sólo puede ser descifrado por su clave privada.
Para asegurarse de no ser engañado, el sistema utiliza un algoritmo que analiza y compara ambas claves para asegurarse de que la clave privada sea la indicada para la clave pública de turno. Sin embargo, la relación entre ambas claves es bastante compleja, haciendo casi imposible calcular matemáticamente la clave privada a partir de la clave pública.
En SSH no es un cifrado utilizado para todo. De hecho sólo es puesta en marcha al momento de intercambiar claves de una cifra simétrica; al iniciar una conexión el sistema utiliza claves públicas-privadas temporales durante el proceso de creación e intercambio de claves compartidas.
Hashing
El hashing es utilizado en SSh para autenticar mensajes y asegurarse de que los intercambiados no puedan ser modificados. A diferencia de los cifrados criptográficos mencionados anteriormente, el hashing se emplea con la intención de que nadie pueda conocer la clave. Lo que hace este sistema es generar un valor de una longitud fija para cada entrada lo cual lo hace prácticamente imposible de revertir una vez sea determinado.
Cada entrada tiene un hash único y casi indescifrable. La persona que desee enviar un mensaje en la red deberá determinar el valor del hash el cual será comprobado posteriormente por el cliente para asegurarse de que el valor indicado sea el correcto.
¿Cómo funciona el Secure Shell con estos cifrados?
Ahora que entiendes cómo funcionan las diferentes técnicas de cifrado, te resultará más fácil comprender el modelo cliente servidor con el cual opera el sistema SSH.
De manera predeterminada, el SSH funciona en el puerto TCP 22. En este protocolo, el host escucha en dicho puerto para iniciar las comunicaciones y autenticar el cliente, asegurándose de que la apertura dela conexión sea posible sólo si la verificación es exitosa.
Por su parte, el cliente debe iniciar la conexión mediante el protocolo TCP, lo cual genera que entre en acción el cifrado simétrico al verificar que la identidad que refleja el servidor sea la misma que la del cliente. Una vez confirmadas dichas credenciales, el servidor inicia el proceso de conexión el cual tiene dos etapas; la negociación de cifrado de sesión, en la que básicamente elijen que protocolo de cifrado será utilizado, y la autenticación del usuario.
Gracias por leer
via GIPHY
Ahora que conoces de manera subyacente cómo funciona SSH podrás profundizar más en cómo es la seguridad de este sistema. De este modo serán mucho más seguras las comunicaciones con un servidor remoto.