Cómo configurar claves SSH: gestión eficaz de claves para conexiones remotas seguras

Para acceder a tu servidor desde un ordenador local con Secure Shell Protocol (SSH), debes aprender a configurar una clave SSH.

Un par de claves SSH elimina la autenticación manual de contraseñas, creando un proceso de inicio de sesión en el servidor más rápido y una mayor seguridad de acceso remoto al servidor.

Tanto si eres un principiante en la autenticación basada en claves SSH como si deseas mejorar tu gestión de claves, esta guía completa te explicará el proceso y te proporcionará estrategias eficaces.

Requisitos previos para configurar claves SSH

Antes de configurar las claves SSH, revisemos primero los requisitos. Necesitarás acceso a:

  • Tu dispositivo local.
  • Tu ordenador o servidor remoto y su nombre de usuario y dirección IP.
  • La aplicación Terminal para establecer tu conexión remota.

Para el último prerrequisito, los usuarios de Mac y Linux pueden utilizar sus respectivas Terminales integradas.

Sin embargo, los usuarios de Windows no pueden utilizar Terminal para la conexión SSH. Afortunadamente, existen clientes SSH locales para Windows. Estas son las cuatro recomendaciones principales:

  • PowerShell: shell de línea de comandos integrado y lenguaje de scripting de Microsoft. Se recomienda para usuarios avanzados de Windows.
  • Windows Subsystem for Linux (WSL): programa que permite a los usuarios de Windows ejecutar un entorno Linux en su ordenador. Ideal para principiantes y usuarios familiarizados con el sistema operativo Linux.
  • Git BASH: una interfaz de línea de comandos integrada con Git, lo que la hace ideal para quienes trabajan frecuentemente con repositorios Git.
  • PuTTY: un emulador de Terminal gratuito y de código abierto con generador y gestor de claves. Es una opción viable para quienes utilizan sistemas operativos Windows antiguos. Echa un vistazo a nuestro tutorial SSH Keys en PuTTY para obtener más información.

Con estos prerrequisitos en su lugar, ya estás listo para configurar tu autenticación de clave SSH.

Cómo configurar claves SSH

Con el dispositivo local, el servidor remoto y el Terminal preparados, vamos a aprender a configurar las claves SSH paso a paso.

1. Iniciar el proceso de generación de claves SSH

Para establecer conexiones seguras mediante SSH, es necesario generar un par de claves pública y privada. Éstas funcionan conjuntamente para autenticar y cifrar tu comunicación con servidores remotos.

El servidor remoto utiliza las claves públicas para verificar tu identidad basándose en las huellas digitales de sus claves SSH. Mientras tanto, el ordenador local almacena las claves privadas para autenticar tu conexión SSH.

Cuando te conectas a un ordenador remoto, tu máquina local proporciona la clave privada. A continuación, el servidor la coteja con la clave pública asociada para concederte acceso.

Existen dos algoritmos de uso común para generar claves de autenticación:

  • RSA: una clave SSH RSA se considera muy segura, ya que suele tener claves de mayor tamaño, a menudo de 2048 o 4096 bits. También es más compatible con sistemas operativos antiguos.
  • Ed25519: un algoritmo más moderno con una clave estándar más pequeña, de 256 bits. Es tan seguro y eficaz como una clave RSA gracias a sus sólidas propiedades criptográficas. La compatibilidad es menor, pero los sistemas operativos más recientes lo admiten.

Este tutorial generará claves SSH privadas y públicas utilizando Ed25519 como ejemplo. Sin embargo, también puedes seguir esta guía si utilizas RSA.

Consejo profesional

Para garantizar una autenticación de clave sin problemas, consulta la documentación de tu proveedor de alojamiento para verificar la compatibilidad de tu clave SSH y el servidor. Hostinger es compatible con los algoritmos RSA y Ed25519.

En primer lugar, abre tu Terminal o cliente SSH local. A continuación, introduce el comando ssh-keygen:

