Generar llaves para iniciar sesión sin contraseña en servidores Linux

Si queremos aumentar la seguridad en nuestro servidor para los "inicio de sesión", podemos deshabilitar el uso de una clave para el usuario root (u otro usuario) y entablar la conexión mediante llaves, evitando su escritura.

¿Pero que son las llaves públicas y privadas?

El uso de llaves públicas y privadas es también conocido como criptografía de dos claves, que consiste en el método de usar un par de claves para el envío de información. En donde la llave pública puede ser compartida pero la llave privada debe ser guardada donde nadie tenga acceso a ella. De esta manera se garantiza que solo el emisor es responsable del uso de esta.

La guía está enfocada en clientes que usen como su sistema operativo Linux, por lo tanto solo se explicará el proceso desde la terminal.

NOTA: Se recomienda realizar estos pasos durante la configuración inicial de su servidor.

Paso 1 - Debemos escribir el siguiente comando en la PC local:

ssh-keygen -t rsa

Para que culmine la generación de las llaves, el sistema le hará algunas preguntas como la ruta donde se almacenarán (por defecto en /home/user/.ssh/id_rsa). La segunda pregunta será sobre asignar una clave o no. En caso de asignar una clave tendrá que escribirla cada vez que use la llave privada, caso contrario solo puede dejarlo en blanco y apretar 'enter'.

Finalmente obtendrá como resultado lo siguiente:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+

Paso 2 - Copiamos la clave publica en nuestro servidor, usando el siguiente comando:

cat ~/.ssh/id_rsa.pub | ssh [email protected] -p 2211 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Donde recibirá un mensaje de confirmación que se agregó dicha clave.

Paso 3 - Finalmente tenemos que deshabilitar el uso de la contraseña para el inicio de sesión a través de SSH en el servidor remoto, modificando algunos parámetros en el archivo de configuración del servicio:

nano /etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

NOTA: Asegúrese de efectuar todos los pasos descritos, a lo contrario posterior al reinicio del servicio SSH no podrá acceder al servidor usando la contraseña para root.

Luego reiniciaremos el servicio SSH en el servidor remoto para hacer efectivo los nuevos parámetros:

Para servidores en Ubuntu o Debian puede usar:

systemctl restart ssh

Para servidores en Centos o Fedora

systemctl restart sshd

También puede usar el siguiente comando, donde especifica la llave privada a usar:

ssh -i llaveprueba.key [email protected] -p 2211

Si requiere acceder a su servidor desde otros dispositivos tendrá que copiar la llave privada y configurar una sesión adjuntando la llave generada.

Conclusión

Ahora podrá usar la terminal de linux para conectarse directamente a sus servidores, sin depender de herramientas externas!

¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)

Powered by WHMCompleteSolution