Linux SSH sin contraseña login

  

Uno: el esquema de ssh es:


1, es permitir el uso de ssh entre dos máquinas Linux no requiere un nombre de usuario y contraseña. La firma digital RSA o DSA se usa para completar esta operación

2, análisis de modelo

Suponga que A (192.168.20.59) es la máquina cliente y B (192.168.20.60) es la máquina objetivo; Propósito: una máquina ssh login B machine no necesita ingresar una contraseña; método de encriptación, seleccione rsa | Dsa puede ser, por defecto, dsa


Segundo, el proceso de operación específico


Proceso de operación de inicio de sesión unidireccional (puede cumplir con el propósito anterior): 1 , inicie sesión en A machine 2, ssh-keygen -t [rsa | Dsa], generará el archivo de clave y el archivo de clave privada id_rsa, id_rsa.pub o id_dsa, id_dsa.pub 3. Copie el archivo .pub al directorio .ssh de la máquina B, y cat id_dsa.pub > > ~ /.ssh /authorized_keys 4. Ha terminado, inicie sesión en la cuenta de destino de la máquina B desde la máquina A, ya no necesita una contraseña; (Ejecute directamente #ssh 192.168.20.60)


Operación de inicio de sesión bidireccional :

1, ssh-keygen la verificación de la contraseña puede hacer ssh a la otra máquina, scp no necesita usar la contraseña. El método específico es el siguiente: 2, ambos nodos realizan la operación: # ssh-keygen -t rsa then Todos los retornos de carro, utilizando el valor predeterminado. 3. Esto crea un par de claves, que se almacenan en ~ /.ssh en el directorio del usuario. Pruebe la clave pública en el directorio de usuario de la otra máquina y cópiela en ~ /.ssh /authorized_keys (comando de operación: #cat id_dsa.pub > > ~ /.ssh /authorized_keys).

4, configure los permisos de archivos y directorios: use los usuarios de hadoop para el directorio de inicio /home /hadoop, si se trata de varios linux, es mejor crear el mismo nombre de usuario en cada

establecer authorized_keys permissions $ chmod 600 authorized_keys Establezca los permisos del directorio .ssh $ chmod 700 -R .ssh


5. Asegúrese de que tanto .ssh como authorized_keys tienen acceso de escritura para el usuario. De lo contrario, la verificación no es válida.
(Hoy es el problema, buscando un problema de mucho tiempo), de hecho, piénselo, para evitar vulnerabilidades en el sistema.

Cuando visito 20.59 de 20.60, me aparece el siguiente error:


  • No se puede establecer la autenticidad del host '192.168.20.59 (192.168.20.59)'
  • La huella dactilar de la clave RSA es 6a: 37: c0: e1: 09: a4: 29: 8d: 68: d0: ca: 21: 20: 94: be: 18.
  • Are ¿Seguro que quieres continuar conectándote (sí /no)? Sí
  • Advertencia: se agregó permanentemente '192.168.20.59' (RSA) a la lista de hosts conocidos.
  • [email protected] Contraseña:
  • Permiso denegado, inténtalo de nuevo.
  • [email protected] contraseña:
  • Permiso denegado, inténtalo de nuevo.
  • [email protected]'s password:
  • Permiso denegado (publickey, gssapi-with-mic, password). < textarea class = " java " style = " display: none; " nombre = " código " > No se puede establecer la autenticidad del host '192.168.20.59 (192.168.20.59)'.
  • La huella dactilar de la clave RSA es 6a: 37: c0: e1: 09: a4: 29 : 8d: 68: d0: ca: 21: 20: 94: be: 18..
  • ¿Está seguro de que desea continuar conectándose (sí /no)? Sí
  • Advertencia: Agregó permanentemente '192.168.20.59' (RSA) a la lista de hosts conocidos.
  • [email protected]. Contraseña de 20.59:
  • Permiso denegado, inténtelo de nuevo.
  • [email protected] contraseña:
  • Permiso denegado, inténtelo de nuevo.
    < >> @@@@@@@@@@@@@@@@@@@ >

    III. Notas de resumen

    1. No establezca los permisos de los archivos y directorios en chmod 777. Este permiso es demasiado grande, no es seguro, y las firmas digitales no son compatibles. Comencé a hacer esto y lo hice.

    2. La otra máquina utiliza la clave pública generada de la firma rsa /dsa. Este contenido de clave pública también debe copiarse en authorized_keys

    (Tenga en cuenta que si hay más de tres máquinas Linux como el nombre de host h1, h2, h3, el nombre de usuario en cada estación es hadoop, luego

    /home/hadoop/.ssh/id_dsa.pub Use scp copy en un directorio en una máquina y escríbalo en /home/hadoop/.ssh/authorized_keys para que todo contenga uno El archivo grande de la clave pública, luego copie este archivo en /home/hadoop/.ssh /authorized_keys debajo de cada linux, y luego modifique los permisos a 600)

    3, acceso entre linux Direct ssh machine ip

    4, una máquina genera su propia firma digital RSA o DSA, la clave pública a la máquina de destino, y luego la máquina de destino para recibir los permisos relevantes (permisos de clave pública y authorized_keys), esto La máquina de destino puede ser firmada digitalmente por la máquina sin acceso por contraseña

    ---------------------


    linux establece confianza, se ha agregado a authorized_keys, no tiene éxito; problema de permisos

    Establecimiento de una relación de confianza entre hosts de Linux Establezca una relación de confianza entre el host A y el host B, de modo que La máquina A puede iniciar sesión en el host B sin la contraseña ssh.

    1. Ejecutar ssh-keygen -t rsa -b 1024 en el host A (también use ssh-keygen -t dsa -b 1024)
      < Li> Genere el directorio .ssh en el directorio de inicio
    2. Ingrese el directorio ~ /.ssh
    3. Ejecute cat id_rsa.pub para copiar los resultados (también puede usar cat id_dsa.pub, generalmente está disponible) )
    4. Ingrese ~ /.ssh en el directorio de inicio en el host B (si no es así, ejecute ssh-keygen)
    5. Pegue el resultado copiado en las authorized_keys en el directorio .ssh del host B. La última línea del archivo
    6. está bien, se establece la relación de confianza, ejecute ssh user @ B en el host A por primera vez, solicitará una confirmación, seleccione Sí para ingresar, el resultado es no ingresar la contraseña, ¡el inicio de sesión es exitoso!

      Hay tres puntos a tener en cuenta, si has hecho el método anterior o no, entonces compara los siguientes tres:

      1. El archivo authorized_keys debe estar 600 permisos (es decir, -rw — —-) o 644
      2. El directorio .ssh debe tener 700 permisos (es decir, drwx — —)
      3. El directorio /home /work debe tener 755 privilegios Eso es drwxr-xr-x

        El tercer (3) es demasiado grave, porque el directorio /home /user es 777, no 755, por qué no, la relación de confianza no se puede construir, y finalmente /Los permisos del directorio de inicio /usuario se cambiaron de 777 a 755. . . > _ <, un gran pozo. . .

  • Copyright © Conocimiento de Windows All Rights Reserved