¿Qué es SSH y cómo funciona?

SSH es un protocolo de red seguro para acceder a equipos remotos en una red.

Las computadoras se comunican entre sí a través de redes. Por lo tanto, los investigadores de redes definieron un conjunto de reglas para comunicarse con otras máquinas y comenzaron a desarrollar protocolos como Telnet; usando eso, un usuario puede tomar el control de otra computadora.

Pero no son seguros, es decir, cualquier persona en medio de la red puede interceptar y leer los datos que se transfieren. A mediados de los 90, se introdujo un protocolo más seguro llamado ssh como un sucesor confiable del protocolo telnet.

Si es un desarrollador de software o un administrador de sistemas que trabaja en una industria, es posible que haya usado ssh, al menos una vez. Si no lo hizo, aprendamos ahora, ya que es una de las habilidades esenciales que debe conocer.

¿Qué es SSH?

SSH o Secure Shell o Secure Socket Shell es un protocolo de red que nos ayuda a acceder y comunicarnos de forma segura con máquinas remotas (principalmente servidores remotos).

Proporciona un cifrado sólido y los administradores y desarrolladores de redes lo utilizan ampliamente para administrar sistemas y aplicaciones remotas, ejecutar comandos, compartir archivos, etc.

Necesidad de SSH

SSH se creó en 1995 para resolver los problemas de seguridad que enfrentan los protocolos de acceso remoto no seguros como iniciar sesión, rsh, Telnet.

Ahora hablemos de Telnet, que significa Teletype Network desarrollado en 1969. Es una herramienta de línea de comandos simple que se ejecuta en su computadora para acceder a un servidor remoto (en cualquier lugar del mundo). Y envíe comandos para que se ejecuten en ese servidor, como si estuviera sentado justo frente al servidor remoto (incluso a millas de distancia del servidor). Telnet transmite y recibe mensajes en texto sin formato a través de una red.

Los comandos que ejecutaría podrían ser ejecutar programas, crear directorios, crear/eliminar/transferir archivos, iniciar/detener servicios, etc.

El problema de conectar otra máquina en una red es que los datos que se transmiten pasarán a través de muchas redes. Mientras tanto, algunos de los cuales podrían ser inseguros, y los datos de transmisión podrían ser interceptados, posiblemente modificados antes de que lleguen a la máquina de destino prevista.

En los primeros días, donde la seguridad no era tan importante, toda la comunicación se producía en texto sin formato. Por lo tanto, los datos que se transmiten a través de Internet entre el cliente y el servidor pueden interceptarse fácilmente. Y se puede leer ya que los mensajes no están encriptados.

Por lo tanto, los protocolos de texto sin formato son extremadamente inseguros y nunca se utilizan para la transmisión de datos confidenciales como contraseñas, secretos, etc. Por lo tanto, SSH se considera una alternativa segura a los protocolos de red de acceso remoto heredados.

¿Como funciona?

SSH utiliza una arquitectura cliente-servidor para una comunicación segura a través de la red conectando un cliente ssh con el servidor ssh. De forma predeterminada, el servidor ssh escucha el puerto TCP estándar 22 (puede cambiar esto para mayor seguridad).

Utiliza una técnica de criptografía de clave pública para autenticar entre el cliente y el servidor. Además, el protocolo utiliza fuertes algoritmos de cifrado y hash simétricos para el intercambio de mensajes entre el cliente y el servidor para garantizar la privacidad y la integridad de los datos.

Linux es el sistema operativo más utilizado para servidores remotos debido a su seguridad y durabilidad. Muchos servidores que utilizan el sistema operativo Linux en Internet han estado funcionando durante años sin muchas fallas o incluso sin reiniciarse.

La mayoría de las sesiones SSH (un período en el que accedemos al servidor remoto) tendrán solo las siguientes dos operaciones:

  • Autenticación
  • Ejecución de comandos

Los servidores SSH pueden autenticar clientes usando una variedad de métodos.

Y las dos formas populares son:

La autenticación basada en contraseña es el método predeterminado que se utiliza para la autenticación de OpenSSH clientes instalados. Es la autenticación ssh más básica pero no la más segura.

Aunque las contraseñas se envían al servidor de forma segura, los ataques modernos de fuerza bruta pueden eludir la autenticación.

La autenticación basada en claves mejora aún más la seguridad del sistema al generar pares de claves SSH, lo que demuestra ser una alternativa confiable y segura.

Una vez que el servidor autentica al cliente con éxito, se establece una conexión segura entre ellos.

Acceso al servidor remoto mediante SSH

Si es usuario de Mac/Linux, puede utilizar directamente el terminal para escribir y ejecutar comandos ssh, ya que OpenSSH ya está instalado de forma predeterminada.

Si es un usuario de Windows, debe instalar un cliente emulador de terminal de terceros para ejecutar los comandos ssh. Masilla es el cliente ssh más popular para el sistema operativo Windows.

Para conectarse a un servidor remoto mediante SSH, debe saber al menos dos cosas.

La sintaxis del comando ssh básico es:

$ ssh <user-name> @ <host> -p <port-no>

El nombre de usuario es el nombre de usuario de la máquina remota que intentamos conectar (y no el usuario de su máquina local), y el host es una dirección IP o un nombre de dominio.

Veamos un ejemplo de conexión a un servidor remoto usando el Sobre el cable sitio web. Es un sitio web gratuito de desafíos de juegos de guerra.

Ahora, conectémonos a la bandido desafío usando ssh. Es uno de los desafíos disponibles en el sitio web que enseña cómo iniciar sesión usando SSH.

Cartas credenciales:

nombre de usuario y contraseña: bandido0
host y puerto: bandit.labs.overthewire.org, 2220

Cuando escribes el siguiente comando y presionas enter:

$ ssh [email protected] -p 2220

Le pedirá la contraseña para fines de autenticación. Ahora escribe la contraseña y presiona enter:

Si la contraseña ingresada es correcta, habrá iniciado sesión correctamente en el servidor remoto y su terminal se verá como la imagen de arriba.

Ahora puede usar la terminal de la máquina remota para escribir y ejecutar sus comandos y realizar sus operaciones necesarias.

Cuando desee finalizar la sesión ssh, escriba el comando de salida:

$ exit

Recibirá un mensaje, «Conexión cerrada» cuando se desconecte correctamente de la sesión ssh.

Conclusión

La razón principal detrás de la popularidad de SSH es que toda la comunicación entre el servidor y el cliente está encriptada.

La mayoría de la gente asume que usar ssh es complejo, y obtener conocimiento sobre cómo funciona no es fácil de entender, pero es más simple de lo que piensas. Ahora tiene una comprensión básica de SSH, cómo funciona, los aspectos de seguridad detrás de él y por qué juega un papel vital en la comunicación.

A continuación, explore algunos de los recursos para convertirse en administrador de sistemas.