ssh-keygen -t ed25519

El comando SSH mostrará el siguiente mensaje:

Generating public/private ed25519 key pair.

Pasa al siguiente paso.

2. Configurar el almacenamiento de claves y la frase de contraseña

El generador de claves debería pedirte que elijas una ubicación para almacenar las claves:

Enter file in which to save the key (/home/local_username/.ssh/id_ed25519):

Pulsa Intro para guardarlos en la ubicación por defecto, que es el directorio /.ssh en /home.

Alternativamente, especifica una ubicación diferente escribiendo su ruta y nombre de archivo. Por ejemplo, es posible que desees guardar tus archivos de claves en un directorio separado de la carpeta /.ssh para una mejor organización o en una unidad externa encriptada para mayor seguridad.

A continuación, la ventana del generador de claves te pedirá que crees una frase de contraseña de clave SSH para acceder a tu clave privada.

Enter passphrase (empty for no passphrase):

Puedes pulsar Intro para omitir este paso, pero se recomienda encarecidamente crear una frase de contraseña de clave privada para mejorar la seguridad de la conexión al servidor. Si alguien obtiene acceso no autorizado a tu clave privada, necesitará conocer la contraseña para utilizarla.

Elige una frase de contraseña fuerte, larga y única. Lo ideal es combinar letras mayúsculas y minúsculas, números y caracteres especiales. He aquí algunos ejemplos:

  • Frase aleatoria: ElefantesMoradosBailanEnLaNocheDelViernes!
  • Combinación de palabras y números: JirafaAlta37$Amanecer
  • Frase de contraseña con caracteres especiales: Caf3#v4so@3xtra4azuc4r
  • Letras de canciones o citas de libros: SerON0Ser?Es@EsLaPreg4NTA
  • Mezclar varios idiomas: Bonjour!Grazie!Danke!¡Hola!

Una vez creada la frase de contraseña, pulsa Intro. A continuación, introduce la misma frase de contraseña y vuelve a pulsar Intro.

El comando ssh-keygen mostrará ahora la huella digital de la clave SSH y la imagen randomart de la clave pública. Este es el aspecto que debería tener la salida de principio a fin:

ssh-keygen -t ed25519

Generating public/private ed25519 key pair.

Enter file in which to save the key (/home/local_username/.ssh/id_ed25519):

Enter passphrase (empty for no passphrase):

Enter the same passphrase again:

Your identification has been saved in /home/local_username/.ssh/id_ed25519

Your public key has been saved in /home/local_username/.ssh/id_ed25519

La huella digital clave es:

SHA256:kbMwyYwHymTudFmkCxt8yX6+2ztczkUJwRWTwXdRzcU 
localusername@hostname

La imagen aleatoria de la clave es:

+--[ED25519 256]--+

|      ..o==o    |

|    . +*+o*+    |

|   . +o.*.o+    |

|    .o. = o     |

|    . o S +     |

|     . o =      |

|      o o       |

|       + .      |

|      . o       |

+-----------------+

El comando ssh-keygen también debería haber creado una clave pública y una clave privada en la ruta y el nombre de archivo especificados. El archivo de clave pública debe tener una extensión PUB, como id_rsa.pub o id_ed25519.pub.

Las claves privadas RSA suelen terminar con RSA en su nombre de archivo. Por su parte, el archivo para Ed25519 no suele tener una extensión específica.

Gestión de claves SSH

Ahora que sabes cómo configurar claves SSH, vamos a sumergirnos en la gestión eficaz de claves. Esto asegura que tus conexiones remotas sean seguras y eficientes.

Transferencia de la clave pública SSH a un servidor remoto

Para utilizar tu par de claves SSH para conexión remota, necesitas transferir tu clave pública a un servidor SSH primero.

Si eres usuario del VPS de Hostinger, nuestro hPanel proporciona un botón de un solo clic para copiar tu clave pública al SSH de tu servidor.

