¿Qué son las claves SSH? – JumpCloud

Escrito por Sean Blanton en February 17, 2023

Comparte este artículo

Si pasas el suficiente tiempo dentro de un ambiente TI, con el  incremento de la infraestructura en la cloud como AWS, es muy probable toparse con el término llaves SSH. Si es que ya se ha topado con este término TI, puede que ahora se esté preguntando: ¿qué son las llaves SSH?

Las llaves SSH (Secure Shell) son unas credenciales de acceso que se emplean dentro del protocolo SSH y son primordiales para las plataformas modernas de infraestructura de servicio como AWS, Google Cloud y Azure.

Antes de que esta publicación se adentre en la explicación de qué son las llaves SSH, echemos un vistazo rápido al protocolo SSH.

JumpCloud

Pruébelo a nuestra manera y véalo por usted mismo.

Pruebe el directorio basado en la cloud JumpCloud, dispositivo y gestión SSO libre de riesgo.

Regístrese para una prueba gratuita de 30 días.

La Historia del Protocolo SSH

La primera versión del protocolo SSH se desarrolló en el verano de 1995 por Tatu Ylonen. Tatu fue un investigador de la Universidad de Helsinki cuando detectó un ataque de infiltración en la red de la universidad. Un ataque de infiltración intercepta y registra el tráfico que ocurre en una red y puede otorgarles a los atacantes los nombres de usuario y contraseñas, las cuales se pueden utilizar después para obtener acceso a los activos importantes de TI. 

Miles de credenciales resultaron afectadas, incluyendo aquellas que pertenecían a las asociaciones comunitarias. Este ataque de infiltración motivó a Tatu a averiguar cómo crear redes más seguras y esto al final llevó a la creación del protocolo SSH (SSH.com).

Hoy en día, el protocolo SSH se utiliza ampliamente para acceder remotamente de un sistema a otro y su cifrado sólido lo hace ideal para realizar tareas como emitir comandos remotos y gestionar remotamente la infraestructura de red y otros componentes importantes del sistema. Esto resulta muy importante en la era de la infraestructura de la cloud y el trabajo remoto.

Para usar el protocolo SSH, se necesita instalar un par de piezas de software. Los sistemas remotos necesitan contar con una pieza de software llamada daemon SSH y el sistema empleado para emitir comandos y gestionar las necesidades de los servidores remotos necesita tener una pieza de software llamada el cliente SSH. Se necesitan estas piezas para crear un canal apropiado de comunicación usando el protocolo SSH (DigitalOcean).

Prácticamente, las llaves SSH son un método de autenticación empleados para obtener acceso a una conexión cifrada entre sistemas y en última instancia usar esa conexión para gestionar el sistema remoto.

¿Qué son las llaves SSH?

Las llaves SSH vienen en varios tamaños, pero una elección común es el cifrado RSA 2048-bit, el cual se compara a una contraseña de 617 dígitos de largo. En sistemas Windows, resulta posible generar su propio par de llaves SSH para descargar y usar un cliente SSH como PuTTY.

En sistemas Mac y Linux, es posible generar un par de llaves SSH empleando una ventana de terminal.

Las llaves SSH siempre vienen en pares y cada par se elabora con una llave privada y una llave pública. El quién y lo que poseen estas llaves determina el tipo de par de llaves SSH. Si la llave privada y la llave pública permanecen con el usuario, este juego de llaves SSH se refiere a las llaves de usuario.

Si las llaves privadas y públicas se encuentran en un sistema remoto, estas llaves se refieren como las host keys. Otra clase de llave SSH es una llave de sesión. Cuando se está transmitiendo una gran cantidad de información, las llaves de sesión se emplean para cifrar la información.

Echemos ahora un vistazo más de cerca a cómo funciona una llave privada y pública. Para hacer estas cosas más simples, nos enfocaremos en cómo funcionan las llaves de usuario. 

Como Funcionan las Llaves de Usuario

En un juego de llaves de usuario, la llave privada permanece en el sistema en uso para acceder al sistema remoto (ejemplo, la computadora de escritorio del usuario o laptop) y se usa para descifrar la información que se intercambia en el protocolo SSH. 

Las llaves privadas nunca se deben compartir con nadie y se debe asegurar en un sistema –por ejemplo, en un sistema seguro (cifrado completo del disco, MFA), en posesión del usuario, y la llave privada se asegura por medio de una frase de acceso. 

Una llave pública se utiliza para cifrar la información, se puede compartir y se usa por el usuario y el servidor remoto. Para el servidor final, la llave pública se guarda en un archivo que contiene un listado de llaves públicas autorizadas. Por lado del usuario, la llave pública es almacenada en un software de administración de claves SSH o en un archivo en su computadora.

Usando las Llaves SSH 

Primeros Pasos – Generación de la Llave SSH 

Antes de que usted pueda comenzar a usar sus llaves SSH, primero necesita generar su propio par de llaves SSH en el sistema que desea usar para acceder a un sistema remoto. Por favor, vea las instrucciones debajo. 

Instrucciones para Linux/Mac:

Recomendado: Instalar o Actualizar OpenSSH

sudo apt-get update

sudo apt-get install openssh-server

Primero, cargue una terminal de comando de línea e ingrese el siguiente comando:

