¿Dónde se almacenan las claves SSH en Linux y cómo gestionarlas de forma segura?
SSH (Secure Shell) es una herramienta fundamental en el ecosistema de Linux, utilizada para acceso remoto, transferencias de archivos seguras, automatización y gestión de servidores. Mientras que la mayoría de los usuarios interactúan con SSH a través del comando ssh, en el fondo SSH se basa en pares de claves públicas y privadas para la autenticación, especialmente en entornos donde los inicios de sesión sin contraseña, la automatización y las prácticas de DevOps son esenciales.
Ubicación predeterminada de almacenamiento de claves SSH
El lugar más común donde se almacenan las claves SSH es:
Esto se refiere al directorio .ssh en la carpeta de inicio del usuario, por ejemplo:
Archivos comunes en este directorio:
| Archivo | Propósito |
|---|---|
| id_rsa | Clave privada predeterminada (RSA) |
| id_rsa.pub | Clave pública correspondiente |
| id_ecdsa, id_ed25519 | Otras claves privadas (ECDSA, Ed25519) |
| id_*.pub | Claves públicas correspondientes |
| authorized_keys | Almacena claves públicas permitidas para conectarse |
| known_hosts | Almacena huellas digitales de servidores (verificación de clave de host) |
| config | Configuración del cliente SSH específica del usuario |
Si generas claves con ssh-keygen, se almacenan aquí por defecto a menos que se especifique una ruta.
Ubicaciones de claves SSH a nivel del sistema
Claves de host del servidor SSH (sshd)
Claves a nivel del sistema utilizadas por el demonio SSH (lado del servidor):
Archivos típicos:
| Archivo | Propósito |
|---|---|
| ssh_host_rsa_key | Clave privada de host (RSA) |
| ssh_host_rsa_key.pub | Clave pública de host |
| ssh_host_ecdsa_key | Clave privada de host ECDSA |
| ssh_host_ed25519_key | Clave privada de host Ed25519 |
Estas claves se utilizan para identificar el servidor ante los clientes, no para autenticar usuarios.
El demonio SSH (sshd) presenta la clave pública de host durante la conexión; los clientes la comparan con ~/.ssh/known_hosts.
Ubicaciones de claves personalizadas
Puedes generar o usar claves SSH desde cualquier ubicación, pero debes especificar la ruta:
También puedes configurar múltiples claves a través de ~/.ssh/config:
¿Dónde se utilizan las claves?
Saliente (lado del cliente)
Los clientes SSH buscan claves privadas en ~/.ssh/ por defecto. Se utilizan para iniciar la autenticación al conectarse a un servidor remoto.
ssh, scp, rsync sobre SSH, git (cuando se usa remoto SSH)
📌 Entrante (lado del servidor)
El servidor busca claves públicas en:
Este archivo lista qué claves públicas están permitidas para iniciar sesión en esa cuenta de usuario específica.
Si user_a intenta SSH en un servidor como user_b, su clave pública debe estar presente en ~user_b/.ssh/authorized_keys.
Permisos — Críticos para la seguridad
Permisos correctos:
Los permisos incorrectos pueden hacer que SSH ignore tus claves o rechace inicios de sesión por completo.
Gestionando claves SSH de forma segura
Usa una frase de contraseña al generar claves privadas:
Usa ssh-agent para almacenar en caché claves desbloqueadas en memoria:
- Rota las claves regularmente
- Elimina claves no utilizadas o huérfanas de “authorized_keys”
- Usa claves separadas por host/proyecto
- Evita usar claves de root en diferentes entornos
Auditoría y depuración
Para ver qué clave se está utilizando durante la conexión SSH:
Esto imprime registros detallados, incluyendo qué archivo de identidad se intentó.
Para listar las claves cargadas en tu agente actual:
Para eliminar una clave:
Conclusión
Entender dónde se almacenan las claves SSH en Linux — y cómo gestionarlas de forma segura — es crucial para administradores de sistemas, desarrolladores, ingenieros de DevOps y cualquier persona que trabaje en entornos de múltiples hosts o múltiples usuarios.
Al conocer la diferencia entre claves de usuario, claves de host y claves autorizadas, puedes:
- Resolver problemas de autenticación
- Configurar flujos de trabajo automatizados seguros
- Gestionar el acceso entre equipos y sistemas
En sistemas de producción o plataformas en la nube (por ejemplo, VPS o servidores dedicados), una mala gestión de las claves SSH puede llevar a vulnerabilidades graves. Asegúrate de seguir las mejores prácticas y auditar el acceso regularmente.
