Inicio de sesión sin contraseña SSH con SSH Keygen en 5 sencillos pasos


SSH (Secure SHELL) es un protocolo de red de código abierto y más confiable que se utiliza para iniciar sesión en servidores remotos para la ejecución de comandos y programas. También se utiliza para transferir archivos de una computadora a otra a través de la red mediante un protocolo de copia segura (SCP).

En este artículo, le mostraremos cómo configurar el inicio de sesión sin contraseña en RHEL/CentOS y Fedora usando claves ssh para conectarse a servidores Linux remotos sin ingresar una contraseña. El uso de inicio de sesión sin contraseña con claves SSH aumentará la confianza entre dos servidores Linux para facilitar la sincronización o transferencia de archivos.

SSH Client : 192.168.0.12 ( Fedora 21 )
SSH Remote Host : 192.168.0.11 ( CentOS 7 )

Si está tratando con varios servidores remotos de Linux, el inicio de sesión sin contraseña SSH es una de las mejores formas de automatizar tareas como copias de seguridad automáticas con scripts, archivos de sincronización mediante SCP y ejecución remota de comandos.

En este ejemplo, configuraremos el inicio de sesión automático sin contraseña SSH desde el servidor 192.168.0.12 como usuario tecmint a 192.168.0.11 con el usuario sheena.

Paso 1: Cree claves de autenticación SSH-Keygen en - (192.168.0.12)

Primero inicie sesión en el servidor 192.168.0.12 con el usuario tecmint y genere un par de claves públicas usando el siguiente comando.

[tecmint@tecmint.com ~]$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/tecmint/.ssh/id_rsa): [Press enter key]
Created directory '/home/tecmint/.ssh'.
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Press enter key]
Your identification has been saved in /home/tecmint/.ssh/id_rsa.
Your public key has been saved in /home/tecmint/.ssh/id_rsa.pub.
The key fingerprint is:
5f:ad:40:00:8a:d1:9b:99:b3:b0:f8:08:99:c3:ed:d3 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
|        ..oooE.++|
|         o. o.o  |
|          ..   . |
|         o  . . o|
|        S .  . + |
|       . .    . o|
|      . o o    ..|
|       + +       |
|        +.       |
+-----------------+

Paso 2: Cree el directorio .ssh en - 192.168.0.11

Use SSH desde el servidor 192.168.0.12 para conectar el servidor 192.168.0.11 usando sheena como usuario y cree el directorio .ssh debajo de él, usando el siguiente comando.

[tecmint@tecmint ~]$ ssh sheena@192.168.0.11 mkdir -p .ssh

The authenticity of host '192.168.0.11 (192.168.0.11)' can't be established.
RSA key fingerprint is 45:0e:28:11:d6:81:62:16:04:3f:db:38:02:la:22:4e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.11' (ECDSA) to the list of known hosts.
sheena@192.168.0.11's password: [Enter Your Password Here]

Paso 3: Cargue las claves públicas generadas en - 192.168.0.11

Utilice SSH desde el servidor 192.168.0.12 y cargue una nueva clave pública generada (id_rsa.pub) en el servidor 192.168.0.11 en el directorio .ssh de sheena como nombre de archivo autorizado_keys.

[tecmint@tecmint ~]$ cat .ssh/id_rsa.pub | ssh sheena@192.168.0.11 'cat >> .ssh/authorized_keys'

sheena@192.168.1.2's password: [Enter Your Password Here]

Paso 4: establezca los permisos en - 192.168.0.11

Debido a las diferentes versiones de SSH en los servidores, necesitamos establecer permisos en el directorio .ssh y el archivo autorizado_keys.

[tecmint@tecmint ~]$ ssh sheena@192.168.0.11 "chmod 700 .ssh; chmod 640 .ssh/authorized_keys"

sheena@192.168.0.11's password: [Enter Your Password Here]

Paso 5: Inicie sesión desde el servidor 192.168.0.12 al servidor 192.168.0.11 sin contraseña

De ahora en adelante, puede iniciar sesión en 192.168.0.11 como usuario sheena desde el servidor 192.168.0.12 como usuario tecmint sin contraseña.

[tecmint@tecmint ~]$ ssh sheena@192.168.0.11