¿Qué es SSH y cómo funciona?

Como programador de informática, tienes la opción de utilizar los protocolos de administración vía remota llamados «SSH» para controlar los servidores conectados por Internet y darles una mayor seguridad.

Si trabajas con Linux o macOS, puedes usar el SSH desde la ventana del terminal, mientras que en Windows necesitas otros client para ejecutar los comandos shell en el equipo remoto.

¿Qué es SSH?

El SSH fue ideado para reemplazar el protocolo Telnet, con nuevas herramientas de criptografía para blindar todas tus comunicaciones del servidor remoto, autenticar el usuario, transferir entradas del cliente al host y enviar la salida al cliente.

Aprenderás a administrar el protocolo Secure Shell con el método más seguro de acceso remoto con el cifrado y sus respectivas capas de información encriptada.

que es ssh y como funciona

Historia del protocolo SSH

Inicialmente se utilizaban los r-commands del conjunto de protocolos TCP/IP «rlogin» para la transmisión de datos entre computadores como el Telnet hasta que, en 1995 el investigador finlandés Tatu Ylönen formuló el primer protocolo ssh llamado SSH-1 y presentado como software libre en ese mismo año.

Ylönen creó a finales de 1995, la compañía SSH Communications Security, la cual facilitaba el protocolo de forma gratuita para su enseñanza en las universidades y para su uso doméstico, mientras que las empresas tenían que pagar por la licencia. Dos años después, la empresa entregó un borrador a la comunidad internacional del IETF.

En 1999, fue presentada la versión de uso libre llamada OpennSSH.

En la actualidad, los programadores instalan servidores delicados de alta seguridad para proteger los hosting de tus negocios online. Es por esta razón, que debes buscar los Vps Servers que trabajan con el servicio SSHh, los IPs y redes más rápidas y seguras de España.

ssh secure shell

Diferentes tipos de cifrado SSH

A través de la implementación de los SSH, se ha logrado que la transferencia entre el servidor remoto o el host y el cliente, sea completamente segura. Para lograr esta protección, se encuentran 3 tipos de cifrado con los que puedes escribir tus comandos.

  • Cifrado simétrico. Debes suscribir una clave secreta para cifrar y descifrar el mensaje entre el host y el cliente. El cifrado secreto compartido protege la comunicación en una sesión de SSH. Ambas partes acuerdan un método y una clave compartida. La fiabilidad del proceso se logra por el algoritmo único de intercambio de claves que creas y que nunca es compartida entre el cliente y el host.
  • Cifrado asimétrico. Este cifrado emplea dos claves separadas para el cifrado y el descifrado. Estas se conocen como la clave pública y la clave privada. Funciona de la siguiente manera: un mensaje cifrado por la clave pública de un dispositivo, sólo puedes descifrarlo por la misma clave privada de la máquina ya que ambas trabajan de forma conjunta.
  • Hashing. Es otra forma de criptografía aplicada, pero no es diseñado para ser cifrado, pero SSH lo utiliza para verificar la autenticidad de los mensajes con HMACs basados en hash.

Cifrado simétrico

A través de un algoritmo de intercambio de claves, generas tus claves simétricas que protegen cada una de las comunicaciones en una sesión de SSH. La contraseña nunca es compartida entre el host y el cliente, ya que ambos solamente tienen datos en conjunto. La clave secreta es calculada de forma independiente y nunca se revela a una tercera parte.

El token secreto solamente es para cada sesión SSH y lo has de crear antes de autenticar el cliente. Cuando tienes el token, todos los procedimientos entre ambos dispositivos son cifrados por esta clave secreta, incluso la escrita dentro de tu propio computador.

Cifrado asimétrico

Este sistema usa dos claves separadas para el cifrado y el descifrado. La conoces como clave pública y clave privada. Un mensaje protegido con una clave pública de un computador, solamente puede ser descifrado por su misma clave privada. El cifrado asimétrico lo aplicas en la creación del algoritmo de intercambio de contraseñas del cifrado simétrico. El host y el cliente crean sus pares de claves públicas y privadas temporales, comparten sus claves privadas y finalmente generan el token secreto compartido.

Después de efectuar la comunicación simétrica de forma segura, el servidor usa la clave pública del cliente y la transmite para ser autentificada.

Hashing

Este tipo de encriptación esté diseñada para no ser descifrada porque crea un valor único de una longitud fija para cada entrada, sin una tendencia que puedas revertir. Se puede generar el hash criptográfico pero no la entrada del hash. Solamente el dispositivo con la entrada correcta, genera el hash y verifica la validez de la entrada al comparar ambas.

SSH ejecuta hashes para comprobar la autenticidad de los mensajes con códigos basados en hash. Así aseguras que el comando nunca sea modificado.

