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

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 indica que el servidor ha rechazado la autenticación basada en claves criptográficas, impidiendo el establecimiento de la sesión segura.

Causas principales del fallo de autenticación SSH

El error de permisos denegados en SSH suele estar relacionado con una configuración incorrecta en el cliente o en el servidor. Las causas más comunes incluyen:

  • Permisos inadecuados en el directorio ~/.ssh o en los archivos de claves autorizadas.
  • La clave privada correcta no se está cargando en el agente SSH.
  • El archivo sshd_config en el servidor tiene deshabilitada la autenticación por clave pública.
  • El archivo authorized_keys no contiene la clave pública correspondiente.

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

Linux es extremadamente estricto con los permisos de seguridad en el directorio home del usuario. Si los permisos son demasiado abiertos, SSH denegará el acceso por motivos de seguridad. Sigue estos pasos en tu máquina local y remota:

  1. Abre tu terminal de Linux.
  2. Ejecuta el siguiente comando para asegurar que tu carpeta .ssh tiene permisos 700: chmod 700 ~/.ssh
  3. Establece los permisos correctos para la clave privada (ej. id_rsa): chmod 600 ~/.ssh/id_rsa
  4. Establece los permisos correctos para el archivo de claves autorizadas en el servidor: chmod 600 ~/.ssh/authorized_keys

Método 2: Verificar y añadir la clave privada al agente SSH

A veces, tu cliente SSH no sabe qué clave utilizar para autenticarse. Puedes forzar al agente SSH a cargar tu clave ejecutando las siguientes instrucciones:

  1. Inicia el agente SSH en segundo plano: eval "$(ssh-agent -s)"
  2. Añade tu clave privada predeterminada o específica: ssh-add ~/.ssh/id_rsa
  3. Verifica que la clave se haya añadido correctamente listándola con: ssh-add -l

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

Si el problema persiste, es probable que debas revisar el archivo de configuración del demonio SSH en el servidor remoto.

  1. Accede al servidor mediante la consola de rescate o un método alternativo y edita el archivo de configuración: sudo nano /etc/ssh/sshd_config
  2. Asegúrate de que las siguientes directivas 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
WordPress

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

La Pantalla Blanca de la Muerte es uno de los errores más aterradores en WordPress. Aprende a identificar sus causas y soluciónala fácilmente.

Leer guía completa →
Apps

Cómo Solucionar el Error ERR_NAME_NOT_RESOLVED en Google Chrome de Forma Definitiva

¿Google Chrome no puede cargar las páginas y muestra el código ERR_NAME_NOT_RESOLVED? Descubre cómo solucionar este molesto problema de resolución DNS en pocos minutos.

Leer guía completa →
PrestaShop

Cómo Solucionar el Error HTTP 500 en PrestaShop Causado por Módulos de Forma Definitiva

Descubre cómo identificar y solucionar el molesto error HTTP 500 en PrestaShop paso a paso. Recupera el acceso a tu tienda online de forma rápida.

Leer guía completa →