Autenticación de contraseña SSH no interactiva
Automatizar conexiones SSH que requieren contraseña sigue siendo controvertido: algunos ingenieros confían felizmente en herramientas como `sshpass`, mientras que otros argumentan que estos enfoques son frágiles porque dependen de analizar prompts y de un comportamiento del TTY propenso a fallos. Muchos participantes insisten en que la autenticación basada en claves públicas o certificados, Kerberos o certificados SSH de corta duración es más segura y escalable, pero reconocen que el hardware de red heredado, las configuraciones TACACS/RADIUS y las restricciones de los proveedores a menudo dejan SSH solo con contraseña como la única opción práctica. La conversación se amplía a cómo gestionar el acceso privilegiado a escala —mediante gestión de configuración, productos PAM, bastiones o agentes personalizados—, destacando las compensaciones entre seguridad, complejidad y fiabilidad en infraestructuras reales.
Enfoques de autenticación SSH por contraseña no interactiva
- Muchos comentaristas sostienen que la autenticación por contraseña en SSH debería evitarse; se prefieren claves/certificados, y algunos deshabilitan por completo los inicios de sesión con contraseña.
- Otros señalan que la autenticación por contraseña no interactiva es inevitable con ciertos dispositivos de red, BMCs, equipos de proveedores, configuraciones TACACS+/RADIUS o aprovisionamiento inicial cuando solo hay contraseñas disponibles.
- Algunos están explorando automatizar SSH basado en OTP/TOTP, pero no se detallan recetas concretas ni robustas.
sshpass vs alternativas (passh, ASKPASS, expect)
- Varias personas dicen que sshpass es “suficientemente bueno”, citando su uso a gran escala (decenas de miles de máquinas) sin problemas y elogiando su simplicidad.
- Los críticos señalan que sshpass es frágil porque analiza los prompts de contraseña; cambios en los prompts o en el comportamiento del TTY pueden romperlo.
- Un patrón alternativo es usar SSH_ASKPASS y SSH_ASKPASS_REQUIRE (en clientes OpenSSH más recientes) para inyectar contraseñas de una forma más controlada, lo que podría hacer que herramientas extra sean más simples o innecesarias.
- Se menciona la herramienta passh como más robusta en el manejo del TTY; la acusación de “broken by design” sobre sshpass proviene de ese proyecto, no del autor del artículo.
- Se mencionan herramientas tradicionales como expect; son potentes pero pueden ser frágiles, especialmente bajo cron o sin un TTY real.
Claves, certificados y restricciones del mundo real
- Los comentaristas reiteran que las claves/certificados son “la forma correcta”, pero describen obstáculos:
- Equipos de red (p. ej., algunas variantes de Cisco/Juniper, dispositivos Ubiquiti) donde la configuración de claves es incómoda o no persistente.
- La autenticación central mediante TACACS+/RADIUS suele estar diseñada en torno a contraseñas, con soporte de claves limitado o improvisado.
- Muchos stacks SSH embebidos carecen de funciones modernas como FIDO2.
- Algunos sugieren certificados SSH, Kerberos o FreeIPA, pero reconocen la complejidad operativa y organizativa.
TTY, scripting y robustez
- Varias anécdotas sobre trabajos cron, sftp y herramientas que se comportan de forma distinta sin un TTY de control.
- Entre las soluciones están
script,screen,ssh -t, Paramiko y usar rsync en lugar de sftp. - Hay debate sobre si el análisis de TTY/
/procy el scripting de shell son “triviales si lees el manual” o si, por naturaleza, están llenos de trampas; se invoca el principio de la menor sorpresa.
Acceso privilegiado y soluciones de más alto nivel
- Algunos abogan por sistemas de gestión de acceso privilegiado, bastiones, VPN asociadas al usuario o certificados SSH de corta duración (por ejemplo, mediante Vault/Teleport) para evitar incrustar contraseñas por completo.
- Otros advierten que estos productos pueden ser objetivos de alto valor y frágiles por sí mismos, y que un buen diseño de IAM/PAM puede ser más importante que añadir otra capa de proxy.