Confiando en el SSH – accediendo sin contraseñas

Cuando eres SysAdmin o DevOP y controlas muchos servidores, tener contraseñas es muy engorroso, afortunadamente servicios como el SecureShell permiten tener confianza en sus clientes mediante cifrado tipo RSA .

Esto transfiere la seguridad a la maquina del cliente, donde el que hace esta configuración debe confiar plenamente en su terminal de trabajo pues de otro modo si alguien puede usar su terminal podría entrar a los servidores sin mayor problema.

¿ Para que puedes querer entrar a servicios o servidores sin contraseña ?

Para evitar lo engorro de escribirlo si eres una persona o si ejecutas un programa o un script de mantenimiento poder ejecutar acciones como determinado usuario sin requerir introducir las contraseñas lo cual también es inseguro, pues hardcordear la contraseña en el script lo hace notablemente mas inseguro, pues quien lea el script también lee la contraseña

Entorno.

Para este articulo , queremos ingresar como root a un equipo con GNU/Linux corriendo OpenSSH con la IP 10.10.10.1

Requerimos generar llaves RSA y la clave del usuario root del equipo al que se va a conectar.

Comandos que son ejecutados desde la maquina cliente.

ssh-keygen -b 4096 -t rsa

ssh-copy-id root@10.10.10.1

ssh root@10.10.10.1

con esos 3 comandos hemos configurado el cliente y preparado al equipo remoto para permitir la conexión sin contraseñas, todos los comandos se hacen en el cliente, en el equipo remoto no requerimos hacer nada, aunque los cambios seran guardados en el direcotorio .ssh del home del usuario en este caso root.

Explicacion y uso.

La linea ssh-keygen genera las llaves, solo debe ejecutarse una sola vez aun si queremos conectar a mas de una maquina remota

la linea ssh-copy-id debe ejecutarse una vez por cada maquina que queremos entrar sin clave, en este ejemplo la ip es 10.10.10.1 pero si se quiere un segundo equipo remoto seria 10.10.10.2 y asi sucesivamente

la linea ssh es la linea clásica de conexión, excepto que después del ssh-copy-id a no pedirá nunca mas la clave a menos que la clave se borre o se corrompa en el cliente o en el equipo remoto

Remover las llaves en la maquina remota para que vuelva a pedir claves

En el home del usuario hay un directorio, normalmente .ssh , adentro hay un archivo llamado authorized_keys. Este archivo contiene bloques de llaves empezando con ssh-rsa y terminando con el usuario y host como el siguiente. test@dragonhost.lastdragon.net

ejemplo de bloque

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCrVUtiAFqZtY7NWB8YY9TbyLVA1zZhMbKQY56mp/obLAEFcBsCfV/PEShUEJCpg9aNh4vNr8JAipIQFjuaWRUcWff6t/BNH7SOb2Xf1Elx30rTB7EiVLr4Io+VBobeLyQgz0+z71ZRBzI5Zwvd7oVW3UGu3xRdKLDb41YPI6sRc6sqqG2Nu6oUbUQ6xVAU6ASfz8z8hHk08D5lzkhDerbn1Qq8bJT66ujXB8+fg5Io4KqL4HSDS0mC7rwmSswj2hpaLiO5KqkqI0+A9xgr90G9vskDAQHI/fP7S9SKClH5ZhzMa6QGtxOoTuMVxpLP3U80uLrEm5HL+xqyYB0AsyMBL7/qQMeIQTWpzFufDZjB6QkxRZg5DGeMNvrKDG1UYxQ== test@dragonhost.lastdragon.net

Remover el bloque con el editor de texto favorito, yo uso vim pues esta disponible en cualquier tipo de unix.

Video demostrativo

2 Comments

Add a Comment

Comment spam protected by SpamBam