Cómo revocar un certificado ssh (¡no un archivo de identidad ssh!)

13

He generado un certificado ssh como este:

  1. ssh-keygen -f ca_key # generar un par de claves ssh para usar como certificado
  2. generar una clave de host ssh-keygen -s ca_key -I cert_identifier -h host_key.pub
  3. especifique la clave de host en el archivo de configuración sshd del servidor: TrustedUserCAKeys /etc/ssh/ssh_cert/host_key.pub
  4. generar un certificado local para acceder al host mediante un certificado SSH: ssh-keygen -s ca_key -I cert_identifier user_key.pub. Esto debería generar user_key-cert.pub

Ahora puedo iniciar sesión en el servidor usando ssh -i user_key user@host(que usa user_key-cert.pub). ¿Cómo puedo revocar el certificado además de deshabilitar el archivo TrustedUserCAKeys?

rorycl
fuente
Hay una discusión sobre esto en la lista openssh aquí gossamer-threads.com/lists/openssh/dev/… - No creo que haya una manera elegante de revocar un certificado.
rorycl

Respuestas:

13

sshd_config tiene un archivo RevokedKeys. Puede incluir varias claves o certificados en él, uno por línea. En el futuro, OpenSSH admitirá la revocación por número de serie del certificado, lo que generará listas de revocación mucho más pequeñas.

Damien Miller
fuente
-3

Estos pueden ser de su interés:

CARevocationFile /path/to/bundle.crl Este archivo contiene múltiples "Lista de revocación de certificados" (CRL) de firmantes de certificados en formato PEM concatenados juntos.

CARevocationPath / path / to / CRLs / "Hash dir" con la "Lista de revocación de certificados" (CRL) de los firmantes de certificados. Cada CRL debe almacenarse en un archivo separado con el nombre [HASH] .r [NÚMERO], donde [HASH] es el valor hash de CRL y [NÚMERO] es un número entero que comienza desde cero. Hash es el resultado de un comando como este: $ openssl crl -in crl_file_name -noout -hash

(primeros 3 resultados de Google en una búsqueda de "ssh ca revoke" ...)

draeath
fuente
Los certificados ssh no usan certificados de formato PEM sino su propio formato, por lo que esto no funcionará.
rorycl
OpenSSH no implementa CARevocationFile la última vez que lo verifiqué (podría haber cambiado recientemente).
Chris S
1
Hmm, tienes razón. No creo que esto sea posible.
Draeath