Ahorre 15% en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código: Skills Comenzar
Secciones
Administración DNS Linux

¿Dónde se almacenan las claves SSH en Linux — Y cómo gestionarlas de forma segura

SSH (Secure Shell) es una de las herramientas más críticas en el ecosistema Linux. Los administradores de sistemas, desarrolladores e ingenieros de DevOps la utilizan diariamente para acceso remoto a servidores, transferencias seguras de archivos, automatización de implementaciones y gestión de infraestructura. Aunque la mayoría de los usuarios interactúan con SSH a través de un simple comando de terminal, la verdadera columna vertebral de seguridad reside en los pares de claves SSH — credenciales criptográficas que permiten autenticación sin contraseña, flujos de trabajo automatizados y control de acceso reforzado.

Ya sea que estés gestionando una única instancia de VPS Hosting u orquestando acceso en docenas de Dedicated Servers, entender exactamente dónde se almacenan las claves SSH — y cómo gestionarlas correctamente — no es opcional. Es un requisito de seguridad fundamental.

Esta guía cubre todo: ubicaciones de almacenamiento de claves predeterminadas, claves de host a nivel del sistema, configuraciones personalizadas, requisitos de permisos y mejores prácticas para la gestión segura de claves.

¿Qué son las claves SSH y por qué son importantes?

Las claves SSH utilizan criptografía asimétrica para autenticar usuarios y servidores. Cada par de claves consta de:

  • Clave privada — se mantiene en secreto en la máquina cliente, nunca se comparte
  • Clave pública — se coloca en el servidor remoto para verificar la identidad

Cuando te conectas a un servidor, SSH utiliza un protocolo de enlace criptográfico para verificar que posees la clave privada correspondiente a la clave pública en el servidor, sin transmitir nunca la clave privada en sí. Esto es fundamentalmente más seguro que la autenticación basada en contraseñas.

Ubicación de Almacenamiento Predeterminada de Claves SSH (Claves de Usuario)

Para cualquier usuario estándar de Linux, las claves SSH se almacenan en un directorio oculto dentro de la carpeta de inicio:

~/.ssh/

Esto se expande a la ruta completa:

/home/username/.ssh/

Para el usuario root específicamente:

/root/.ssh/

Archivos Comunes Dentro de ~/.ssh/

ArchivoPropósito
id_rsaClave privada RSA predeterminada
id_rsa.pubClave pública RSA coincidente
id_ecdsaClave privada ECDSA
id_ed25519Clave privada Ed25519 (recomendada)
id_*.pubContraparte de clave pública para cualquier clave privada
authorized_keysLista de claves públicas permitidas para iniciar sesión en esta cuenta
known_hostsHuellas dactilares de servidores conectados previamente
configConfiguración de cliente SSH específica del usuario

Cuando ejecutas ssh-keygen, las claves se escriben en este directorio de forma predeterminada a menos que especifiques explícitamente una ruta diferente durante la generación de claves.

Ubicaciones de claves SSH en todo el sistema (claves de host)

Más allá de las claves de usuario, el daemon SSH (sshd) — el componente del lado del servidor — mantiene su propio conjunto de claves de host. Estas se almacenan en todo el sistema en:

/etc/ssh/

Archivos de claves de host en /etc/ssh/

ArchivoPropósito
ssh_host_rsa_keyClave privada de host RSA
ssh_host_rsa_key.pubClave pública de host RSA
ssh_host_ecdsa_keyClave privada de host ECDSA
ssh_host_ecdsa_key.pubClave pública de host ECDSA
ssh_host_ed25519_keyClave privada de host Ed25519
ssh_host_ed25519_key.pubClave pública de host Ed25519

Estas claves de host sirven un propósito diferente al de las claves de usuario. Cuando un cliente se conecta a un servidor por primera vez, el servidor presenta su clave pública de host. El cliente almacena esta huella digital en ~/.ssh/known_hosts. En conexiones posteriores, SSH verifica que la huella digital coincida — protegiéndose contra ataques de intermediario.

> Importante: Las claves de host se generan automáticamente durante la instalación del servidor SSH. Nunca debería ser necesario crearlas manualmente, pero debería saber dónde se encuentran para propósitos de auditoría y copia de seguridad.

Ubicaciones personalizadas de claves SSH

No estás restringido al directorio ~/.ssh/ predeterminado. Las claves SSH se pueden generar y almacenar en cualquier lugar del sistema de archivos. Para usar una clave almacenada en una ubicación no predeterminada, especifícala explícitamente:

ssh -i /path/to/custom_key user@host

Usando ~/.ssh/config para múltiples claves

Administrar múltiples servidores, proyectos o cuentas de usuario se vuelve mucho más limpio con un archivo ~/.ssh/config correctamente configurado. Esto te permite definir configuraciones por host, incluida la clave a usar:

Host production-server
    HostName 203.0.113.10
    User deploy
    IdentityFile ~/.ssh/production_ed25519

