Tiene varios problemas en conflicto, y debe comenzar por hablar de "archivos .PEM", el formato del archivo es en gran medida irrelevante para lo que sigue.
ssh
funciona con claves: claves adjuntas a usuarios y claves adjuntas a servidores.
Cuando comenzó, era una criptografía asimétrica clásica, cada parte (servidores y usuarios) tiene al menos un par de claves públicas + privadas y todo esto se usa para autenticar quién se conecta a qué.
Esto funciona bien y es probablemente la clave ssh
más utilizada por defecto.
Sin embargo, puede tener problemas de administración principalmente (en lugar de problemas técnicos) cuando tiene demasiados hosts o usuarios y desea un control detallado: cada servidor debe configurarse con un conjunto específico de claves de usuario, y los usuarios deben conocer una Conjunto específico de claves de servidor si quieren evitar el principio TOFU. También es posible que desee más seguridad con respecto a las claves, poder revocar el acceso fácilmente, etc.
Entonces, lo que se agregó en OpenSSH (la versión 5.4 en 2010 para disponibilidad inicial y luego la versión 5.6 para soporte completo) es la posibilidad de usar no solo claves sino también certificados X.509. Los certificados X.509 encapsulan una clave pública (donde tendría la clave privada en un archivo separado) con algunos otros metadatos, como fechas de validez u otras restricciones para usar este certificado, y son entregados por alguna Autoridad de Certificación específica.
Para servidores, usando certificados, significa que básicamente recuperas el mismo modelo que hoy en día en HTTPS. Donde puede ser más interesante es para las claves de usuario. Por ejemplo, no necesita configurar el servidor con el conjunto específico de claves de usuario permitidas para conectarse allí, solo necesita configurar el servidor para aceptar todos los certificados firmados por una CA específica, que es interna y usted controla, con algunos restricción.
Luego, simplemente puede emitir a sus usuarios algunos certificados con las restricciones específicas que necesitan para conectarse a los servidores a los que necesitan conectarse.
Netflix tiene un mecanismo elaborado como el que hablaron. Sus desarrolladores tienen una forma de solicitar automáticamente nuevos certificados, de muy corta duración (en el orden de minutos, cuando la conexión SSH está abierta, no importa si el certificado caduca durante el mismo, permanece abierto), para que puedan conectarse. cualquier host.
Vea esta presentación de ellos, que puede darle algunas ideas sobre por qué los certificados pueden ser útiles: "enlace o el vídeo correspondiente: enlace
También tienen el "software de código abierto" que necesitan para esta arquitectura: enlace