Sólo tienes que seguir estos pasos:

  1. Ve al directorio de claves SSH, donde está almacenada tu clave pública. Selecciona y abre el archivo id_ed25519.pub con un editor de texto. Mantén esta ventana abierta.
  2.  Inicia sesión en tu cuenta y navega hasta el menú VPS. Elige un servidor.
  3. A continuación, elige Configuración → Claves SSH. Haz clic en Añadir clave SSH.
Sección de Claves SSH de hPanel
  1. Aparecerá una ventana emergente que te pedirá un Nombre donde guardar la clave SSH. En el cuadro Clave pública SSH, copia y pega allí el contenido del archivo id_ed25519.pub.
Agregar clave SSH en hPanel
  1. Una vez hecho esto, haz clic en Agregar clave SSH

¡Importante! Sólo necesitas añadir tu clave SSH pública a hPanel. Asegúrate de nunca compartir tu archivo de clave privada con nadie.

Los clientes de los planes de alojamiento web Premium y Business de Hostinger también pueden establecer conexiones seguras con SSH para sus sitios web.

Simplemente encuentra la página de configuración SSH en tu Panel → Avanzado → Acceso SSH. A continuación, haz clic en Habilitar en la sección de estado SSH

Sección de Acceso SSH de hPanel

A partir de ahí, sigue los pasos tres a cinco de la explicación anterior de VPS para conectar tu dispositivo local al servicio SSH del servidor.

Si encuentras algún problema, es esencial llevar a cabo la solución de problemas de claves SSH. Comprueba si hay posibles errores en la generación de la clave. Además, verifica que la clave pública esté configurada correctamente en el servidor remoto.

Para obtener ayuda, consulta nuestra base de conocimientos o ponte en contacto con nuestro equipo de Atención al Cliente 24/7. Nuestro VPS también incluye Kodee, un asistente de IA integrado, que puede ayudarte a resolver tus problemas.

Asistente con IA del VPS de Hostinger

Otra forma de transferir tu clave pública es con tu Terminal o cliente SSH usando el comando ssh-copy-id. Sustituye “nombre_usuario” por el nombre de usuario de tu servidor y “servidor_remoto” por su dirección IP o nombre de dominio:

ssh-copy-id username@remote_server

El comando SSH mostrará esta salida y te pedirá la contraseña de acceso al servidor remoto:

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed:

"/home/localusername/.ssh/id_ed25519.pub" 

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed 

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys 

username@remote_server's password:

Si la autenticación de la contraseña se realiza correctamente, deberías ver este resultado:

Number of key(s) added: 1 

Now try logging into the machine, with: "ssh 'username@remote_server'" 

and check to make sure that only the key(s) you wanted were added.

Prueba tu nueva clave SSH de autenticación de usuario utilizando el comando sugerido. Si funciona, verás un mensaje de bienvenida, que variará según tu servidor y sistema operativo. He aquí un ejemplo de lo que puede parecer un inicio de sesión con éxito:

Mensaje de bienvenida SSH

¡Importante! El agente de claves PuTTY no incluye el comando ssh-copy-id. Para establecer una conexión VPS remota con PuTTY, consulta nuestro artículo sobre cómo usar PuTTY (Terminal SSH).

Gestión de múltiples claves SSH

A medida que tus proyectos crecen y se diversifican, es posible que utilices más de una clave SSH para diferentes servidores, cuentas de usuario o proyectos.

Si esto ocurre, te recomendamos que utilices el Agente SSH. Esta función se ejecuta en segundo plano y almacena de forma segura tus claves privadas.

Te permite gestionar pares de claves SSH a través de múltiples conexiones y elimina la necesidad de introducir repetidamente contraseñas de claves privadas durante una sesión.

Para utilizar un agente SSH, sigue estos pasos:

  1.  Inicia tu Terminal o cliente SSH. A continuación, introduce el siguiente comando para iniciar el agente SSH:
