Linux: inicio de sesión remoto y método de inicio de sesión sin contraseña

  

Primero, método de inicio de sesión remoto

SSH es un protocolo de canal seguro, utilizado principalmente para el inicio de sesión remoto. El sistema RHEL 5 utiliza el servidor OpenSSH proporcionado por paquetes como openssh, openssh-server (que se instala de forma predeterminada) y agrega sshd como un servicio de sistema estándar. El uso es el siguiente:

El código del código es el siguiente: $ ssh host $ ssh < a href = " mailto: username @ host " > username @ host < /a > $ ssh -p 222 < a Href = " mailto: username @ host " > username @ host < /a >

-p: Especifique el puerto de acceso; si se omite, se accede al puerto predeterminado 22 del servicio SSH de manera predeterminada; Una vez que inicie sesión en el otro host, el sistema le indicará:

El código es el siguiente: No se puede establecer la autenticidad del host 'host (192.168.0.21)'. La huella dactilar de la clave RSA es 98: 2e: D7: e0: de: 9f: ac: 67: 28: c2: 42: 2d: 37: 16: 58: 4d. ¿Está seguro de que desea continuar conectándose (sí /no)?

Es decir, no se puede confirmar la autenticidad del host host. Solo se conoce la huella digital de la clave pública del host. ¿Aún desea continuar conectándose? Después de escribir sí, aparecerá un mensaje indicando que el host ha sido aprobado.

Copie el código de la siguiente manera: Advertencia: Agregó permanentemente 'host, 192.168.0.21' (RSA) a la lista de hosts conocidos.

Luego solicite la contraseña:

Copiar El código es el siguiente: $ Contraseña: (ingrese la contraseña) En este punto, si el secreto es correcto, puede iniciar sesión.

En segundo lugar, no hay un método de inicio de sesión con contraseña.

En el entorno de confianza, si tiene que ingresar la contraseña cada vez que inicia sesión de forma remota, se necesita mucho tiempo, especialmente el servidor con contraseña y mantenimiento complicados. Más casos. Así que hay una necesidad normal: inicio de sesión remoto sin contraseña. Los pasos de implementación son los siguientes:

1. Genere un par de archivos de claves secretas (claves públicas y privadas) localmente;

El código del código es el siguiente: $ ssh-keygen # El comando anterior es equivalente a ssh- Keygen -t rsa # -t: especifica el tipo de clave. El valor predeterminado es rsa tipo de SSH-2.

Después de ejecutar el comando anterior, el sistema mostrará una serie de indicaciones, puede presionar Intro hasta el final. En particular, una de las preguntas es si desea establecer una contraseña (frase de contraseña) para la clave privada. Si le preocupa la seguridad de la clave privada, puede configurar una. Una vez que finaliza la ejecución, se generan dos nuevos archivos en el directorio ~ /.ssh /: id_rsa.pub e id_rsa. La primera clave pública, la segunda es la clave privada. 2. Transfiera la clave pública al host host remoto;

El código es el siguiente: $ ssh-copy-id < a href = " mailto: user @ host " > user @ host < /a >

Después de los dos pasos anteriores, puede implementar el inicio de sesión remoto sin contraseña (el host remoto guarda la clave pública del usuario en el archivo ~ /.ssh /authorized_keys).

En tercer lugar, el problema común:

1, después de generar la clave y cargarla en el host remoto, ¿aún no puede iniciar sesión sin contraseña? Abra el archivo /etc /ssh /sshd_config del host remoto y descomente las siguientes líneas.

El código es el siguiente: # RSAAuthentication = yes # PubkeyAuthentication = yes # AuthorizedKeysFile = .ssh /authorized_keys

Luego, reinicie el servicio ssh del host remoto.

El código del código es el siguiente: #ubuntu system $ service ssh restart #debian system $ /etc/init.d/ssh restart

2, al ejecutar el comando ssh-copy-id, el servidor remoto El puerto de servicio SSH no es 22, como sigue:

