SSH es un protocolo de cliente y servidor, y nos ayuda a acceder de forma segura al sistema remoto a través de la red a través del túnel cifrado. SSH tiene un mecanismo de transferencia de archivos (SCP) incorporado para transferir archivos y directorios a través de la red, y es mucho más seguro que FTP (Protocolo de transferencia de archivos).
En entornos más grandes, es una molestia ingresar la contraseña cada vez que se accede a máquinas remotas. Entonces, para facilitar el inicio de sesión, podemos usar la función sin contraseña SSH para acceder a la máquina remota sin ingresar la contraseña.
Aquí, veremos cómo configurar el inicio de sesión sin contraseña SSH en CentOS 8 / RHEL 8.
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.0.10 | raj | CentOS 8/RHEL 8 | Máquina de origen |
cliente.itzgeek.local | 192.168.0.20 | carnero | CentOS 8/RHEL 8 | 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 8
Para habilitar el inicio de sesión sin contraseña SSH, debemos colocar la entrada de clave pública de la máquina local en el archivo ~/.ssh/authorized_keys de la máquina remota (~ representa el directorio de inicio del usuario).
Podemos configurar un inicio de sesión sin contraseña SSH de dos maneras. Elige cualquiera de las formas.
- Uso del comando ssh-copy-id
- Copiar claves manualmente
Uso del comando ssh-copy-id
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 (ssh-copy-id).
El comando ssh-copy-id agrega la clave pública SSH generada a las claves existentes en el archivo ~/.ssh/authorized_keys en el destino. Si el archivo ~/.ssh/authorized_keys no está presente en la máquina de destino, el comando lo crearía y colocaría la clave pública SSH. Generar clave pública
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):
Created directory '/home/raj/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+**o+.. |
|o=+E X . |
|.oX+& * |
|.ooO.X = |
|. = o * S |
| o . + o |
| . . 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 (clave pública) para el inicio de sesión sin contraseña SSH.
[raj@server ~]$ ls -al ~/.ssh/
Salida:
total 8
drwx------. 2 raj raj 38 Nov 7 21:50 .
drwx------. 3 raj raj 74 Nov 7 21:50 ..
-rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa
-rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
Copiar clave pública
Use el comando ssh-copy-id que viene con el paquete openssh-clients con un archivo de entrada de id_rsa.pub.
[raj@server ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Salida:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/raj/.ssh/id_rsa.pub"
The authenticity of host 'client.itzgeek.local (192.168.0.20)' can't be established.
ECDSA key fingerprint is SHA256:z4TLSbno9MLNF1ucNq4gtMlLQDVgrfLKEt8JguchKdo.
Are you sure you want to continue connecting (yes/no)? yes
/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:
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.
Copiar claves manualmente
Generar clave pública
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):
Created directory '/home/raj/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:8BuI21rECULGQMs3BtU2o3jHyHghg+p5RE8naQTQP2A [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|+**o+.. |
|o=+E X . |
|.oX+& * |
|.ooO.X = |
|. = o * S |
| o . + o |
| . . 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 (clave pública) para el inicio de sesión sin contraseña SSH.
[raj@server ~]$ ls -al ~/.ssh/
Salida:
total 8
drwx------. 2 raj raj 38 Nov 7 21:50 .
drwx------. 3 raj raj 74 Nov 7 21:50 ..
-rw-------. 1 raj raj 1831 Nov 7 21:50 id_rsa
-rw-r--r--. 1 raj raj 406 Nov 7 21:50 id_rsa.pub
Copiar clave pública
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 el archivo ~/.ssh/authorized_keys de la máquina de destino. Método 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
Utilice el comando scp para copiar id_rsa.pub en el directorio /tmp de la máquina de destino.
[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 pública 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 2
Inicie sesión en la máquina de destino y cree un 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 fuente, vea el contenido del archivo id_rsa.pub usando el comando cat.
[raj@server ~]$ cat ~/.ssh/id_rsa.pub
Salida: (Muestra)
Copie el contenido y péguelo 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 el comando ssh.
[raj@server ~]$ ssh [email protected]
Ahora, debería poder acceder a la máquina remota sin la contraseña.
Conclusión
Eso es todo. Espero que pueda configurar el inicio de sesión sin contraseña SSH en CentOS 8/RHEL 8. Comparta sus comentarios en la sección de comentarios.