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 problemas más comunes al intentar conectarse a un servidor remoto mediante SSH en sistemas operativos basados en Linux es el fallo de autenticación Permission denied (publickey). Este error ocurre cuando el servidor rechaza la clave pública del usuario que intenta acceder, impidiendo por completo la conexión segura. A continuación, exploraremos las causas y la solución definitiva para recuperar el acceso a tu servidor.

Causas principales del fallo de autenticación SSH

  • Permisos incorrectos en el directorio .ssh o en los archivos de claves.
  • La clave pública no está registrada en el archivo authorized_keys del servidor remoto.
  • El servicio SSH no está configurado para permitir la autenticación por clave pública.
  • Se está intentando usar una clave privada incorrecta o no se ha especificado el archivo de identidad adecuado.

Método 1: Corregir los permisos de archivos y directorios SSH

El motivo más frecuente de este error son los permisos demasiado abiertos en el directorio de configuración SSH del usuario. Linux es sumamente estricto con esto. Sigue estos pasos para solucionarlo:

  1. Inicia sesión en tu servidor mediante una consola de emergencia o método alternativo.
  2. Ejecuta el siguiente comando para ajustar los permisos de la carpeta .ssh: chmod 700 ~/.ssh
  3. Establece los permisos correctos para el archivo authorized_keys: chmod 600 ~/.ssh/authorized_keys
  4. Verifica que el propietario de los archivos sea el usuario correcto: sudo chown -R $USER:$USER ~/.ssh

Método 2: Verificar y añadir la clave pública al servidor

Si la clave no se copió correctamente, el servidor la rechazará. Asegúrate de registrar tu clave pública ejecutando el siguiente comando desde tu máquina local:

  1. Copia tu clave ejecutando: ssh-copy-id usuario@tu_servidor_ip
  2. Si el puerto SSH es diferente, especifícalo así: ssh-copy-id -p 2222 usuario@tu_servidor_ip
  3. Prueba la conexión nuevamente utilizando el comando verbose para depurar: ssh -v usuario@tu_servidor_ip

Método 3: Revisar la configuración del demonio SSH (sshd_config)

En ocasiones, la configuración del servidor bloquea este método de acceso. Debes editar el archivo de configuración del servicio SSH:

  1. Abre el archivo de configuración con privilegios de administrador: sudo nano /etc/ssh/sshd_config
  2. Busca y asegúrate de que las siguientes líneas estén activas y descomentadas:
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración: sudo systemctl restart ssh
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
PrestaShop

Cómo Solucionar el Error de Excepción de Smarty en PrestaShop de Forma Definitiva

Descubre por qué ocurren los errores de Smarty en tu tienda online y cómo solucionarlos eficazmente. Sigue nuestros pasos para restaurar el funcionamiento de tu PrestaShop.

Leer guía completa →
PrestaShop

Cómo Solucionar el Error 500 en el Módulo de PrestaShop de Forma Definitiva

El error 500 al gestionar o actualizar módulos en PrestaShop es común pero frustrante. Aprende a diagnosticar y solucionar esta incidencia técnica rápidamente.

Leer guía completa →
Windows

Cómo Solucionar el Error Critical Process Died en Windows de Forma Definitiva

Descubre las causas principales del error Critical Process Died en Windows y sigue nuestros métodos efectivos para solucionar este fallo del sistema.

Leer guía completa →