CMD Master
Volver al blog
•Actualizado•Arnošt Havelka

Permisos de claves SSH: cuándo usar chmod 600 o 700

Usa chmod 600 para una clave SSH privada y 700 para su directorio; después comprueba permisos y propiedad antes de volver a conectarte.

Iniciar lección interactiva
Permisos de claves SSH: cuándo usar chmod 600 o 700

Usa chmod 600 para una clave SSH privada cuando su propietario necesite acceso de lectura y escritura, y chmod 700 para el directorio .ssh, de modo que solo el propietario pueda listarlo, modificarlo o entrar en él. OpenSSH rechaza las claves privadas a las que pueden acceder otros usuarios. Comprueba tanto la propiedad como el modo, porque chmod no puede corregir una clave que pertenece a la cuenta equivocada. La lección sobre permisos de SSH ofrece rutas seguras para practicar antes de cambiar una clave real.

Aplica 600 al archivo de clave privada

Para una clave Ed25519 privada en tu directorio personal, ejecuta:

chmod 600 "$HOME/.ssh/id_ed25519"

El modo 600 significa:

UsuariosPermiso
propietariolectura + escritura
gruponinguno
otrosninguno

SSH necesita leer la clave privada, pero otras cuentas no deben poder hacerlo. Un modo de solo lectura como 400 también puede cumplir esa regla de acceso cuando el propietario no necesita modificar el archivo. 600 es la elección práctica habitual para una clave administrada por su propietario.

No apliques la misma regla sin más a la clave pública que termina en .pub. Una clave pública está diseñada para compartirse y no es secreta. La clave privada es el archivo sensible que OpenSSH se niega a usar cuando otros usuarios pueden acceder a él.

Aplica 700 al directorio .ssh

Los directorios necesitan permiso de ejecución, también llamado de búsqueda, para acceder a las entradas que contienen. Protege el directorio con:

chmod 700 "$HOME/.ssh"

El modo 700 concede al propietario permisos de lectura, escritura y búsqueda, y no concede acceso al grupo ni a otros usuarios. Usar 600 en un directorio eliminaría el bit de búsqueda, lo que puede impedir que el propietario abra los archivos que contiene aunque el directorio se pueda leer.

Evita un atajo recursivo como chmod -R 700 "$HOME/.ssh". Añadiría permiso de ejecución a todos los archivos normales y borraría las diferencias deliberadas entre claves privadas, claves públicas, configuración y archivos de hosts conocidos. Cambia por separado el directorio y la clave privada concreta.

Comprueba juntos el modo y la propiedad

Inspecciona ambas rutas después de modificarlas:

ls -ld "$HOME/.ssh"
ls -l "$HOME/.ssh/id_ed25519"

El directorio debe empezar por drwx------ y la clave privada por -rw-------. El propietario que aparece en ambas filas debe ser la cuenta que ejecuta ssh.

Si el modo es correcto pero el propietario no, investiga antes de cambiarlo. En un sistema personal, la reparación prevista podría tener esta forma:

sudo chown "$USER" "$HOME/.ssh/id_ed25519"

No copies ese comando en un sistema compartido o administrado sin confirmar su política de cuentas. La guía de chown explica por separado las comprobaciones de propiedad y los riesgos recursivos.

Cuando chmod no parece funcionar

Los archivos almacenados en sistemas montados desde Windows, de red, de contenedores o administrados de otra forma pueden no exponer normalmente los bits de permisos de Unix. Si chmod indica que ha funcionado pero ls -l no muestra un cambio útil, comprueba las reglas del montaje y del sistema de archivos en lugar de ampliar repetidamente el acceso.

Usa ssh -v host para inspeccionar qué archivo de identidad intenta cargar SSH, pero no publiques registros detallados sin eliminar nombres de host, usuarios y rutas. Un modo correcto en una clave no sirve si SSH está cargando otro archivo.

Para entender el sistema octal, consulta la explicación de los números de chmod. OpenSSH documenta sus comprobaciones de acceso a claves privadas en el manual de ssh.

Referencias

Estos enlaces de documentación aportan detalles confiables sobre los comandos usados en este artículo.

Siguiente

Efecto dominó de Bash: señal Grep

Extraiga líneas de registro procesables rápidamente con filtros grep que no distinguen entre mayúsculas y minúsculas.