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 en SSH

Uno de los problemas más frustrantes para los administradores de sistemas y desarrolladores que trabajan con servidores Linux es encontrarse con el mensaje Permission denied (publickey) al intentar conectarse mediante SSH. Este fallo de autenticación impide el acceso remoto al servidor, bloqueando cualquier tarea de despliegue o gestión.

Causas principales del fallo de claves SSH

El error ocurre generalmente porque el servidor rechaza la clave pública proporcionada por el cliente. Las causas más comunes incluyen:

  • Permisos incorrectos en el directorio .ssh o en el archivo authorized_keys.
  • La clave pública no está registrada correctamente en el servidor remoto.
  • El servicio SSH (sshd) tiene deshabilitada la autenticación por clave pública en el archivo de configuración.
  • Se está intentando usar 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

Linux es extremadamente estricto con los permisos de seguridad. Si la carpeta .ssh o sus archivos tienen permisos de escritura para el grupo o otros usuarios, el servidor rechazará la conexión por motivos de seguridad.

  1. Accede a tu servidor local y asegúrate de que tu carpeta personal tenga los permisos correctos ejecutando chmod 700 ~/.ssh.
  2. Verifica los permisos del archivo de claves autorizadas con el comando chmod 600 ~/.ssh/authorized_keys.
  3. Comprueba que el propietario del directorio sea el usuario correcto utilizando chown -R $USER:$USER ~/.ssh.

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

Si los permisos son correctos pero el error persiste, es probable que el demonio SSH en el servidor esté configurado para no permitir accesos mediante claves.

  1. Abre el archivo de configuración con privilegios de superusuario: sudo nano /etc/ssh/sshd_config.
  2. Busca las siguientes líneas y asegúrate de que estén descomentadas y configuradas de esta manera:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
  1. 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.

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

Si aún no puedes acceder, necesitas ver exactamente qué está fallando durante el intercambio de claves. Utiliza el modo de depuración de SSH desde tu máquina cliente:

  1. Ejecuta el comando de conexión añadiendo la bandera -v o -vvv para obtener la máxima verbosidad: ssh -vvv usuario@tu-servidor-ip.
  2. Analiza la salida en la terminal para identificar en qué paso exacto el servidor rechaza la credencial (por ejemplo, si no encuentra la clave o si esta es ignorada).
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Linux

Cómo Solucionar el Error 'Too Many Open Files' en Linux Paso a Paso

Soluciona el molesto error de límite de archivos abiertos en tu servidor Linux. Aprende a configurar los límites de ulimit y systemd fácilmente.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error de Sintaxis SQL (You have an error in your SQL syntax) Paso a Paso

Te enseñamos a resolver el error de sintaxis SQL en tus consultas de base de datos. Sigue nuestros métodos para corregir tu código hoy mismo.

Leer guía completa →
Apps

Cómo Solucionar el Error de Sincronización en Google Drive para Escritorio Definitivamente

Tus archivos no se suben a la nube? Descubre las causas principales y los métodos más efectivos para solucionar el error de sincronización en Google Drive para escritorio.

Leer guía completa →