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
Windows

Cómo Solucionar el Error CRITICAL_PROCESS_DIED en Windows 10 y 11 Definitivamente

Soluciona el error CRITICAL_PROCESS_DIED en Windows de forma definitiva. Descubre las causas del pantallazo azul y los mejores métodos para repararlo.

Leer guía completa →
Apps

Cómo Solucionar el Error de Pantalla Blanca de la Muerte en WordPress Definitivamente

¿Tu sitio web de WordPress muestra una pantalla en blanco sin ningún mensaje de error? Descubre cómo solucionarlo de forma rápida y sencilla.

Leer guía completa →
Mac

Cómo Solucionar el Error de 'Imposible verificar la app porque el desarrollador no puede verificarse' en Mac

¿Tu Mac bloquea una aplicación diciendo que el desarrollador no puede verificarse? Descubre cómo saltarte esta restricción de seguridad de forma segura.

Leer guía completa →