Todos los mensajes transmitidos tienen un MAC, calculado con la clave simétrica respectiva, el número de secuencia de paquetes, más el contenido del mensaje.

¿Cómo funciona SSH?

El protocolo de seguridad SSH lo has de aplicar con el modelo de comunicación cliente-servidor al autenticar ambos sistemas remotos y el cifrado de sus datos. Por omisión, SSH trabaja en el puerto TCP 22, que puedes cambiar, y el servidor recibe la señal en el puerto 22 para sus conexiones entrantes.

Debes iniciar la conexión ssh en el cliente con el protocolo TCP en conjunto con el servidor y comprobar que la conexión simétrica sea segura y que la identidad del servidor sea la misma, presente en su archivo de almacén de claves RSA. A fin de lograr la conexión, ambos sistemas tienen que establecer los estándares de encriptación para sus comunicaciones y debes ser autentificado como usuario.

Instalar servidor SSH

Para hacer la instalación en Windows, en el mercado se encuentran distintos tipos de clientes que te facilitan ejecutar comandos shell del mismo modo como si lo hicieras físicamente en el equipo remoto.

Linux

Como usuario de Mac y Linux, tienes que ir a tu programa de terminal e ingresar el siguiente comando que tiene 3 partes: ssh {user}@{host}. Este indica al sistema que va a empezar una conexión de shell segura y cifrada. Al presionar «enter» se te va a solicitar una contraseña de la cuenta a la que deseas entrar. Al ingresarla, no va a mostrarse nada en la pantalla, pero el sistema sí está transmitiendo la clave. Cuando finalices la escritura, presiona nuevamente «enter». Si tu contraseña es correcta, vas a recibir una ventana de terminal remota.

Ubuntu

La instalación la tienes que realizar desde la consola de comandos. Primero configuras el cliente con el siguiente comando: sudo apt-get install openssh-client, el cual te permite conectarte a máquinas remotas. Después estableces el servidor con esta instrucción: sudo apt-get install openssh-server e  instalas el demonio “sshd” que espera la petición de conexión desde el otro equipo.

Puertos SSH

Después de haber ejecutado el SSH, el siguiente paso que deberás hacer es cambiar el puerto ssh, que es el 22 por defecto y así evitarás la mayoría de intentos de hackeo. Busca y edita el archivo  el archivo /etc/ssh/sshd_config. Debes ingresar: nano /etc/ssh/sshd_config cambiar la cifra en la que aparece Port 22 por el número de los nuevos puertos ssh. Ahora reinicia SSH con la nueva configuración: /etc/init.d/ssh restart.

Comandos SSH

En Linux, los comandos más frecuentes son los siguientes:

  • passwd: cambias contraseñas.
  • info: muestras la información de scripts utilidades, shell y programas.
  • nslookup: nombre de los servidores de Internet.
  • cat archivo: contenido de un archivo.
  • ls directorio: muestra el contenido del directorio.
  • rm: borra archivo.
  • head: las primeras líneas de un archivo.
  • tail: las últimas líneas del archivo.
  • clear: limpia la pantalla.
  • cp: copias un archivo.
  • sort: revelas y ordenas el contenido de un archivo.
  • echo: copias una cadena de la terminal.
  • gzip: comprimes un archivo.
  • pico: abres y editas archivos de texto.
  • telnet: utilidad para conectar a un sistema remoto.
  • xjewel: juegas Jewel Game.
  • ghostview: comienza una vista preliminar de texto.
  • who: identificas cuáles son los usuarios conectados el servidor.
  • apropos: te aparecerá el manual de todas las páginas por título y cabeceras de cada comando.
  • mesg y/ndas acceso para que otros usuarios te escriban mensajes.
  • write: escribir mensajes a otros usuarios.
  • talk: un chat de 2 vías.
  • df: acceso a todos los sistemas montados.
  • ps: reporta el estado de los procesos.
  • xmixer: abre los controles de sonido del sistema.
  • ln: link a un archivo existente.
  • chmod: permisos de acceso a un archivo.
  • rmdir: borra un directorio vacío.
  • tty: Te revela el nombre de la terminal en la que el comando se escribió.
  • jobs: Enseña una lista de las tareas actuales.
  • xchomp: versión Linux de Pacman.
  • hostname: te enseña el nombre del sistema.
  • xg3: programa de visualización de imágenes.
  • ping: para probar la conexión a un sistema remoto.
  • traceroute: imprime la ruta que los paquetes hacen al host.
  • asclock: reloj de AfterStep.

En el momento en el que vayas a instalar ssh, contrata solamente a los expertos que vayan a ofrecerte capacidad ilimitada de transferencia de datos, backups automáticos, herramientas SEO, capacidad de 1 Gbit/s port y muchas prestaciones técnicas profesionales para un resguardo mayor de todo el sistema digital de tu negocio.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *