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 ERR_NAME_NOT_RESOLVED en Google Chrome Definitivamente

El error ERR_NAME_NOT_RESOLVED en Chrome impide acceder a tus sitios web favoritos. Descubre aqui como solucionarlo paso a paso.

Leer guía completa →
PrestaShop

Cómo Solucionar el Error 503 Backend Fetch Failed en PrestaShop de Forma Definitiva

Descubre las causas principales del error 503 Backend Fetch Failed en PrestaShop. Aplica nuestros métodos definitivos para que tu tienda vuelva a funcionar.

Leer guía completa →
Juegos

Cómo Solucionar el Error de la Pantalla Azul de la Muerte en Valorant Vanguard Definitivamente

Aprende a resolver el molesto pantallazo azul provocado por el sistema antitrampas Vanguard en Valorant. Sigue nuestra guía paso a paso para solucionarlo hoy.

Leer guía completa →