Configurando claves ssh y authorized_keys Acceso ssh sin password LINUX

Hoy vamos a ver como se pueden configurar las claves ssh para poder acceder sin necesidad de password desde unas maquinas linux a otras. Este método de acceso es mucho mas seguro que el password único, debido a que las claves ssh son muy difíciles de crackear por fuerzaimagem_ssh bruta, mientras que un password que no modificamos en mucho tiempo si es posible crackear sin mucho trabajo.

 

Cuando generamos una clave ssh se crean dos cadenas de caracteres muy grandes, una cadena publica (public_key) y una cadena privada (private_key). Si ponemos la clave publica en un servidor, y accedemos por ssh desde el servidor que tiene la clave privada se nos desbloquea la conexión ssh sin necesidad de un password, podemos añadir aun mas seguridad si protegemos la clave privada con una «frase Password».

Para este post vamos a configurar 3 servidores linux para que se pueda acceder por ssh desde cualquiera de ellos a otro sin necesidad de password.

El primer paso sera generar la clave privada en el servidor 01.

 

ssh-keygen -t rsa

Cuando nos pregunte donde guardar la clave pulsamos enter para que la guarde en el home del usuario desde el cual lo estamos haciendo. En mi caso quiero que sea el usuario root el unico que pueda acceder a otros equipos. Si queremos que otros usuarios tengan acceso deberemos crear claves para cada usuario.

Después nos preguntara si queremos introducir una frase contraseña, podemos pulsar enter para no tener contraseña en la clave privada o introducir una.

ssh-keygen 1

Una vez generada la clave, tendremos dos nuevos archivos uno seria id_rsa.pub que correspondería con nuestra clave publica y id_rsa que seria la clave privada.

ls2

Vemos que también se nos genera dos archivos, Autorized_keys (aquí es donde debemos introducir la clave publica de las maquinas que queremos tengan acceso a este equipo) y know_host (que es una lista de host conocidos por la maquina).

haciendo un cat sobre la id_rsa.pub podemos ver nuestra clave publica.

id_rsa

Esta clave podemos copiarla a mano a los archivos Autorized_keys y con eso estaríamos, pero tenemos una herramienta que nos hace el trabajo automáticamente y también podríamos con la siguiente orden.

cat ~/.ssh/id_rsa.pub | ssh root@192.168.21.2 "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Modificando la dirección ip por la del equipo destino y «root» por el usuario.

Para este ejemplo usaremos la herramienta que se nos facilita llamada ssh-copy-id.

 

 ssh-copy-id root@centos02

sshcopy

 

y como se nos pide despues del ssh-copy podemos ya probar si tenemos conexion ssh haciendo un simple.

 

ssh -l root centos02

si vemos que no se nos pide contraseña.

5

Ya tenemos configurado el primer equipo, pasamos a repetir el proceso con el segundo equipo.

 

 ssh-copy-id root@centos03

Ahora debemos repetir todo el proceso en las maquinas centos02 y centos03, tanto la generación de claves como el ssh-copy.

En Centos02

ssh-keygen -t rsa
ssh-copy-id root@centos01
ssh-copy-id root@centos03

todo

repetimos el paso en Centos03

ssh-keygen -t rsa
ssh-copy-id root@centos01
ssh-copy-id root@centos02

y con esto ya podremos acceder desde un servidor a otro con el usuario root sin necesidad de escribir password y de una forma mucho mas segura.

TODO VENTAJAS!