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

¿Qué causa el error Permission denied (publickey) en SSH?

El mensaje de error Permission denied (publickey) es uno de los fallos más comunes al intentar conectarse a un servidor Linux remoto a través del protocolo SSH. Ocurre cuando el servidor rechaza las credenciales de la clave SSH o no encuentra una clave válida para autenticar la sesión del usuario.

Causas principales del fallo de autenticación

  • Los permisos de la carpeta .ssh o del archivo authorized_keys en el servidor son demasiado permisivos.
  • La clave pública del cliente no ha sido agregada correctamente al archivo authorized_keys del usuario en el servidor.
  • El archivo de configuración del demonio SSH (sshd_config) tiene desactivada la autenticación por clave pública.
  • Se está intentando realizar la conexión especificando una clave privada incorrecta o una ruta equivocada en el cliente.

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

El servicio SSH exige permisos muy estrictos por motivos de seguridad. Si los archivos de clave son accesibles por otros usuarios del sistema, SSH rechazará la conexión.

  1. Accede al servidor remoto (mediante consola de rescate o contraseña si está habilitada).
  2. Asegúrate de que el directorio SSH tenga los permisos 700 ejecutando chmod 700 ~/.ssh.
  3. Cambia los permisos del archivo de claves autorizadas a 600 con el comando chmod 600 ~/.ssh/authorized_keys.
  4. Asegúrate de que el propietario de la carpeta sea tu usuario actual con chown -R $USER:$USER ~/.ssh.

Método 2: Agregar correctamente la clave pública al servidor

Si la clave pública local no está registrada en el servidor, la autenticación fallará inmediatamente.

  1. En tu máquina local, copia tu clave pública usando el comando ssh-copy-id usuario@ip_servidor.
  2. Si el comando anterior no está disponible, muestra el contenido de tu clave pública local con cat ~/.ssh/id_rsa.pub.
  3. Copia el texto impreso y pégalo manualmente dentro del archivo ~/.ssh/authorized_keys en el servidor remoto.

Método 3: Modificar la configuración del servicio SSH

Es posible que el servidor tenga deshabilitada la autenticación por claves públicas en su fichero de configuración global.

  1. Abre el archivo de configuración de SSH con sudo nano /etc/ssh/sshd_config.
  2. Busca la directiva PubkeyAuthentication y asegúrate de que esté configurada en yes.
  3. Verifica que la directiva AuthorizedKeysFile apunte a .ssh/authorized_keys.
  4. Guarda los cambios y reinicia el servicio SSH ejecutando sudo systemctl restart sshd o sudo systemctl restart ssh en distribuciones Ubuntu/Debian.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Mac

Cómo Solucionar el Error de Espacio 'Otros' Llenando el Disco en Mac

El almacenamiento 'Otros' en Mac puede saturar tu disco duro sin que sepas qué es. Aprende a identificar y eliminar estos archivos ocultos paso a paso.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error Call to a Member Function on Null en PHP Definitivamente

Descubre por qué ocurre el error de llamada a método en nulo en PHP y cómo solucionarlo rápidamente en tu código. Mejora la estabilidad de tus aplicaciones web.

Leer guía completa →
Juegos

Cómo Solucionar el Error ERR_GFX_D3D_INIT en GTA V de Forma Definitiva

El error ERR_GFX_D3D_INIT interrumpe tus partidas en GTA V repentinamente. Aprende a solucionarlo aplicando métodos avanzados de configuración gráfica.

Leer guía completa →