Entrar Empieza gratis
EC2

Certificados SSH explicados desde cero: entrar en tus máquinas sin repartir claves

Qué es un certificado SSH, en qué se diferencia de la clave de siempre y por qué las empresas grandes los usan: una llave que caduca sola, que no hay que copiar a cada máquina y que se puede limitar a un usuario y a una IP. Con los comandos para probarlo en una máquina de AWS.

⏱ 30 minutos ◎ Intermedio Actualizada el 30/10/2026

La forma habitual de entrar en una máquina Linux en la nube es una clave SSH: un fichero en tu ordenador y su pareja pública copiada a la máquina. Funciona, pero fíjate en lo que implica cuando hay más de una persona y más de una máquina: cada clave hay que copiarla a cada máquina, cada persona que se va deja su clave en todas ellas hasta que alguien se acuerde de borrarla, y una clave perdida vale para siempre. ¿Sabes hoy, con certeza, cuántas claves pueden entrar en tu servidor de producción y de quién son?

Los certificados SSH resuelven exactamente eso. Es la misma tecnología que usa Simplio para su llave de repuesto y la misma que usa Lightsail para su consola web, y no hace falta ser un experto para entenderla.

Antes de empezar: qué significa cada cosa

Clave SSH
Una pareja de ficheros: la privada (se queda en tu ordenador, nunca se comparte) y la pública (se copia a la máquina, en el fichero authorized_keys del usuario). La máquina deja entrar a quien demuestre tener la privada.
Certificado SSH
Tu clave pública, firmada por una autoridad, con un nombre, una fecha de caducidad y una lista de usuarios para los que vale. La máquina no necesita conocer tu clave: le basta con confiar en quien la firmó.
Autoridad de certificados (CA)
Otra clave SSH, pero que solo sirve para firmar. Su pública se copia a las máquinas una vez; su privada se guarda muy bien, porque quien la tenga puede firmar certificados.
Principal
El nombre de usuario para el que vale el certificado. Un certificado para "ubuntu" no sirve para entrar como "root".
Validez
Desde cuándo y hasta cuándo vale el certificado. Puede ser un año o cinco minutos.
authorized_keys
El fichero, dentro de la carpeta .ssh de cada usuario de la máquina, con las claves públicas que pueden entrar como él. Admite también una línea especial que dice "acepta certificados firmados por esta autoridad".

Paso a paso

  1. Entiende la diferencia con un ejemplo

    Con claves: para que Ana entre en diez máquinas, su clave pública se copia a diez ficheros. Cuando Ana se va, hay que borrarla de diez sitios, y si se olvida uno, Ana (o quien tenga su portátil) sigue entrando. Con certificados: las diez máquinas confían en una autoridad. A Ana se le firma un certificado que vale hasta el viernes. El sábado, Ana no entra en ninguna, sin tocar ni una máquina. Y si se le firma uno nuevo cada mañana, nunca hay nada que revocar.

  2. Crea una autoridad (una vez, en tu ordenador)

    ssh-keygen -t ed25519 -f mi_ca -C "CA de mi empresa"

    Salen dos ficheros. mi_ca es la privada: guárdala en un gestor de contraseñas o en un disco cifrado, y nunca la copies a ninguna máquina. mi_ca.pub es la que irá a las máquinas.

  3. Dile a la máquina que confíe en tu autoridad

    Hay dos formas. La global, en /etc/ssh/sshd_config, vale para todos los usuarios:

    TrustedUserCAKeys /etc/ssh/mi_ca.pub

    Y la local, sin tocar la configuración de SSH: una línea en el authorized_keys del usuario, que solo vale para él:

    cert-authority,principals="ubuntu" ssh-ed25519 AAAA... CA de mi empresa

    La segunda es la que conviene en Lightsail, porque Lightsail ya usa TrustedUserCAKeys para su propia consola web y solo puede haber una. Recarga SSH (sudo systemctl reload ssh) y la máquina ya acepta certificados tuyos.

  4. Firma un certificado para una persona

    La persona te manda su clave pública (id_ed25519.pub). Tú la firmas, diciendo para qué usuario vale y cuánto dura:

    ssh-keygen -s mi_ca -I "ana-portatil" -n ubuntu -V +1w id_ed25519.pub

    Sale id_ed25519-cert.pub: se lo devuelves y lo pone junto a su clave. -I es un nombre para el registro de la máquina (así sabes quién entró), -n el usuario permitido y -V +1w una semana de validez. Puedes poner +5m y tendrás un certificado de cinco minutos.

  5. Entra y comprueba

    ssh -i id_ed25519 ubuntu@IP.DE.LA.MAQUINA

    SSH usa el certificado solo. En la máquina, sudo journalctl -u ssh | grep ana-portatil te enseña la entrada con el nombre que pusiste al firmar. Pasada la validez, el mismo comando responde "Permission denied" sin que nadie haya tocado nada.

  6. Añade condiciones: solo desde una IP

    Al firmar puedes añadir restricciones. La más útil: que el certificado solo valga desde una dirección concreta.

    ssh-keygen -s mi_ca -I "copias-nocturnas" -n backup -V +1d -O source-address=203.0.113.10 id_backup.pub

    Si ese certificado se filtra, desde cualquier otra IP no sirve. Es lo que hace la llave de repuesto de Simplio: certificados de cinco minutos, para un solo usuario, válidos solo desde la IP del servidor de Simplio.

