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 'El módulo no se ha podido cargar' en PrestaShop

Aprende a resolver el frustrante error al subir módulos en PrestaShop. Te mostramos causas y soluciones definitivas.

Leer guía completa →
Magento

Cómo Solucionar el Error de Indexación en Magento de Forma Definitiva

¿Tus productos no se actualizan en la tienda? Descubre cómo resolver los bloqueos y errores comunes en los indexadores de Magento de forma rápida.

Leer guía completa →
Windows

Cómo Solucionar el Error de Instalación de .NET Framework en Windows 11 de Forma Definitiva

Descubre los métodos definitivos para corregir los fallos de instalación y ejecución de .NET Framework en Windows 11. Soluciona el problema tú mismo.

Leer guía completa →