SSH es un protocolo de cliente y servidor, y nos ayuda a acceder al sistema remoto a través de la red a través del túnel encriptado. Cada vez que la máquina cliente accede al servidor que ejecuta SSH, el cliente descarga la clave segura del servidor y, al mismo tiempo, el servidor también descarga la clave del cliente. Estas dos claves crean el túnel encriptado entre el servidor y el cliente, de modo que los datos se transfieren de manera muy segura a través de la red.
Si la organización tiene una gran cantidad de servidores, cada vez que el administrador debe ingresar la contraseña para acceder al sistema remoto. Es una molestia ingresar la contraseña varias veces; SSH viene con una nueva función llamada inicio de sesión sin contraseña, que ayuda a acceder a la máquina remota sin ingresar la contraseña.
Aquí tenemos dos máquinas con dos nombres de usuario diferentes.
Nombre de host | Dirección IP | Usuario | SO | Propósito |
servidor.itzgeek.local | 192.168.1.10 | raj | CentOS 7/RHEL 7 | Máquina de origen |
cliente.itzgeek.local | 192.168.1.20 | carnero | CentOS 7/RHEL 7 | Máquina de destino |
Aquí, usaré un nombre de host en lugar de una dirección IP.
Siga los pasos para crear el inicio de sesión sin contraseña.
Configurar inicio de sesión sin contraseña SSH en CentOS 7
Para habilitar el inicio de sesión sin contraseña, debemos colocar la entrada de clave pública de la máquina cliente en el archivo ~/.ssh/authorized_keys del servidor (~ representa el directorio de inicio del usuario).
Podemos configurar un inicio de sesión sin contraseña SSH de dos maneras. Elija cualquiera de los métodos.
- Automático:(recomendado)
- Manual
Método 1:(Automático)
Este método implica generar un par de claves SSH en la máquina de origen y colocarlo en la máquina de destino con un solo comando.
Inicie sesión en la máquina de origen y cree un par de claves SSH con el siguiente comando ssh-keygen.
[raj@server ~]$ ssh-keygen
Salida:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/raj/.ssh/id_rsa): << Press Enter
Created directory '/home/raj/.ssh'.
Enter passphrase (empty for no passphrase): << Press Enter
Enter same passphrase again: << Press Enter
Your identification has been saved in /home/raj/.ssh/id_rsa.
Your public key has been saved in /home/raj/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0oqVhWQzIV+hFFHkquVCTihmORqtt+vXHIXhhXoIosI [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| . XB=. |
|. . *oB. |
|o. . +++o |
|oE..o +=. |
|+=o o.*.S |
|++.+ *.o |
|o . =oo. |
| . ...o |
| .+o |
+----[SHA256]-----+
Una vez que haya creado, encontrará dos archivos id_rsa e id_rsa.pub dentro del directorio .ssh. Vamos a utilizar id_rsa.pub para el inicio de sesión sin contraseña.
[raj@server ~]$ ls -al ~/.ssh/
Salida:
total 8
drwx------. 2 raj raj 38 Sep 6 00:37 .
drwx------. 3 raj raj 74 Sep 6 00:37 ..
-rw-------. 1 raj raj 1675 Sep 6 00:37 id_rsa
-rw-r–r–. 1 raj raj 406 Sep 6 00:37 id_rsa.pub
Utilice el comando ssh-copy-id con un archivo de entrada de id_rsa.pub.
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
El comando ssh-copy-id crea ~/.ssh/authorized_keys en la máquina de destino si el archivo no lo hace. De lo contrario, ssh-copy-id agregaría la nueva clave a las claves existentes.
Salida:
The authenticity of host 'client.itzgeek.local (192.168.1.20)' can't be established.
ECDSA key fingerprint is SHA256:sueTz6FURcKDbeyGkpE7lUHOaosW/rkkvlG18v98T7Y.
ECDSA key fingerprint is MD5:f7:39:52:7e:2e:a4:20:84:ff:d7:72:21:20:36:91:76.
Are you sure you want to continue connecting (yes/no)? yes << Type Yes and Press Enter
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: << Enter password of destination machine user (ram)
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
Método 2:(Manual)
Este método implica generar un par de claves SSH en la máquina de origen y colocarlo en la máquina de destino iniciando sesión manualmente.
Primero, inicie sesión en la máquina de origen y cree un par de claves SSH con el siguiente comando.
[raj@server ~]$ ssh-keygen
Salida:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/raj/.ssh/id_rsa): << Press Enter
Created directory '/home/raj/.ssh'.
Enter passphrase (empty for no passphrase): << Press Enter
Enter same passphrase again: << Press Enter
Your identification has been saved in /home/raj/.ssh/id_rsa.
Your public key has been saved in /home/raj/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0oqVhWQzIV+hFFHkquVCTihmORqtt+vXHIXhhXoIosI [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| . XB=. |
|. . *oB. |
|o. . +++o |
|oE..o +=. |
|+=o o.*.S |
|++.+ *.o |
|o . =oo. |
| . ...o |
| .+o |
+----[SHA256]-----+
Una vez que haya creado, encontrará dos archivos id_rsa e id_rsa.pub dentro del directorio .ssh. Vamos a usar id_rsa.pub para el inicio de sesión sin contraseña.
[raj@server ~]$ ls -al ~/.ssh/
Salida:
total 8
drwx------. 2 raj raj 38 Sep 6 00:37 .
drwx------. 3 raj raj 74 Sep 6 00:37 ..
-rw-------. 1 raj raj 1675 Sep 6 00:37 id_rsa
-rw-r--r--. 1 raj raj 406 Sep 6 00:37 id_rsa.pub
Puede usar el comando scp para copiar id_rsa.pub en el destino o copiar el contenido del archivo id_rsa.pub y pegarlo en la máquina de destino (archivo ~/.ssh/authorized_keys). Método de copia:1
Inicie sesión en la máquina de destino y cree el directorio .ssh en el directorio de inicio del usuario, si no existe.
[ram@client ~]$ mkdir ~/.ssh
[ram@client ~]$ chmod 700 ~/.ssh
Usa el scp comando para copiar el id_rsa.pub al /tmp de la máquina de destino directorio.
[raj@server ~]$ scp -pr ~/.ssh/id_rsa.pub [email protected]:/tmp
Deberá ingresar la contraseña para el destino, ya que aún debemos configurar el inicio de sesión sin contraseña.
Coloque la clave de origen en el archivo authorized_keys para iniciar sesión sin contraseña.
[ram@client ~]$ cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
Actualice el permiso del archivo.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Método de copia:2
Inicie sesión en la máquina de destino y cree el directorio .ssh en el directorio de inicio del usuario, si no existe.
[ram@client ~]$ mkdir ~/.ssh
[ram@client ~]$ chmod 700 ~/.ssh
Edite el archivo authorized_keys.
[ram@client ~]$ vi ~/.ssh/authorized_keys
En la máquina de origen, vea el contenido del archivo id_rsa.pub mediante el comando cat. Copie el contenido seleccionándolo (asumiendo que está usando PUTTY).
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
Salida: (Muestra)
Coloque el contenido anterior en el archivo authorized_keys en el destino y guárdelo. Luego, actualice el permiso del archivo.
[ram@client ~]$ chmod 600 ~/.ssh/authorized_keys
Probar inicio de sesión sin contraseña
Ahora acceda a la máquina remota usando SSH. Te llevará directamente al shell sin pedir la contraseña.
[raj@server ~]$ ssh [email protected]
[ram@client ~]$ uname -a
Conclusión
Eso es todo. Este inicio de sesión sin contraseña ahorra tiempo y energía a los administradores del sistema. Comparta sus comentarios en la sección de comentarios.