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

Uno de los dolores de cabeza más comunes para los administradores de sistemas y desarrolladores que utilizan Linux es el frustrante mensaje Permission denied (publickey) al intentar conectarse a un servidor remoto mediante SSH. Este fallo de autenticación impide el acceso por completo, bloqueando la gestión del sistema.

¿Cuáles son las causas del error Permission Denied?

Este problema ocurre generalmente debido a una de las siguientes razones:

  • Los permisos de los archivos o directorios de la clave SSH son demasiado abiertos.
  • La clave pública no está correctamente agregada en el archivo authorized_keys del servidor remoto.
  • El servicio SSH no está configurado para permitir la autenticación por clave pública.
  • Estás intentando autenticarte con la clave privada incorrecta.

Método 1: Corregir los permisos de la clave SSH y del directorio .ssh

Linux es extremadamente estricto con la seguridad. Si los permisos de tu carpeta .ssh o de tus claves son incorrectos, el cliente o el servidor rechazarán la conexión automáticamente.

  1. Abre tu terminal en la máquina local.
  2. Ejecuta el siguiente comando para asegurar los permisos correctos en tu directorio .ssh:
    chmod 700 ~/.ssh
  3. Asegúrate de que los permisos de tu clave privada sean correctos (solo lectura para el propietario):
    chmod 600 ~/.ssh/id_rsa (o id_ed25519 según corresponda).
  4. Vuelve a intentar la conexión SSH.

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

Si los permisos son correctos, el problema podría ser que el servidor no reconoce tu clave pública.

  1. Si aún tienes acceso al servidor por otro medio, o usando contraseña (si está habilitada), inicia sesión.
  2. Verifica que el archivo authorized_keys exista dentro del directorio ~/.ssh/ del usuario con el que intentas conectar:
    ls -la ~/.ssh/
  3. Si no existe, créalo y dale los permisos adecuados:
    touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  4. Copia el contenido de tu clave pública local (id_rsa.pub) y añádelo como una nueva línea dentro del archivo authorized_keys en el servidor.

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

A veces, el servidor rechaza las claves públicas porque la configuración del servicio SSH las tiene deshabilitadas explícitamente.

  1. Accede al servidor y abre el archivo de configuración con privilegios de administrador:
    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
    AuthorizedKeysFile .ssh/authorized_keys
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración:
    sudo systemctl restart ssh o sudo systemctl restart sshd.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Apps

Cómo Solucionar el Error de Discord JavaScript Error Fatal de Forma Definitiva

Descubre por qué ocurre el fatídico JavaScript Error en la aplicación de Discord y cómo solucionarlo definitivamente con estos sencillos pasos.

Leer guía completa →
Hardware

Cómo Solucionar el Sobrecalentamiento de la GPU en PC de Forma Definitiva

¿Tu tarjeta gráfica alcanza temperaturas peligrosas mientras juegas? Descubre las causas principales y aplica nuestros métodos definitivos para enfriarla.

Leer guía completa →
Windows

Cómo Solucionar el Error 0x800F0922 en Windows Update Definitivamente

¿Windows Update se bloquea con el código 0x800F0922? Descubre las causas principales y aplica nuestros métodos efectivos para solucionarlo hoy mismo.

Leer guía completa →