Cómo Solucionar el Error 'Permission Denied (publickey)' en Linux de Forma Definitiva

Cómo Solucionar el Error 'Permission Denied (publickey)' en Linux de Forma Definitiva
Anuncio relacionado

Introducción al Error Permission Denied (publickey) en Linux

Uno de los dolores de cabeza más comunes para los administradores de sistemas y desarrolladores que trabajan con servidores Linux es encontrarse con el frustrante mensaje Permission denied (publickey) al intentar conectarse mediante SSH. Este error indica que el servidor ha rechazado tus credenciales porque la llave pública que estás utilizando no está autorizada o los permisos de los archivos de configuración son incorrectos.

Causas Principales del Fallo de Autenticación SSH

El rechazo de la conexión suele deberse a varios factores habituales en entornos Linux:

  • Permisos incorrectos en el directorio .ssh o en los archivos de claves autorizadas.
  • La llave pública no se ha copiado correctamente en el archivo authorized_keys del servidor remoto.
  • El servicio SSH en el servidor (sshd) tiene deshabilitada la autenticación por clave pública.
  • Estás intentando autenticarte con un usuario incorrecto o la clave privada no se está cargando en el cliente local.

Método 1: Corregir los Permisos de los Archivos SSH (Causa más común)

Linux es extremadamente estricto con los permisos de seguridad. Si el directorio .ssh o el archivo authorized_keys tienen permisos de escritura para el grupo o otros usuarios, el servidor rechaza la conexión por seguridad.

  1. Accede al servidor utilizando otro método disponible o la consola de rescate de tu proveedor.
  2. Ejecuta el siguiente comando para corregir los permisos de la carpeta .ssh del usuario:
    chmod 700 ~/.ssh
  3. Ajusta los permisos del archivo de claves autorizadas con:
    chmod 600 ~/.ssh/authorized_keys
  4. Asegúrate de que el propietario sea correcto ejecutando:
    chown -R $USER:$USER ~/.ssh

Método 2: Verificar y Copiar Correctamente la Clave Pública

Si la clave no está registrada en el servidor, el acceso será denegado de forma inmediata.

  1. En tu máquina local, genera una nueva clave si es necesario o visualiza la existente con:
    cat ~/.ssh/id_rsa.pub
  2. Copia el contenido y asegúrate de añadirlo en el archivo ~/.ssh/authorized_keys dentro del servidor remoto.
  3. Una forma automatizada y recomendada desde tu equipo local es utilizar la herramienta ssh-copy-id:
    ssh-copy-id usuario@tu_servidor_ip

Método 3: Revisar la Configuración del Servidor SSH (sshd_config)

A veces el problema radica en que el daemon de SSH tiene restricciones activas en el archivo de configuración global.

  1. Abre el archivo de configuración del servidor con privilegios de superusuario:
    sudo nano /etc/ssh/sshd_config
  2. Busca y verifica que las siguientes directivas estén habilitadas (descomentadas eliminando el símbolo #):
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración ejecutando:
    sudo systemctl restart ssh o sudo systemctl restart sshd
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
WordPress

Cómo Solucionar el Error Estableciendo una Conexión con la Base de Datos en WordPress

Descubre por qué ocurre el temido error de conexión a la base de datos en WordPress y cómo solucionarlo rápidamente editando el archivo wp-config.php.

Leer guía completa →
Linux

Cómo Solucionar el Error 'Permission Denied' en Linux Definitivamente

¿Te aparece el error Permission Denied al ejecutar comandos o archivos en Linux? Descubre cómo solucionarlo modificando permisos y propietarios correctamente.

Leer guía completa →
Juegos

Cómo Solucionar el Error ERR_GFX_D3D_INIT en GTA V de Forma Definitiva

El error ERR_GFX_D3D_INIT en GTA V suele cerrar el juego de forma inesperada. Descubre cómo solucionarlo de manera definitiva con nuestros métodos.

Leer guía completa →