Qué puede salir mal

"Permission denied" aunque el certificado es correcto

Lo más común: el principal no coincide (firmaste para "ubuntu" y entras como "admin"), la validez ya pasó, o la hora de la máquina está mal (los certificados dependen del reloj; comprueba con date y activa la sincronización de hora).

La máquina ya tenía TrustedUserCAKeys

Es el caso de Lightsail y de algunas imágenes. No lo cambies: perderías la consola web. Usa la línea cert-authority en el authorized_keys del usuario, que convive sin problema.

He perdido la privada de la CA

No puedes firmar más certificados, pero los ya firmados siguen valiendo hasta su caducidad. Crea una CA nueva y sustituye la pública en las máquinas mientras los certificados viejos aún entran. Por eso las validez cortas son una ventaja: el cambio se completa solo.

Me han robado la privada de la CA

Quien la tenga puede firmar certificados para todas tus máquinas. Sustituye la pública en todas ellas cuanto antes; si usaste source-address, además el ladrón necesita estar en esa IP. Es la razón de guardarla fuera de las máquinas y fuera del correo.

En Simplio

Simplio usa certificados SSH por debajo para que tú no tengas que hacerlo. La terminal en el navegador entra con la clave temporal que AWS entrega para cada sesión, sin que nadie reciba un fichero. Y la llave de repuesto es exactamente lo que explica esta guía, llevado al límite: un usuario sin contraseña en la máquina, que solo acepta certificados firmados por Simplio, de cinco minutos, para ese usuario y solo desde la IP de Simplio, con tu código del doble factor en cada uso. Dejas la llave con un botón y Simplio comprueba cada día que sigue abriendo. Cómo funciona la llave de repuesto.

Lo mismo, en AWS y en Simplio

En la consola de AWSEn Simplio
Dar acceso a una personaCopiar su clave a cada máquinaConcederle la máquina en Simplio: la terminal del navegador usa la clave temporal que da AWS
QuitárseloBorrar su clave de cada máquina, sin olvidar ningunaQuitarle la máquina en Simplio
Acceso de emergenciaCrear tu CA, repartir la pública, firmar a mano un certificado cuando haga faltaLlave de repuesto: certificado de cinco minutos, firmado por Simplio, solo desde su IP, con doble factor
Saber quién entróLeer el registro de SSH de cada máquinaRegistro de actividad de Simplio: quién, qué máquina, cuándo, desde qué IP

Probarlo gratis 15 días Ver cómo funciona

Todo esto, sin la consola de AWS

Simplio es un panel en español para manejar tus cuentas de AWS: máquinas, copias programadas, bases de datos, dominios, correo y lo que te cobra AWS, con permisos por persona y doble factor. Sin instalar nada en tus servidores.

Empieza gratis 15 días, sin tarjeta

¿Ya eres cliente? Acceso clientes.