Qué es una clave SSH y cómo utilizarla
Autor: Redacción Domeny.ForSale Publicado
En pocas palabras: Una clave SSH sirve para confirmar tu identidad al conectarte de forma segura a un servidor o servicio, como un repositorio de código. En la práctica, utilizas un par: una clave pública, que entregas al servicio, y una privada, que permanece en tu dispositivo. Este método de autenticación puede sustituir la contraseña de la cuenta, pero exige proteger la clave privada.
¿Cómo funciona la autenticación con una clave SSH?
SSH, abreviatura de Secure Shell, es un protocolo que permite comunicarse de forma segura con otro ordenador a través de la red. Se utiliza, entre otras cosas, para administrar servidores, transferir archivos mediante SFTP y comunicarse con repositorios Git. La conexión SSH está cifrada tanto si te autenticas con una contraseña como si utilizas una clave: lo que cambia con la clave es, sobre todo, la forma de confirmar tu identidad.
El par de claves consta de dos elementos relacionados matemáticamente:
- La clave pública permite comprobar si la persona que se conecta dispone de la clave privada correspondiente. La añades al servidor o a la configuración del servicio.
- La clave privada sirve para crear firmas criptográficas que confirman tu identidad. No debes enviarla al administrador ni pegarla en el panel del servicio.
Durante la autenticación, el programa SSH utiliza la clave privada para firmar datos relacionados con la conexión. El servidor verifica la firma mediante la clave pública que tiene guardada. La clave privada no se envía al servidor y, si se utiliza un algoritmo moderno elegido adecuadamente, resulta prácticamente imposible reconstruirla a partir de la clave pública.
¿Cuándo conviene usar una clave SSH en lugar de una contraseña?
Si administras un VPS, es decir, un servidor privado virtual, puedes autenticarte con una clave en lugar de introducir la contraseña de la cuenta. Al trabajar con Git, la clave puede confirmar tu identidad cuando descargas o envías cambios. Sin embargo, esto no implica que los commits se firmen automáticamente: esa es una función independiente que requiere configuración.
Por ejemplo, dos personas se encargan del sitio web de una empresa. En lugar de compartir una contraseña, cada una crea su propio par de claves y el administrador añade sus claves públicas a las cuentas correspondientes. Cuando una de ellas deja de colaborar, se puede eliminar su clave sin cambiar la de la otra persona. Utilizar cuentas de sistema separadas también facilita la asignación de permisos distintos.
Las claves reducen el riesgo de que alguien adivine la contraseña mediante intentos automatizados de inicio de sesión. Sin embargo, no protegen frente a todo: si un atacante se hace con el dispositivo o con una clave privada desprotegida, puede obtener acceso. Añadir una clave tampoco desactiva por sí solo la autenticación con contraseña en el servidor.
¿Cómo crear un par de claves SSH?
Abre el terminal en un sistema que tenga OpenSSH instalado. Primero, revisa el directorio .ssh dentro de tu directorio personal para no sobrescribir claves existentes. Puedes crear un nuevo par con el algoritmo moderno Ed25519 mediante este comando:
ssh-keygen -t ed25519 -C "portatil-trabajo"
La opción -C añade un comentario que facilita identificar la clave; no concede permisos. El programa te preguntará dónde guardarla y te pedirá una frase de contraseña para proteger la clave, también llamada passphrase. Esta contraseña protege el archivo de la clave privada y no es la contraseña de la cuenta del servidor. Los entornos antiguos o con requisitos específicos pueden necesitar otro algoritmo: consulta los requisitos del proveedor.
Si utilizas el nombre predeterminado, se crearán dos archivos:
~/.ssh/id_ed25519— la clave privada; mantenla exclusivamente bajo tu control.~/.ssh/id_ed25519.pub— la clave pública; su contenido es lo que debes añadir al servicio.
El símbolo ~ representa el directorio personal del usuario. La clave pública suele consistir en una sola línea larga que empieza por ssh-ed25519. Copia la línea completa en el campo de claves SSH del panel del proveedor. En un servidor con OpenSSH, normalmente se añade al archivo ~/.ssh/authorized_keys de la cuenta correspondiente, sin eliminar las entradas existentes. Los permisos de acceso al directorio y al archivo también deben estar correctamente configurados en el servidor.
Después de añadir la clave, prueba la conexión:
ssh -i ~/.ssh/id_ed25519 usuario@direccion-servidor
Sustituye el nombre de usuario y la dirección por tus propios datos. Si estás cambiando la configuración de acceso, mantén abierta la sesión actual hasta que hayas conseguido iniciar sesión en una segunda ventana.
La clave del usuario y la clave del servidor
Al conectarte por primera vez, SSH puede mostrar la huella de la clave del servidor, es decir, su identificador abreviado. No se trata de tu clave de usuario: sirve para confirmar que te estás conectando al equipo correcto. Compara la huella con la información obtenida por un canal independiente y de confianza, por ejemplo, del administrador o del panel del proveedor.
No debes ignorar las advertencias sobre un cambio en la clave del servidor. El motivo puede ser una reinstalación legítima, pero también una suplantación del servidor. Primero averigua por qué ha cambiado, en lugar de eliminar sin comprobar nada la entrada del archivo known_hosts, donde el cliente SSH guarda los servidores reconocidos.
¿Cómo guardar una clave de forma segura y revocarla?
Protege la clave privada con una frase de contraseña robusta y no la incluyas en un repositorio, un mensaje ni una solicitud de asistencia técnica. Un agente SSH es un programa que puede mantener la clave desbloqueada en memoria y utilizarla para firmar, reduciendo la necesidad de volver a introducir la frase de contraseña.
Usar claves distintas para cada dispositivo facilita retirar el acceso si pierdes uno de ellos. Si sospechas que una clave se ha filtrado, elimina la clave pública correspondiente de todos los servidores y servicios que la aceptan y, después, genera un nuevo par. Cambiar la frase de contraseña del archivo local no invalida una copia robada.
Antes de empezar a utilizar una nueva clave, consulta en el panel del servicio cómo eliminarla y cómo recuperar el acceso si pierdes el dispositivo. Así, una avería del portátil no te dejará sin la única vía para administrar el servidor.
Consulta también: ¿Qué significa www?
