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

Cómo Solucionar el Error Permission Denied (publickey) en Linux Paso a Paso
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 encontrarse con el mensaje Permission denied (publickey) al intentar conectarse a un servidor remoto mediante SSH. Este error ocurre generalmente cuando el servidor rechaza la clave de autenticación o cuando los permisos de los archivos de configuración y directorios SSH no son los correctos.

Causas Principales del Fallo de Autenticación SSH

Las razones más comunes por las cuales se genera este error en distribuciones basadas en Debian, Ubuntu o CentOS son:

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

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

El demonio de SSH (OpenSSH) es sumamente 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, la conexión será rechazada automáticamente.

  1. Accede a tu servidor físico o mediante otra vía de emergencia.
  2. Ejecuta el siguiente comando para ajustar los permisos del directorio .ssh: chmod 700 ~/.ssh
  3. Asegúrate de que el archivo de claves autorizadas tenga permisos restrictivos: chmod 600 ~/.ssh/authorized_keys
  4. Verifica que el propietario del directorio sea el usuario correcto: chown -R $USER:$USER ~/.ssh

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

A veces, la clave no se copió íntegramente o el archivo authorized_keys está corrompido.

  1. Desde tu máquina local, genera una nueva clave si es necesario ejecutando: ssh-keygen -t rsa -b 4096
  2. Copia la clave al servidor remoto usando la utilidad estándar: ssh-copy-id usuario@tu-servidor-ip
  3. Si el puerto SSH es diferente al 22, especifícalo así: ssh-copy-id -p 2222 usuario@tu-servidor-ip

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

Si los pasos anteriores no funcionan, el problema puede residir en la configuración global del servicio SSH en el servidor.

  1. Abre el archivo de configuración con privilegios de superusuario: sudo nano /etc/ssh/sshd_config
  2. Busca y asegúrate de que las siguientes directivas estén habilitadas y descomentadas: 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 sshd
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Mac

Cómo Solucionar el Error de Disco de Arranque Lleno en Mac de Forma Definitiva

¿Tu Mac va lento y aparece constantemente el aviso de disco de arranque lleno? Aprende a limpiar tu almacenamiento y recuperar el rendimiento óptimo de tu equipo.

Leer guía completa →
Mac

Cómo Solucionar el Error de la App Store que no Carga en Mac de Forma Definitiva

Aprende a resolver los problemas de carga y errores de conexión en la App Store de tu Mac. Guía paso a paso para restaurar su funcionamiento.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error de HEAD Detached en Git de Forma Definitiva

Descubre por qué ocurre el estado HEAD detached en Git y aprende los métodos más seguros para recuperar tu trabajo sin perder commits.

Leer guía completa →