Cómo Solucionar el Error 'Permission Denied (publickey)' en SSH en Linux de Forma Definitiva

Cómo Solucionar el Error 'Permission Denied (publickey)' en SSH en Linux de Forma Definitiva
Anuncio relacionado

Introducción al Error Permission Denied (publickey) en SSH

Uno de los problemas más frustrantes para los administradores de sistemas y desarrolladores que utilizan Linux es intentar conectarse a un servidor remoto mediante SSH y recibir el temido mensaje: Permission denied (publickey). Este error ocurre cuando el servidor rechaza la clave pública proporcionada por tu cliente o cuando los permisos de los archivos de autenticación no son los correctos.

Causas Principales del Error SSH en Linux

El fallo de autenticación por clave pública en SSH suele estar provocado por diversos motivos comunes en entornos Linux:

  • Permisos incorrectos en el directorio ~/.ssh o en el archivo authorized_keys.
  • La clave pública no ha sido copiada correctamente en el servidor de destino.
  • El servicio SSH en el servidor (sshd) tiene deshabilitada la autenticación por clave pública en el archivo de configuración.
  • Estás intentando utilizar una clave privada que no está cargada en el agente SSH.

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

El demonio SSH en Linux es extremadamente estricto con la seguridad. Si los permisos de tus carpetas de configuración son demasiado abiertos (por ejemplo, accesibles para el grupo o otros usuarios), la conexión será denegada automáticamente.

  1. Abre tu terminal local y conéctate o accede a tu servidor si tienes otro medio de entrada.
  2. Ejecuta el siguiente comando para ajustar los permisos del directorio .ssh a 700:
    chmod 700 ~/.ssh
  3. Asegúrate de que el archivo de claves autorizadas tenga permisos 600:
    chmod 600 ~/.ssh/authorized_keys
  4. Verifica que el propietario de estos archivos sea tu usuario actual utilizando el comando:
    chown -R $USER:$USER ~/.ssh

Método 2: Verificar y Añadir la Clave Pública al Servidor

Si la clave no se encuentra registrada en el archivo authorized_keys del servidor, la autenticación fallará de inmediato.

  1. Desde tu máquina local, genera o visualiza tu clave pública con:
    cat ~/.ssh/id_rsa.pub
  2. Copia el contenido y asegúrate de agregarlo manualmente dentro del archivo ~/.ssh/authorized_keys en el servidor remoto.
  3. Alternativamente, utiliza la herramienta automatizada ssh-copy-id desde tu equipo local indicando tu usuario y la IP del servidor:
    ssh-copy-id usuario@tu_servidor_ip

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

A veces el problema radica en el propio servicio de OpenSSH corriendo en el servidor Linux.

  1. Accede al servidor con privilegios de superusuario y abre el archivo de configuración con tu editor favorito:
    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
Windows

Cómo Solucionar el Error ERR_CONNECTION_RESET en Windows de Forma Definitiva

¿Problemas para navegar por internet? Aprende a corregir el molesto error de restablecimiento de conexión en Windows con métodos sencillos y efectivos.

Leer guía completa →
Windows

Cómo Solucionar el Error BAD_POOL_CALLER (Pantalla Azul) en Windows de Forma Definitiva

Aprende a diagnosticar y corregir el temido pantallazo azul BAD_POOL_CALLER en tu sistema operativo Windows de manera sencilla. Sigue nuestra guía experta.

Leer guía completa →
Magento

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

Tus productos no se actualizan en la tienda online? Descubre cómo solucionar el molesto problema de indexación en Magento 2 de forma definitiva.

Leer guía completa →