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

¿Qué es el error 'Permission denied (publickey)' en Linux?

El error Permission denied (publickey) es uno de los problemas más comunes al intentar conectarse a un servidor remoto mediante el protocolo SSH en sistemas operativos Linux como Ubuntu, Debian o CentOS. Este fallo indica que el servidor ha rechazado la autenticación basada en claves SSH, impidiendo que establezcas una conexión segura.

Principales causas del error de clave pública en SSH

  • Permisos incorrectos en el directorio .ssh o en los archivos de claves.
  • La clave pública local no está registrada en el archivo authorized_keys del servidor remoto.
  • El cliente SSH está intentando usar una clave incorrecta o el agente SSH no la tiene cargada.
  • Configuración restrictiva en el archivo sshd_config del servidor.

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

Una de las causas más frecuentes son los permisos demasiado abiertos en el directorio .ssh. Para solucionarlo, debes acceder físicamente a tu servidor (o mediante otra vía de rescate) y ejecutar los siguientes comandos en la terminal:

  1. chmod 700 ~/.ssh
  2. chmod 600 ~/.ssh/authorized_keys
  3. chmod 644 ~/.ssh/id_rsa.pub (si aplica)
  4. chmod 600 ~/.ssh/id_rsa (para tu clave privada en el equipo cliente)

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

Si la clave no está correctamente copiada en el servidor, la autenticación fallará. Desde tu máquina local, puedes copiar tu clave pública de forma automática utilizando el comando ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@tu_servidor_ip

Si este comando también falla por falta de acceso, tendrás que iniciar sesión en tu servidor mediante la consola de tu proveedor de hosting y añadir manualmente el contenido de tu archivo id_rsa.pub dentro del archivo ~/.ssh/authorized_keys del usuario correspondiente.

Método 3: Comprobar la configuración del servicio SSH (sshd_config)

En ocasiones, la configuración del demonio SSH en el servidor bloquea las conexiones por clave pública. Sigue estos pasos para revisarlo:

  1. 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:
  3. PubkeyAuthentication yes
  4. PasswordAuthentication yes (temporalmente para depurar)
  5. Guarda los cambios y reinicia el servicio SSH con el comando: sudo systemctl restart ssh o sudo systemctl restart sshd.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Desarrollo

Cómo Solucionar el Error CORS en JavaScript y APIs Definitivamente

Descubre por qué ocurre la política de mismo origen y cómo configurar correctamente tu servidor para solucionar el error CORS de forma definitiva.

Leer guía completa →
Magento

Cómo Solucionar el Error Exception local.xml file is empty en Magento de Forma Definitiva

Aprende a solucionar de manera definitiva el molesto error de configuración en Magento cuando el archivo local.xml está vacío. Guía técnica paso a paso.

Leer guía completa →
PrestaShop

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

El error 503 Backend Limit en PrestaShop puede arruinar tus conversiones. Aprende a identificar su causa y solucionarlo definitivamente.

Leer guía completa →