eval "$(ssh-agent -s)"
  1. Utiliza el comando ssh-add para añadir tu clave privada al agente SSH. Sustituye ‘clave_privada’ por el nombre de tu archivo.
ssh-add ‘private_key’

Si tu clave privada está protegida con una frase de contraseña, te pedirá que la introduzcas.

  1. Ejecuta el siguiente comando para confirmar que tu clave privada ha sido añadida. Enumerará las identidades que posee actualmente el agente.
ssh-add -l

Con el agente SSH en ejecución y tu clave privada añadida, puedes conectarte a servidores remotos sin introducir tu frase de contraseña en cada sesión. Basta con utilizar el comando ssh nombre_usuario@servidor_remoto para iniciar sesión.

Consejo profesional

Los usuarios de PuTTY necesitarán Pageant para utilizar un agente SSH. Ve a la página de descargas de PuTTY para acceder al paquete de instalación.

Aquí otras estrategias para la gestión de múltiples claves SSH:

  • Sigue las mejores prácticas para organizar tus pares de claves: entre las que se incluyen el uso de convenciones de nomenclatura claras, la aplicación de estructuras de directorios lógicas y el mantenimiento de los permisos adecuados. De este modo, cada par de claves SSH es fácilmente identificable.
  • Ten una clave privada SSH y un par de claves públicas únicas para cada servidor o cuenta: aunque puedes usar las mismas claves para diferentes servidores, no es seguro. Si la clave privada se pierde, comprometerá la seguridad de todos los dispositivos asociados.
  • Ejecuta el comando hostname para mostrar el nombre de host del sistema actual: el comando SSH hostname puede identificar el host específico de una clave SSH. Te ayuda a asegurarte de que seleccionas la clave adecuada para el host elegido.
  • Utiliza alias para las claves: un alias puede ayudar a distinguir el propósito de cada clave o el proyecto asociado. Durante el proceso de generación de claves, añade un comentario con la bandera -C para especificar el alias – como ssh-keygen -C ‘alias’.
  • Ajusta la configuración SSH para hosts específicos: el archivo de configuración SSH te permite definir qué claves SSH utilizar para determinados hosts o dominios. Esto minimiza el riesgo de utilizar la clave incorrecta durante el proceso de inicio de sesión. Si almacenas las claves en la ruta por defecto, puedes encontrar este archivo en el directorio /.ssh.

Claves SSH perdidas o comprometidas

Si una clave SSH privada se pierde o se ve comprometida, toma medidas inmediatas para mitigar los posibles riesgos de seguridad.

Para evitar accesos no autorizados, elimina las claves SSH de los servidores remotos donde estaban instaladas. Sigue estos pasos:

  1.  Abre tu Terminal o cliente SSH y utiliza el comando cd para navegar hasta el directorio de tus claves. Este es el aspecto que tendría si utilizas la ruta predeterminada /.ssh:
cd ~/.ssh
  1.  Enumera el contenido del directorio SSH utilizando el comando ls. Verás que los nombres de los archivos se muestran así:
ls 

id_ed25519 id_ed25519.pub known_hosts
  1.  Elimina el archivo de claves privadas ejecutando el comando rm, sustituyendo ‘archivo_claves_privadas’ por el nombre real del archivo:
rm ‘private_key_file’
  1.  Elimina el archivo de clave pública correspondiente escribiendo el mismo comando en la ventana de tu cliente SSH.
rm ‘public_key_file’

Los clientes de Hostinger deben borrar la clave pública en hPanel también. Ve a Claves SSH para usuarios de VPS o Acceso SSH si eres cliente de alojamiento web. A continuación, pulsa Eliminar en la clave SSH. 

Utiliza el comando ls para confirmar que los archivos se han eliminado correctamente del directorio SSH. Si se ha realizado correctamente, los archivos de clave privada y pública ya no deberían existir.

