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

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

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

El protocolo SSH (Secure Shell) es la herramienta fundamental para administrar servidores Linux de forma remota. Sin embargo, uno de los problemas más frustrantes que enfrentan los administradores de sistemas y desarrolladores es encontrarse con el mensaje de error Permission denied (publickey) al intentar establecer una conexión. Este fallo indica que el servidor ha rechazado las credenciales presentadas por el cliente, impidiendo el acceso.

Causas Principales del Fallo de Autenticación SSH

Para solucionar este problema de manera efectiva, es necesario comprender por qué ocurre. Las causas más comunes en entornos Linux incluyen:

  • Ausencia de la clave pública del cliente en el archivo authorized_keys del servidor.
  • Permisos incorrectos en el directorio .ssh o en los archivos de claves (tanto en el cliente como en el servidor).
  • El servicio SSH en el servidor tiene deshabilitada la autenticación por clave pública.
  • El agente SSH no está cargando la clave privada correcta.

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

Linux es extremadamente estricto con los permisos de seguridad para las claves SSH. Si los permisos son demasiado abiertos, el demonio SSH los rechazará por seguridad.

  1. Abre la terminal en tu máquina cliente.
  2. Ejecuta el siguiente comando para asegurar los permisos de tu carpeta .ssh: chmod 700 ~/.ssh
  3. Corrige los permisos de tu clave privada (por ejemplo, id_rsa): chmod 600 ~/.ssh/id_rsa
  4. Si tienes acceso físico o por consola de emergencia al servidor remoto, verifica los permisos allí también: chmod 700 ~/.ssh y chmod 600 ~/.ssh/authorized_keys

Método 2: Copiar Correctamente la Clave Pública al Servidor

A menudo, el error ocurre porque la clave pública no se copió en la ubicación exacta o carece del formato adecuado.

  1. Si tienes la contraseña temporal del usuario, utiliza la utilidad ssh-copy-id desde tu máquina local: ssh-copy-id usuario@tu_servidor_ip
  2. Si el método anterior no funciona, visualiza tu clave pública local con: cat ~/.ssh/id_rsa.pub
  3. Conéctate al servidor por otro medio, abre el archivo ~/.ssh/authorized_keys con un editor como nano y pega la línea de tu clave pública al final del archivo, guarda y cierra.

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

Si los permisos y las claves son correctos, es posible que la configuración del demonio SSH en el servidor esté bloqueando el acceso.

  1. Accede al servidor y edita el archivo de configuración con privilegios de superusuario: sudo nano /etc/ssh/sshd_config
  2. Busca las siguientes directivas y asegúrate de que estén descomentadas y configuradas de esta forma:
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración ejecutando: sudo systemctl restart ssh o sudo systemctl restart sshd
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Apps

Cómo Solucionar el Error de Pantalla Negra en Twitch Definitivamente

La pantalla negra en Twitch interrumpe tus directos favoritos. Descubre las mejores soluciones efectivas para resolver este error de la aplicación.

Leer guía completa →
Linux

Cómo Solucionar el Error 'sudo: command not found' en Linux de Forma Definitiva

Descubre por qué ocurre el error sudo command not found en distribuciones Linux y aplica nuestras soluciones definitivas para recuperar el control de tu terminal.

Leer guía completa →
Apps

Cómo Solucionar el Error de la Pantalla Negra en OBS Studio de Forma Definitiva

¿OBS Studio solo muestra una pantalla negra al intentar capturar tu monitor o juego? Aprende a resolver este problema común de forma definitiva con nuestra guía.

Leer guía completa →