Linux SSH Authentication | 100 Days of DevOps

Cuando trabajamos con servidores remotos, la forma más habitual de conectar es mediante SSH Secure Shell. Si has administrado servidores Linux o desplegado aplicaciones, probablemente ya lo hayas usado. En este artÃculo explicamos qué es SSH, cómo iniciar sesión y cómo configurar el acceso sin contraseña entre varios servidores, junto con recomendaciones para integrarlo en proyectos de software a medida.
Qué es SSH. SSH Secure Shell es un protocolo que permite conectar de forma segura con otra máquina a través de una red no segura. Es ampliamente utilizado por desarrolladores, administradores de sistemas y equipos DevOps para iniciar sesión en servidores remotos, ejecutar comandos, transferir archivos y gestionar sistemas de forma segura. A diferencia de protocolos antiguos como Telnet, SSH cifra toda la comunicación protegiendo credenciales y datos de escuchas no deseadas.
Cómo iniciar sesión con SSH. La sintaxis básica es ssh username@hostname donde username es la cuenta en el servidor remoto y hostname puede ser la dirección IP o el nombre de dominio. Ejemplo: ssh tony@172.16.238.10. Tras ejecutar el comando se solicitará la contraseña del usuario y, si es correcta, obtendremos un shell en la máquina remota.
Por qué evitar contraseñas. Escribir contraseñas a cada inicio de sesión es tedioso y poco práctico cuando hay que conectarse a muchos servidores o automatizar tareas. Las contraseñas débiles o reutilizadas son un riesgo. La alternativa recomendada son las claves SSH por su seguridad y conveniencia.
Acceso sin contraseña con claves SSH. El flujo es sencillo: generamos un par de claves en la máquina local privada y pública, copiamos la clave pública al servidor y cuando nos conectemos el servidor comprobará que la clave privada corresponde a la pública almacenada. Si coinciden iniciamos sesión sin solicitar contraseña.
Paso 1 generar claves SSH. En el equipo cliente ejecutar ssh-keygen -t rsa -b 4096 y aceptar valores por defecto. Para automatización se recomienda dejar la frase de paso vacÃa. Esto crea dos archivos en ~/.ssh id_rsa clave privada que hay que proteger y id_rsa.pub clave pública para compartir.
Paso 2 copiar la clave pública al servidor. Utiliza ssh-copy-id -i ~/.ssh/id_rsa.pub username@hostname y proporciona la contraseña una única vez. Ejemplo ssh-copy-id -i ~/.ssh/id_rsa.pub tony@172.16.238.10. Tras esto el usuario podrá conectarse sin introducir la contraseña.
Paso 3 comprobar el acceso. Con ssh tony@172.16.238.10 se deberÃa abrir la sesión sin solicitar contraseña. Si hay problemas, revisa permisos del directorio ~/.ssh y del archivo authorized_keys en el servidor, estos deben ser 700 para ~/.ssh y 600 para authorized_keys.
Ejemplo práctico con varios servidores. En escenarios de despliegue podemos necesitar que un host de salto acceda sin contraseña a varias aplicaciones. Supongamos servidores app con IPs 172.16.238.10, 172.16.238.11 y 172.16.238.12 y usuarios tony steve y banner. Ejecutar ssh-copy-id para cada usuario permite al usuario del jump host autenticarse en todos ellos sin contraseña, simplificando despliegues y automatizaciones.
Acceso sudo sin contraseña. Para scripts que requieren privilegios root puede ser necesario configurar sudo sin pedir contraseña. Edita sudoers con sudo visudo y añade username ALL=(ALL) NOPASSWD:ALL reemplazando username por el usuario correspondiente. Aplica esta configuración con cuidado y solo para cuentas de confianza usadas en procesos automatizados.
Buenas prácticas de seguridad. Protege la clave privada con permisos estrictos y considera el uso de agentes SSH y frases de paso cuando la automatización lo permita. Limita el acceso por IP en el firewall, desactiva el acceso por contraseña en el servidor cambiando PasswordAuthentication no en la configuración de OpenSSH y monitoriza accesos. Para proyectos empresariales y auditorÃa considera integrar soluciones de ciberseguridad y pentesting profesionales.
Servicios y soluciones. En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones integrales que incluyen software a medida, inteligencia artificial para empresas, ciberseguridad y servicios cloud. Podemos ayudarte a diseñar flujos de despliegue seguros, automatizar la provisión de claves y montar arquitecturas en la nube. Consulta nuestros servicios de ciberseguridad y pentesting en servicios de ciberseguridad y conoce nuestras opciones de infraestructura en servicios cloud AWS y Azure.
Adicionalmente ofrecemos servicios de inteligencia de negocio y Power BI para visualizar y auditar accesos e incidencias, desarrollo de agentes IA e implementaciones de IA para empresas que optimizan procesos y seguridad. Si tu proyecto necesita integración continua despliegues automatizados o software a medida para gestionar claves y permisos, en Q2BSTUDIO tenemos la experiencia y servicios necesarios para hacerlo realidad.
Conclusión. SSH es la herramienta fundamental para administrar servidores Linux de manera segura. El uso de claves SSH reduce fricciones y mejora la seguridad frente a contraseñas. Combinado con buenas prácticas de configuración, control de sudo y herramientas de monitorización, aporta una base sólida para entornos productivos. Para implementaciones avanzadas y soporte en proyectos de software a medida contacta con Q2BSTUDIO y descubre cómo podemos ayudarte a asegurar y automatizar tus infraestructuras.
Comentarios