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 Linux

El protocolo SSH es la herramienta fundamental para la administración remota de servidores y sistemas Linux. Sin embargo, uno de los problemas más frustrantes a los que se enfrentan los administradores de sistemas y desarrolladores es el temido mensaje Permission denied (publickey) al intentar establecer una conexión. Este fallo indica que el servidor remoto ha rechazado la autenticación basada en clave pública, impidiendo el acceso a la terminal.

Causas Principales del Fallo de Autenticación SSH

Existen diversos motivos por los cuales Linux puede denegar el acceso mediante claves SSH. Entre los más comunes se encuentran:

  • Permisos incorrectos en el directorio .ssh o en los archivos de claves (authorized_keys).
  • El agente SSH no tiene cargada la clave privada correspondiente.
  • La clave pública no ha sido copiada correctamente en el servidor de destino.
  • Configuración restrictiva en el archivo sshd_config del servidor que deshabilita la autenticación por clave pública.

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

El motivo más frecuente de este error son unos permisos excesivamente abiertos en el sistema de archivos del usuario. Linux es sumamente estricto con la seguridad del directorio SSH.

  1. Accede a tu servidor de forma local o mediante otro método de emergencia.
  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 autorizadas a 600: chmod 600 ~/.ssh/authorized_keys
  4. Verifica que el propietario de los archivos sea el usuario correcto: sudo chown -R $USER:$USER ~/.ssh

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

Si las claves en el servidor son correctas, el problema podría originarse en tu máquina local si el cliente SSH no está utilizando la identidad adecuada.

  1. Inicia el agente SSH en segundo plano ejecutando: eval "$(ssh-agent -s)"
  2. Añade tu clave privada predeterminada o específica con: ssh-add ~/.ssh/id_rsa
  3. Comprueba qué claves están cargadas actualmente en el agente mediante el comando: ssh-add -l

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

Si las comprobaciones anteriores fallan, es posible que el demonio SSH en el servidor remoto esté bloqueando este tipo de acceso por motivos de directivas de seguridad.

  1. Abre el archivo de configuración con privilegios de superusuario: sudo nano /etc/ssh/sshd_config
  2. Busca las siguientes directivas y asegúrate de que estén habilitadas y configuradas correctamente:
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración ejecutando: sudo systemctl restart ssh o sudo systemctl restart sshd según tu distribución de Linux.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Juegos

Cómo Solucionar el Error DirectX Fatal Application Exit en Juegos de PC

Aprende a corregir el fallo de DirectX que cierra tus juegos de forma inesperada. Descubre los métodos más efectivos para solucionarlo hoy mismo.

Leer guía completa →
Hardware

Cómo Solucionar el Sobrecalentamiento del CPU y el Thermal Throttling de Forma Definitiva

Descubre por qué tu procesador alcanza temperaturas peligrosas y cómo aplicar soluciones efectivas para evitar la pérdida de rendimiento y daños permanentes.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error CORS en JavaScript con Fetch API de Forma Definitiva

Descubre por qué ocurre el bloqueo de políticas de origen cruzado en tus peticiones HTTP y cómo solucionarlo rápidamente con ejemplos prácticos de código.

Leer guía completa →