Se crearán sus dos archivos de llaves en el directorio /HOME/.ssh/ directory por defecto, pero podría especificar una ubicación directa. Nunca comparta su llave privada. 

$HOME/.ssh/id_rsa.pub (public key

$HOME/.ssh/id_rsa (private net)

Como se muestra arriba, se le presentará la opción de establecer una frase de acceso para dificultarle el ingreso a usuarios no autorizados protegiendo así la confidencialidad de su juego de llaves.

Su llave pública se carga a su servidor para usar una llave SSH de autenticación para el control de acceso. El comando ssh-copy-id command, el cual forma parte del paquete OpenSSH, se puede usar para automatizar el proceso de transferencia en la sintaxis:

ssh-copy-id username@host

Podrá también agregar la llave a su cuenta usando JumpCloud, o colocando manualmente la llave pública en el servidor remoto (DigitalOcean).

Mac y Linux con CLI – jumpcloud-1

Instrucciones para Windows:

Descargue e instale el generador de llave PuTTY SSH.

  • Cargue el programa generador PuTTY
  • De click en el botón “Generate” y seleccione RSA (SSH-2)
    • Podrá optar por una llave de 4096 bit, pero algunas aplicaciones puede que no la acepte y esto pudiese dar como resultado un incremento en el uso del CPU durante el proceso de presentación.
  • Ingrese una frase de acceso para seguridad adicional
  • Debe seleccionar “Save private key” y especificar una ubicación
    • No comparta este archivo con personas no autorizadas
    • Puede copiar y pegar su llave pública del campo de arriba con “Select All” u oprimiendo el botón “Save public key” 
  • Podrá agregar la llave a su cuenta usando JumpCloud

Windows SSH Pair Keygen usando PuTTY – jumpcloud-1

Cómo Funciona la Autenticación de Llave SSH

Después de haber completado los pasos mencionados anteriormente, use su terminal para ingresar su usuario SSH y la dirección IP del sistema remoto con este formato: ssh username@my_ip_address. Esto iniciará una conexión al sistema remoto usando el protocolo SSH.

El protocolo y el usuario especificado notificará al servidor remoto cual llave pública usar para autenticarse. Después, el servidor remoto utilizará esa llave pública para cifrar un mensaje aleatorio el cual se le envía al cliente. Este mensaje se descifra usando la llave privada esté en su sistema.

Una vez que se descifra el mensaje, se combina con una sesión ID previamente establecida y se envía de vuelta al servidor. Si el mensaje coincide con lo que el servidor le envió, el cliente se autentifica y obtendrá acceso al servidor remoto. Este proceso le prueba al servidor que usted cuenta con la llave privada correspondiente a la llave pública que está en el archivo.

Sin embargo, la seguridad que este proceso de autenticación otorga se puede desautorizar cuando las llaves SSH no se han gestionado correctamente. 

Gestionando las Llaves SSH 

Resulta imperativo que la gestión correcta de la llave SSH suceda, debido a que por lo regular otorgan acceso a activos digitales críticos. También, las compañías tienden a tener muchas llaves SSH. De hecho, las compañías “Fortune 500” por lo regular tendrán miles de ellas. 

A pesar de la dificultad en el intento de gestionar manualmente miles de llaves SSH, el contar con una llave SSH de gestión de sistema en su lugar es algo que se pasa por alto continuamente. SSH.com investigó un poco y descubrió a una compañía que contaba con 3 millones de llaves SSH “que daban acceso a servidores de producción en vivo”.

De esos, el 90% ya no estaban en uso. El acceso principal se permitió con el 10% de las llaves”. Un sistema de gestión efectivo de llaves SSH en el lugar correcto ayudaría a reducir este problema de riesgo de seguridad. 

Las tecnologías de la información cuentan con un par de opciones para obtener control sobre las llaves SSH en su entorno. Uno de estos incluye el uso de una herramienta SSH. Sin embargo, esto significa tener que gestionar una plataforma más además de gestionar un proveedor SSO, un directorio de servicio, y quizá una solución de gestión de sistema. Ha surgido una nueva solución que le brinda a los TI una segunda opción:  JumpCloud Directory Platform.

La Cloud IAM Ofrece Gestión de Llave SSH 

Esta solución de gestión de acceso de identidad de cloud otorga a los TI con un lugar central para gestionar sus llaves SSH. Además, las TI También pueden centralizar la autenticación del usuario para dispositivos Mac, Linux, y Windows; servidores de la cloud, redes con cable y WiFi, aplicaciones locales web, y almacenamiento virtual y local. Con un lugar central para gestionar la autenticación del usuario a todos sus recursos, se vuelve materia fácil con algunos clics para desabastecer a los usuarios de todos sus recursos, incluyendo la llave de acceso SSH a sistemas remotos.

Conozca más acerca de la Gestión de la Llave SSH Con JumpCloud

Si está listo para comenzar a probar nuestra moderna plataforma IAM, regístrese para una prueba gratuita.

Sean Blanton

Sean Blanton is the Director of Content at JumpCloud and has spent the past decade in the wide world of security, networking and IT and Infosec administration. When not at work Sean enjoys spending time with his young kids and geeking out on table top games.

Continúa Aprendiendo con nuestro Newsletter