GNU/Linux >> Tutoriales Linux >  >> Linux

Arreglar el error SSH de permiso denegado (clave pública) en Linux

Este tutorial rápido le muestra cómo corregir el error ssh "sign_and_send_pubkey:firma fallida:el agente rechazó la operación Permiso denegado (clave pública)" en Linux.

Si intenta conectarse al servidor remoto a través de SSH, es posible que encuentre un error de permiso denegado. Este error puede ocurrir por varias razones. Y la solución a este problema depende de la razón exacta detrás del error.

En mi caso, tenía las claves pública y privada almacenadas en mi escritorio Ubuntu 16.04. Después del lanzamiento de Ubuntu 18.04, decidí actualizar a esta versión más nueva. Prefiero una instalación nueva a las actualizaciones de distribución.

Entonces, hice una copia de seguridad de las carpetas principales de mi directorio de inicio, incluida la carpeta .ssh que tenía claves públicas y privadas en un disco externo.

Una vez instalado, habilité SSH en Ubuntu 18.04 y restauré todo, incluidas las claves SSH.

Ahora, cuando intenté conectarme al servidor remoto usando ssh, pensé que funcionaría de inmediato porque tenía las mismas claves públicas y privadas.

Pero no funcionó. SSH me dio este error:

sign_and_send_pubkey: signing failed: agent refused operation
[email protected]: Permission denied (publickey).

Si se encuentra en una situación similar en la que copió sus claves SSH de otra fuente, permítame mostrarle cómo solucionar este error de SSH.

Permisos de archivo correctos en la carpeta ~/.ssh y su contenido

Como regla general, puede establecer los siguientes permisos en el directorio ssh y sus archivos (claves privadas, claves públicas, hosts_conocidos, archivo de configuración ssh, etc.)

Es posible que no tenga todos los archivos, pero debe tener claves públicas y privadas aquí.

Ahora veamos cómo cambiar el permiso de archivo en las claves ssh y otros archivos.

Error de reparación de permiso denegado (clave pública)

Entonces, el problema radica en los permisos de archivo aquí. Verá, cuando copié los archivos, el USB estaba en el formato de archivo FAT de Microsoft. Este archivo no es compatible con los permisos de archivo de UNIX/Linux.

Y por lo tanto, los permisos de las claves ssh copiadas se cambiaron a 777.

Para SSH, los permisos de archivo son demasiado abiertos. Simplemente no está permitido tener permisos 777 en las claves públicas o privadas. Y es por eso que SSH rechazó la conexión aquí.

ls -l .ssh
-rwxrwxrwx 1 abhishek abhishek 1766 Nov 12  2017 id_rsa
-rwxrwxrwx 1 abhishek abhishek  398 Nov 12  2017 id_rsa.pub
-rwxrwxrwx 1 abhishek abhishek 4214 Sep 21 21:39 known_hosts

La clave privada debe tener permisos de lectura y escritura solo para el usuario y ningún otro permiso para el grupo y otros.

Debe cambiar el permiso usando el comando chmod:

chmod 600 ~/.ssh/id_rsa

Del mismo modo, la clave pública no debería tener permisos de escritura y ejecución para grupos y otros.

chmod 644 ~/.ssh/id_rsa.pub

Ahora que ha asignado los permisos correctos, puede conectarse a ssh nuevamente. En este momento, le pedirá su contraseña de administrador para desbloquear las claves. Ingrese su contraseña de administrador y debería estar listo para comenzar.

Esto también me enseñó una lección de que copiar y pegar archivos es una mala idea y se debe hacer una copia de seguridad adecuada, de lo contrario, todos los archivos tendrán los peligrosos permisos 777. Tuve que cambiar recursivamente los permisos de archivo en todo el directorio de inicio y créeme, no fue algo agradable de hacer.

Como dije antes, puede haber varias razones para este error. Para el problema relacionado con el permiso de archivo abierto, esta solución debería ayudarlo a corregir el error Permiso denegado (clave pública) con SSH. Si está interesado, puede leer más sobre los conceptos básicos de SSH.

Déjame saber en la sección de comentarios si la solución funcionó para ti o no. También sugiere tu opinión sobre la copia de claves ssh en otras computadoras.


Linux
  1. Cómo corregir un error de Comando no encontrado en Linux

  2. pip freeze devuelve un error:Permiso denegado:hg

  3. Cómo reparar el error de permiso denegado de Docker en Ubuntu

  4. Arreglar ::Conexión de error SSH de Linux rechazada

  5. Git pull permiso denegado linux?

Cómo reparar el permiso fallido SSH denegado (publickey, gssapi-keyex, gssapi-with-mic)

Cómo configurar el inicio de sesión SSH sin contraseña en Linux con claves

Reparar FirewallD no está ejecutando un error en Linux Mint 12

Cómo reparar el error de óxido "linker 'cc' no encontrado" en Linux

Arreglar el error "ADVERTENCIA:LA IDENTIFICACIÓN DEL HOST REMOTO HA CAMBIADO" en Linux

Permiso de montaje CIFS denegado en Linux - ¡Arreglado!

    Elemento Permiso
    directorio .ssh 700 ((drwx------)
    claves públicas 644 (-rw-r--r--)
    claves privadas 600 (-rw-------)
    claves_autorizadas 600 (-rw-------)
    hosts_conocidos 600 (-rw-------)
    configuración 600 (-rw-------)