Además de borrar las claves comprometidas, es muy recomendable utilizar el comando ssh-keygen para regenerar un nuevo par de claves. Hacer esto asegura que cualquier copia de las claves comprometidas será inútil.

Para minimizar el riesgo de pérdida o compromiso, sigue estos consejos de gestión de claves SSH:

  • Desactivar la autenticación por contraseña: utilizar la autenticación por clave pública-privada como inicio de sesión principal en el servidor garantiza que sólo los usuarios autorizados puedan acceder al servidor a través de SSH.
  • Utiliza un almacenamiento seguro de claves: restringe el acceso a tus claves privadas almacenándolas en un área protegida de tu sistema de archivos y estableciendo los permisos adecuados mediante el comando chmod.
  • Actualiza tus claves privadas y públicas regularmente: esto reducirá la probabilidad de comprometer tus claves. Ejecuta el comando ssh-keygen regularmente para crear nuevas claves y reemplazar las antiguas.
  • Limita el uso del par de claves: utiliza un par de claves para un solo propósito, como un proyecto específico o una cuenta de usuario. Esto facilita la gestión de las claves y aísla los posibles riesgos de seguridad.

Conclusión

Aprender a configurar claves SSH es esencial para los propietarios de sitios web que deseen establecer un acceso remoto al servidor. Vamos a resumir los pasos clave:

  1. Inicia la generación de claves SSH: abre tu Terminal o servicio SSH para generar un par de claves públicas y privadas utilizando los algoritmos Ed25519 o RSA.
  2. Configura el almacenamiento de claves y la frase de contraseña: elige la ubicación para guardar las claves, ya sea la ubicación predeterminada o un directorio específico. Crea una frase de contraseña fuerte para proteger la clave privada del uso no autorizado y la exposición.

Después, transfiere la clave pública al servidor remoto a través del panel de control de tu hosting o utilizando el comando ssh-copy-id.

Para gestionar eficazmente tus claves, utiliza un agente SSH para almacenar las claves privadas de forma segura. Además, ten en cuenta otros consejos como seguir las mejores prácticas de gestión de archivos, crear pares de claves únicos para servidores SSH específicos y utilizar alias de claves.

Si una clave privada se pierde o se ve comprometida, que no cunda el pánico. Simplemente elimínala de tu dispositivo local y vuelve a ejecutar el comando ssh-keygen para generar un nuevo par de claves.

Configuración de claves SSH – Preguntas frecuentes

He aquí algunas preguntas frecuentes sobre la configuración de claves SSH y sus respuestas.

¿Cuál es la diferencia entre claves SSH públicas y privadas?

En SSH, la clave pública se almacena en el servidor remoto para verificar tu identidad, mientras que la clave privada se guarda en tu máquina local para la autenticación.

Cuando te conectas a un servidor remoto, tu dispositivo local proporciona la clave privada, que el servidor compara con la clave pública asociada para establecer la conexión.

¿Por qué tengo que transferir mi clave pública al servidor remoto?

Transferir tu clave pública al servidor remoto es necesario para la autenticación. Cuando intentas conectarte al servidor, éste coteja tu clave pública con la clave privada almacenada en tu equipo local. Si coinciden, el dispositivo dará acceso a tu ordenador. 

¿Es posible utilizar varias claves SSH para diferentes servidores?

Sí, de hecho, es recomendable. Puede aislar posibles amenazas a la seguridad y garantizar que el hecho de dar acceso a un servidor no lo concede a otros. Una gestión adecuada de las claves es crucial para mantener un entorno remoto seguro y eficiente.

Author
El autor

Diana Catalina Herrera Infante

Diana es una traductora con amplia experiencia en diferentes tipos de documentos, entre ellos tutoriales y artículos especializados en la creación de sitios web. Además, cuenta con experiencia en el área de marketing digital. En su tiempo libre le gusta hacer ejercicio y ver una buena película.