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

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

Introducción

Uno de los dolores de cabeza más comunes para los administradores de sistemas y desarrolladores que trabajan con servidores Linux es encontrarse con el frustrante mensaje Permission denied (publickey) al intentar conectarse mediante SSH. Este fallo impide el acceso remoto y suele ocurrir tras una nueva configuración, un cambio de claves o una actualización del sistema. Afortunadamente, tiene solución si se revisan los puntos clave de autenticación.

Causas principales del error Permission Denied en SSH

El protocolo SSH es muy estricto con la seguridad. Las razones más habituales por las que falla la autenticación por clave pública son:

  • Permisos incorrectos en el directorio .ssh o en el archivo authorized_keys del usuario.
  • La clave pública no ha sido copiada correctamente en el servidor remoto.
  • El servicio SSH en el servidor (sshd) tiene deshabilitada la autenticación por clave pública en su configuración.
  • Estás intentando conectar con el usuario equivocado o usando una clave privada que no coincide.

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

El motivo número uno de este error son los permisos demasiado abiertos en el servidor. Linux rechaza utilizar claves si cualquier usuario puede leerlas.

  1. Conéctate al servidor mediante la consola física o un método de rescate alternativo.
  2. Ejecuta el siguiente comando para asegurar que la carpeta .ssh tenga permisos 700: chmod 700 ~/.ssh
  3. Asegúrate de que el archivo authorized_keys tenga permisos 600: chmod 600 ~/.ssh/authorized_keys
  4. Verifica que el propietario de la carpeta sea el usuario correcto: chown -R $USER:$USER ~/.ssh

Método 2: Verificar la configuración del demonio SSH (sshd_config)

Si los permisos son correctos, es posible que el archivo de configuración del servidor SSH esté bloqueando este tipo de acceso.

  1. Abre el archivo de configuración con privilegios de administrador: sudo nano /etc/ssh/sshd_config
  2. Busca las siguientes directivas y asegúrate de que estén descomentadas y configuradas así: 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

Método 3: Depurar la conexión con el modo verbose

Si el problema persiste, necesitas saber exactamente qué está fallando durante el intercambio de claves.

  1. Ejecuta el comando de conexión SSH añadiendo la bandera -v (verbose) o -vvv para obtener máxima información: ssh -vvv usuario@tu_servidor_ip
  2. Revisa las líneas de salida para identificar si el cliente no encuentra la clave privada local o si el servidor la rechaza explícitamente.
  3. Añade tu clave local al agente SSH si es necesario ejecutando: ssh-add ~/.ssh/id_rsa
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Linux

Cómo Solucionar el Error 'Permission denied (publickey)' en Linux de Forma Definitiva

¿No puedes conectarte a tu servidor mediante SSH? Descubre por qué ocurre el error de clave pública denegada y cómo solucionarlo rápidamente.

Leer guía completa →
Mac

Cómo Solucionar el Error 'Operación no permitida' en Mac de Forma Definitiva

Aprende a solucionar el frustrante error 'Operación no permitida' en tu Mac. Te mostramos los mejores métodos usando la Terminal y los permisos de macOS.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error de CORS Policy en JavaScript y Node.js de Forma Definitiva

Soluciona de forma definitiva el bloqueo por políticas CORS entre tu frontend en JavaScript y tu backend en Node.js. Sigue nuestra guía paso a paso.

Leer guía completa →