El código es como sigue: $ ssh-copy-id < a href = " mailto: nameB @ machineB " > nameB @ machineB < /a > ssh: Conectarse al host machineB puerto 22: conexión rechazada

Luego use el siguiente comando:

El código es el siguiente: $ ssh-copy-id "-p 22000 < a href = " mailto : nameB @ machineB " > nameB @ machineB < /a > "

IV. Suplemento:

El código es el siguiente: $ ssh-copy-id -i ~ /.ssh /id_rsa.pub < a href = " mailto: [email protected]" > [email protected]< /a > $ ssh-copy-id -u eucalyptus -i /home /eucalyptus /.ssh /id_rsa.pub < a href = " mailto: eucalyptus @ remote_host " > eucalyptus @ remote_host < /a > # -u: Configurar el inicio de sesión sin contraseña para los usuarios de eucalyptus # -i: Cuando no se pasa ningún valor o ~ /. Ssh /identity.pub El archivo es inaccesible (no existe), ssh-copy-id mostrará el siguiente error /usr /bin /ssh-copy-id: ERROR: No se encontraron identidades

SSH proporciona dos formas de verificar el inicio de sesión: 1 Verificación de contraseña: verifique con el nombre de inicio de sesión y la contraseña del usuario del sistema local en el servidor. 2, la verificación del par de claves: requiere información clave coincidente para pasar la verificación. Por lo general, se crean un par de archivos de clave secreta (claves públicas y privadas) en el cliente, y luego el archivo de clave pública se coloca en la ubicación especificada en el servidor. Nota: cuando tanto la autenticación de contraseña como la autenticación de clave privada están habilitadas, el servidor utilizará primero la autenticación de clave.

V. archivo de configuración del servicio SSH:

El archivo de configuración del servicio sshd está en /etc /ssh /sshd_config de forma predeterminada. Ajuste correctamente los elementos de configuración relacionados para mejorar aún más la seguridad del inicio de sesión remoto de sshd.

El contenido del archivo de configuración se puede dividir en las siguientes tres partes:

El código del código de copia es el siguiente: #SSH opciones de escucha del servidor # puerto de escucha Puerto 22 # utilizando el protocolo SSH V2 Protocolo 2 # escucha La dirección es todas las direcciones ListenAdderss 0.0.0.0 # //Deshabilitar la resolución inversa del DNS UseDNS no < /p > < p > # Opción de control de inicio de sesión del usuario # Permitir que el usuario root inicie sesión PermitRootLogin no #Permitir null contraseña Tiempo de verificación de inicio de sesión (2 minutos) LoginGraceTime 2m # Número máximo de reintentos MaxAuthTries 6 # Solo permite a los usuarios iniciar sesión, a diferencia de la opción DenyUsers AllowUsers usuario < /p > < p > Autenticación de clave PubkeyAuthentication sí # Especifique el archivo de base de datos de clave pública AuthorsizedKeysFile .ssh /authorized_keys

Vea el comando de estado del servicio SSH: /etc/init.d/sshd status Reinicie el comando del servicio SSH: /etc/init.d/sshd Reiniciar Ver el comando del número de versión para el software ssh: $ ssh -V OpenSSH_3.9p1, OpenSSL 0.9.7a 19 de febrero de 2003 # Indicar El sistema está usando OpenSSH ssh: SSH Secure Shell 3.2.9.1 (versión no comercial) en i686-pc-linux-gnu # indica que el sistema está usando SSH2. Cuando se acepta la clave pública del host remoto, se guardará en el archivo. En $ HOME /.ssh /known_hosts. La próxima vez que se conecte a este host, el sistema reconocerá que su clave pública se ha guardado localmente, omitiendo la sección de advertencia y solicitando la contraseña. Cada usuario de SSH tiene su propio archivo conocido_hosts, y el sistema también tiene uno de esos archivos, generalmente /etc /ssh /ssh_known_hosts, que contiene algunas claves públicas para hosts remotos en las que todos los usuarios pueden confiar.

Copyright © Conocimiento de Windows All Rights Reserved