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
Mac

Cómo Solucionar el Error de Disco de Arranque Lleno en Mac de Forma Definitiva

Descubre por qué tu Mac se queda sin espacio en el disco de arranque y cómo solucionarlo rápidamente liberando gigabytes ocultos.

Leer guía completa →
WordPress

Cómo Solucionar el Error de Límite de Memoria Agotada en WordPress de Forma Definitiva

El error de memoria agotada en WordPress puede bloquear tu sitio web repentinamente. Aprende a solucionarlo modificando el archivo wp-config.php o php.ini.

Leer guía completa →
WordPress

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

Descubre las causas principales del error de conexión a la base de datos en WordPress y aplica nuestros métodos efectivos para solucionarlo en pocos minutos. Restaura el acceso a tu sitio web de forma segura.

Leer guía completa →