Cómo Solucionar el Error Permission Denied (publickey) en SSH en Linux Paso a Paso

Cómo Solucionar el Error Permission Denied (publickey) en SSH en Linux Paso a Paso
Anuncio relacionado

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

Uno de los problemas más comunes y frustrantes a los que se enfrentan los administradores de sistemas y desarrolladores al trabajar con servidores Linux es el temido mensaje Permission denied (publickey) al intentar conectarse mediante SSH. Este error ocurre cuando el servidor rechaza la clave de autenticación que proporciona el cliente, impidiendo el establecimiento de una sesión segura. Afortunadamente, con los pasos adecuados, es posible identificar la causa raíz y solucionarla en pocos minutos.

Causas principales del fallo de autenticación SSH

Antes de aplicar cualquier solución, es fundamental entender por qué se produce este fallo en sistemas basados en Linux como Ubuntu, Debian o CentOS:

  • Permisos incorrectos en el directorio ~/.ssh o en el archivo authorized_keys.
  • La clave pública local no ha sido copiada correctamente al servidor remoto.
  • El servicio SSH en el servidor (sshd) tiene deshabilitada la autenticación por clave pública en su archivo de configuración.
  • Estás intentando autenticarte con el usuario incorrecto o la clave privada no se está cargando en el agente SSH.

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

El motivo más frecuente de este error es que Linux es extremadamente estricto con los permisos de seguridad. Si el directorio .ssh o el archivo authorized_keys tienen permisos de escritura para el grupo o otros usuarios, el servidor rechasará la conexión por seguridad.

  1. Accede a tu servidor utilizando un método alternativo (como la consola de rescate del proveedor de hosting).
  2. Ejecuta el siguiente comando para asegurar que el directorio .ssh tenga permisos 700: chmod 700 ~/.ssh
  3. Establece los permisos correctos (600) para el archivo de claves autorizadas: chmod 600 ~/.ssh/authorized_keys
  4. Asegúrate de que el propietario del directorio y los archivos sea el usuario correcto: chown -R $USER:$USER ~/.ssh

Método 2: Verificar y copiar correctamente la clave pública al servidor

Si la clave no está registrada en el servidor, la autenticación fallará. Debes asegurarte de transferir tu clave pública correctamente desde tu máquina local.

  1. En tu máquina local, genera un par de claves si aún no lo has hecho: ssh-keygen -t rsa -b 4096
  2. Utiliza la herramienta ssh-copy-id para enviar tu clave pública al servidor remoto de forma automatizada: ssh-copy-id usuario@tu_servidor_ip
  3. Si el puerto SSH ha sido modificado, indícalo explícitamente: ssh-copy-id -p 2222 usuario@tu_servidor_ip

Método 3: Revisar la configuración del demonio SSH en el servidor (sshd_config)

A veces, el problema radica en la configuración global del servidor SSH, la cual puede tener deshabilitada la autenticación por clave o requerir parámetros específicos.

  1. Abre el archivo de configuración del servidor con un editor de texto con privilegios de root: sudo nano /etc/ssh/sshd_config
  2. Busca las siguientes directivas y asegúrate de que estén descomentadas y configuradas de esta manera: PubkeyAuthentication yes y 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 según tu distribución).
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Hardware

Cómo Solucionar los Pitidos de la Placa Base al Arrancar el PC de Forma Definitiva

¿Tu PC emite pitidos extraños y no enciende? Aprende a identificar el código de error acústico y a solucionar el fallo de hardware fácilmente.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error CORS en JavaScript y Node.js Paso a Paso

Descubre por qué ocurre el error CORS en tus peticiones fetch o axios y cómo solucionarlo configurando correctamente los encabezados HTTP en tu servidor.

Leer guía completa →
Magento

Cómo Solucionar el Error 'Allowed Memory Size Exhausted' en Magento 2 de Forma Definitiva

Aprende a resolver el molesto error de memoria agotada en Magento 2 ajustando la configuración de PHP. Sigue nuestra guía paso a paso.

Leer guía completa →