Host staging-server
    HostName 203.0.113.20
    User deploy
    IdentityFile ~/.ssh/staging_ed25519

Host github.com
    User git
    IdentityFile ~/.ssh/github_key

Con esta configuración, ejecutar ssh production-server usa automáticamente la clave correcta sin ninguna bandera adicional.

Cómo se utilizan las claves SSH: Cliente vs. Servidor

Conexiones salientes (lado del cliente)

Cuando inicias una conexión SSH, el cliente SSH busca claves privadas en ~/.ssh/ de forma predeterminada. Estas claves se utilizan para autenticarte en el servidor remoto.

Las herramientas que utilizan claves de cliente SSH incluyen:

  • ssh — acceso directo a shell remoto
  • scp — copia segura de archivos
  • rsync — sincronización de archivos sobre SSH
  • git — cuando se utilizan repositorios remotos basados en SSH

Conexiones entrantes (lado del servidor)

En el servidor, SSH verifica un archivo específico para determinar qué usuarios están autorizados a conectarse:

~/.ssh/authorized_keys

Este archivo contiene una clave pública por línea. Cada entrada otorga al titular de la clave privada correspondiente permiso para iniciar sesión como ese usuario.

Ejemplo práctico: Si el usuario alice desea SSH en un servidor como usuario webadmin, la clave pública de Alice debe estar presente en /home/webadmin/.ssh/authorized_keys — no en el directorio de inicio de Alice en ese servidor.

Permisos de Archivo — Crítico para la Seguridad SSH

Aquí es donde muchos administradores cometen errores costosos. SSH es deliberadamente estricto con los permisos de archivo. Si los permisos son demasiado abiertos, SSH rechazará silenciosamente usar tus claves o rechazará los intentos de inicio de sesión por completo.

Configuración de Permisos Requerida

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/config

Tabla de Referencia de Permisos

RutaPermiso RequeridoOctal
~/.ssh/Lectura/escritura/ejecución solo del propietario700
~/.ssh/authorized_keysLectura/escritura solo del propietario600
~/.ssh/id_rsa (clave privada)Lectura/escritura solo del propietario600
~/.ssh/id_rsa.pub (clave pública)Lectura del propietario, lectura de otros644
~/.ssh/configLectura/escritura solo del propietario600

Para corregir permisos en un comando:

chmod 700 ~/.ssh && chmod 600 ~/.ssh/* && chmod 644 ~/.ssh/*.pub

Generación segura de claves SSH

Siempre prefiere Ed25519 sobre RSA para nuevas claves. Ed25519 ofrece una seguridad más fuerte con tamaños de clave más pequeños y un rendimiento más rápido.

ssh-keygen -t ed25519 -C "your_email@example.com"

Para sistemas heredados que requieren RSA, utiliza al menos 4096 bits:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Siempre establece una frase de contraseña cuando se te solicite. Una frase de contraseña cifra la clave privada en el disco, por lo que incluso si un atacante obtiene acceso a tu sistema de archivos, no puede usar la clave sin la frase de contraseña.

Gestión de claves con ssh-agent

Ingresar tu contraseña cada vez que usas una clave SSH se vuelve impracticable. ssh-agent resuelve esto almacenando en caché las claves descifradas en memoria durante la duración de tu sesión.

Iniciando ssh-agent y agregando una clave

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Se te pedirá la contraseña una vez. Después de eso, las operaciones SSH utilizan la clave en caché automáticamente.

Comandos útiles de ssh-agent

# List currently loaded keys
ssh-add -l

# Remove a specific key from the agent
ssh-add -d ~/.ssh/mykey

# Remove all keys from the agent
ssh-add -D

Copiar claves públicas a servidores remotos

La forma más fácil de instalar tu clave pública en un servidor remoto es con ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-host

Esto añade tu clave pública a ~/.ssh/authorized_keys en el servidor remoto y establece los permisos correctos automáticamente.

Si ssh-copy-id no está disponible, hazlo manualmente:

cat ~/.ssh/id_ed25519.pub | ssh user@remote-host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Auditoría y Depuración de Problemas de Claves SSH

Registro de Conexión Detallado

Cuando la autenticación SSH falla, el modo detallado revela exactamente qué está sucediendo:

ssh -v user@host

Para aún más detalle:

ssh -vvv user@host

Esta salida muestra qué archivos de identidad se intentaron, si se consultó el agente y dónde falló la autenticación.

Verificar el Registro SSH del Lado del Servidor

En el servidor remoto, los eventos de autenticación SSH se registran en:

# Debian/Ubuntu
tail -f /var/log/auth.log

# CentOS/RHEL/Fedora
tail -f /var/log/secure

# Systems using journald
journalctl -u sshd -f

Verificar Tu Archivo authorized_keys

# Check the file exists and has correct permissions
ls -la ~/.ssh/authorized_keys

# View its contents
cat ~/.ssh/authorized_keys

# Count how many keys are authorized
grep -c "ssh-" ~/.ssh/authorized_keys

Mejores prácticas de seguridad de claves SSH

La gestión adecuada de claves va más allá de saber dónde se almacenan los archivos. Sigue estas prácticas en cada sistema que administres:

1. Usa una clave por propósito

Nunca reutilices la misma clave SSH en diferentes entornos, clientes o proyectos. Usa claves separadas para acceso personal, automatización de implementación y acceso compartido del equipo.

2. Rota las claves regularmente

Trata las claves SSH como contraseñas — rótalas periódicamente, especialmente después de salidas de miembros del equipo o compromisos sospechosos.

3. Audita archivos authorized_keys

Revisa regularmente qué claves públicas están autorizadas en cada servidor. Elimina cualquier clave que pertenezca a empleados anteriores, automatización obsoleta o fuentes no reconocidas:

# Find all authorized_keys files on a system
find / -name "authorized_keys" 2>/dev/null

4. Desactiva la autenticación por contraseña

Una vez que las claves SSH estén configuradas, desactiva completamente el inicio de sesión SSH basado en contraseña en /etc/ssh/sshd_config:

PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin prohibit-password

Reinicia sshd después de los cambios:

systemctl restart sshd

5. Restringe el uso de claves raíz

Evita usar claves SSH raíz en múltiples entornos. Usa cuentas de usuario habilitadas para sudo con claves individuales en su lugar.

6. Usa autenticación basada en certificados para escala

Para infraestructuras grandes, considera certificados SSH (a través de una Autoridad de certificados SSH) en lugar de administrar entradas authorized_keys individuales. Esto simplifica dramáticamente la gestión de acceso en muchos servidores.

Claves SSH en Entornos Cloud y Hosting

Al desplegar servidores en entornos cloud o hosting administrado, la gestión de claves SSH se vuelve aún más crítica. La mayoría de plataformas — incluyendo proveedores de VPS Hosting — te permiten inyectar una clave pública en el momento del aprovisionamiento, dándote acceso seguro inmediato sin necesidad de establecer nunca una contraseña.

Para equipos que gestionan múltiples entornos, considera emparejar tu estrategia de clave SSH con una configuración estructurada de Paneles de Control VPS, que puede simplificar la gestión de usuarios y el control de acceso en toda tu infraestructura.

Si estás ejecutando aplicaciones web o servicios que requieren comunicación segura más allá de SSH, emparejar la configuración de tu servidor con Certificados SSL correctamente configurados garantiza cifrado de extremo a extremo para todo el tráfico — no solo para acceso administrativo.

Para equipos que dependen de Email Hosting junto con su infraestructura de servidores, la gestión de claves SSH se extiende a la seguridad de los sistemas que manejan tu correo — otra razón por la que la higiene consistente de claves en todos los servidores es importante.

Referencia Rápida: Ubicaciones de Archivos de Clave SSH

UbicaciónTipoPropósito
~/.ssh/id_ed25519Clave privada del usuarioAutenticación del cliente
~/.ssh/id_ed25519.pubClave pública del usuarioDistribuida a servidores
~/.ssh/authorized_keysClaves públicas autorizadasControla quién puede iniciar sesión
~/.ssh/known_hostsHuellas dactilares del servidorPreviene ataques MITM
~/.ssh/configConfiguración del clienteConfiguración por host
/etc/ssh/ssh_host_*Claves del hostIdentidad del servidor
/etc/ssh/sshd_configConfiguración del demonioConfiguración del servidor SSH

Conclusión

Entender dónde se almacenan las claves SSH en Linux — y gestionarlas con disciplina — es una de las habilidades más importantes para cualquiera que trabaje con servidores, ya sea como desarrollador independiente o como parte de un gran equipo de operaciones.

Para resumir los puntos clave:

  • Las claves de usuario se encuentran en ~/.ssh/ y se utilizan para la autenticación del lado del cliente
  • Las claves del host se encuentran en /etc/ssh/ e identifican el servidor a los clientes que se conectan
  • authorized_keys controla el acceso entrante — audítalo regularmente
  • Los permisos de archivo son innegociables — los permisos incorrectos rompen SSH silenciosamente
  • Ed25519 es el tipo de clave preferido para la generación de nuevas claves
  • Siempre usa frases de contraseña y ssh-agent para la gestión diaria de claves
  • Rota y audita claves como parte de tu higiene de seguridad regular

En sistemas de producción — ya sea que estés ejecutando Servidores Dedicados o infraestructura compartida — la mala gestión de claves SSH es uno de los vectores más comunes para acceso no autorizado. La inversión de tiempo en hacerlo correctamente genera dividendos en seguridad, confiabilidad y tranquilidad.

Trata tus claves SSH con el mismo cuidado que darías a cualquier credencial crítica. Porque eso es exactamente lo que son.