%20.png)
En todas las empresas en las que trabajé, siempre fue un dolor de cabeza administrar las claves ssh. Teníamos diferentes formas de gestionarlos. Pero principalmente fueron algunos sistemas CM como Puppet/Chef/Ansible o simplemente copias manuales de claves o incluso algunos scripts de bash feos: D
También escuché que algunas personas usan LDAP o cualquier base de datos como almacén de claves ssh. Pero aún necesita algo de automatización adicional aquí, como alguna herramienta CM para colocar/eliminar claves en el servidor.
Entonces la pregunta es, ¿hay alguna forma agradable y moderna de hacerlo que no conozca? ¿Qué tan grandes empresas de TI (como Google o Facebook, etc.) manejan las claves?
Respuesta1
(Meta: En mi opinión, esta pregunta no se basa en opiniones).
Si utiliza versiones bastante modernas de Linux/Unix con un OpenSSH bastante reciente, puede utilizar certificados OpenSSH. Si desea una sensación de "billete" con MFA, puede emitir certificados OpenSSH temporales.
El punto con los certificados OpenSSH es que lo único que se necesita instalar en el lado de sshd es la clave pública de SSH-CA a la que se hace referencia con la directivaTrustedUserCAKeys en sshd_config.
con las directivasDirectores autorizados*También puede aceptar un conjunto de nombres principales (básicamente los nombres de usuario) en certificados OpenSSH para otra cuenta de usuario local.
Los certificados OpenSSH no son certificados X.509, tienen un formato diferente especificado en el documento del árbol fuentePROTOCOLO.certkeys.
Encontrarás varias páginas web sobre cómo utilizarssh-keygenpara firmar claves públicas con una SSH-CA (p. ej.Usando certificados SSH).
Implementé un SSH-CA tan pequeño para que un cliente que se ejecuta como un servicio web emita certificados de usuario temporales basados en autenticación multifactor (LDAP y OTP).
Encontrará varias implementaciones de código abierto en los lugares habituales. Deliberadamente no doy una lista aquí, porque después de revisar un par de ellas he implementado la mía propia y por lo tanto no quiero respaldar ninguna implementación en particular. Esto no significa que esas implementaciones no funcionen. Simplemente no cumplieron con los requisitos específicos de mi cliente.
Advertencia:
Actualmente solo funciona conAbiertoSSHolibshen el lado del cliente.masillaTodavía no es compatible con esto. Tampoco hay soporte para dispositivos de red y otros aparatos especiales.
PD: Aún así, recomendaría utilizar una administración de usuarios basada en LDAP decente que le brindará más de lo que necesita.