Normalmente, oirás que usar una clave SSH es mucho más seguro que usar una contraseña normal. Sin embargo, me he estado preguntando si esta afirmación es realmente cierta.
Supongamos que tenemos las siguientes variables para este ejemplo:
- El servidor SSH es de acceso público
- El servidor SSH tiene fail2ban y perma-ban cualquier ip que intente ssh a root o falle más de 3 veces.
- Los usuarios tienen Full Disk Encryption en todos los dispositivos que utilizan SSH
- El servidor SSH requiere autenticación de dos factores desde una authy en un dispositivo Android con FDE
- Los usuarios utilizan contraseñas complejas de 48 caracteres para FDE (por ejemplo, YUba3KR06 / 62.Dzq! 955513s0k2m123; sF32a60G6n2PYu0Z8_vv8u) con la garantía de no escribirlos
¿Cuál de las siguientes opciones sería verdaderamente más segura?
- Los usuarios usan contraseñas memorizadas (no escritas) para SSH. Todas las contraseñas serían complejas con más de 16 caracteres (por ejemplo: S_s7vEn93z0! .Lid)
- Los usuarios usan claves SSH sin contraseña