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)

Uno de los problemas más comunes a los que se enfrentan los administradores de sistemas y desarrolladores al utilizar sistemas Linux es el temido mensaje Permission denied (publickey) al intentar conectarse a un servidor remoto mediante SSH. Este fallo indica que el servidor ha rechazado tus credenciales porque la clave pública proporcionada no está autorizada o no se encuentra correctamente configurada en el archivo authorized_keys.

Causas Principales del Error

Las razones por las cuales Linux bloquea tu acceso SSH pueden variar desde permisos incorrectos en los directorios hasta claves mal configuradas. Entre las causas más frecuentes se encuentran:

  • Permisos demasiado abiertos en la carpeta .ssh o en el archivo authorized_keys.
  • El agente SSH no está cargando la clave privada correcta.
  • La clave pública no ha sido añadida correctamente al servidor remoto.
  • El archivo de configuración del servidor SSH (sshd_config) tiene deshabilitada la autenticación por claves.

Método 1: Corregir los Permisos de Archivos y Directorios

Linux es extremadamente estricto con la seguridad. Si los permisos de tu directorio .ssh o de tus archivos de claves son demasiado permisivos (por ejemplo, si tienen permisos de escritura para el grupo o otros), el servidor rechazará la conexión por seguridad.

  1. Abre tu terminal en la máquina local o conéctate mediante la consola de rescate de tu proveedor.
  2. Ejecuta el siguiente comando para asegurar que el directorio .ssh tenga permisos 700: chmod 700 ~/.ssh
  3. Ajusta los permisos del archivo de claves privadas a 600: chmod 600 ~/.ssh/id_rsa
  4. Ajusta los permisos del archivo authorized_keys en el servidor remoto a 600: chmod 600 ~/.ssh/authorized_keys

Método 2: Verificar y Añadir la Clave al Agente SSH

A veces, el cliente SSH no envía la clave correcta al servidor. Debemos asegurarnos de que el agente esté activo y cargando nuestra identidad.

  1. Inicia el agente SSH en segundo plano ejecutando: eval "$(ssh-agent -s)"
  2. Añade tu clave privada predeterminada con el comando: ssh-add ~/.ssh/id_rsa
  3. Verifica que la clave se haya cargado correctamente listando las identidades activas: ssh-add -l

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

Si los pasos anteriores no funcionan, el problema podría residir en la configuración global del demonio SSH en el servidor remoto.

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

Guías y Soluciones Relacionadas

Windows Apps Juegos
Apps

Cómo Solucionar el Error 'ERR_CONNECTION_RESET' en Google Chrome de Forma Definitiva

¿Te aparece el mensaje ERR_CONNECTION_RESET al intentar entrar a tus páginas favoritas? Aprende a solucionarlo con este método definitivo.

Leer guía completa →
Mac

Cómo Solucionar el Error "La aplicación está dañada y no se puede abrir" en Mac

Aprende a solucionar el molesto mensaje de macOS que indica que una app está dañada y no se puede abrir. Recupera el acceso a tus programas favoritos.

Leer guía completa →
Windows

Cómo Solucionar el Error ntoskrnl.exe y Pantalla Azul en Windows de Forma Definitiva

Aprende a identificar y reparar el molesto fallo de la pantalla azul (BSOD) provocado por el archivo del sistema ntoskrnl.exe. Guía paso a paso.

Leer guía completa →