jueves, 15 de diciembre de 2011

Generando llaves RSA

Ultimamente me esta cansando tener que poner cada password de cada servidor, tener que acordarme 16 contraseñas para c/u de los servers me vuelve loco así que decidí usar una llave rsa con una única contraseña para automatizar y minimizar el tiempo de logueo a los servers.

¿Para que nos pueden servir las llaves rsa?

1) Para tener una sola contraseña para entrar por ssh a muchos equipos.

2) Para una empresa que posee administradores externos, en estos casos es interesante generarle la llave para evitar tener que entregar passwords innecesariamente o en el momento que el administrador deja de trabajar en vez de tener que cambiar tooodas las passwords de los servidores podemos eliminar la llave de dicho usuario y listo. (No es la mejor solucion, obviamente deberíamos cambiar las contraseñas.)


- El Cliente contiene las llaves publicas y privadas
- El Server contiene un archivo con las claves públicas autorizadas

Envia clave ssh
Cliente --------------------------------- > Server

Las claves pub coinciden
Cliente < --------------------------------- > Server

Autoriza la entrada por ssh
Cliente < --------------------------------- Server


Lo primero que debemos hacer es correr el comando para generar la llave

jonathan@cfh:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/jonathan/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/jonathan/.ssh/id_rsa.
Your public key has been saved in /home/jonathan/.ssh/id_rsa.pub.
The key fingerprint is:
99:ef:6d:8a:1f:e6:fc:86:63:00:f0:ea:ee:bf:5b:07 jonathan@jprado
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . |
| o |
| o o |
| . .E |
| . .o |
| . ..=. |
| . . B+oo |
| oo.+o.o**o |
+----------------------+
jonathan@cfh:~/.ssh$
jonathan@cfh:~/.ssh$

Luego debemos copiar nuestra llave publica anteriormente generada al servidor.
(Por seguridad y costumbre siempre copio todo a la carpeta tmp )

jonathan@jprado:~/.ssh$
jonathan@jprado:~/.ssh$ scp id_rsa.pub jony@192.168.160.220:/tmp
The authenticity of host '192.168.160.220 (192.168.160.220)' can't be established.
RSA key fingerprint is e3:e4:39:3f:0a:06:b3:65:8e:d5:63:e5:61:cb:88:5d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.160.220' (RSA) to the list of known hosts.
jony@192.168.160.220's password:
id_rsa.pub 100% 397 0.4KB/s 00:00
jonathan@cfh:~/.ssh$
jonathan@cfh:~/.ssh$


Luego debemos acceder al servidor y copiar el contenido de nuestra llave publica a un archivo de autenticación llamado authorized_keys (también podemos poner todas las demás llaves de los usuarios que tengan acceso)

jonathan@cfh:~/.ssh$ ssh jony@192.168.160.220


jony@ubuntu:~$
jony@ubuntu:~$
jony@ubuntu:~$ cd /home/jony/.ssh/
jony@ubuntu:~/.ssh$
jony@ubuntu:~/.ssh$ ls /tmp/
id_rsa.pub
jony@ubuntu:~/.ssh$ cat /tmp/id_rsa.pub >> /home/jony/.ssh/authorized_keys
jony@ubuntu:~/.ssh$
jony@ubuntu:~/.ssh$
jony@ubuntu:~/.ssh$ exit

( con el comando >> hacemos que el contenido del archivo id_rsa.pub se coloque debajo de la ultima linea dentro del archivo autorized_keys)

Ahora la primera vez que logueamos nos pedirá la contraseña que pusimos anteriormente cuando generamos la llave. A partir de ahora no nos volvera a pedir contraseña para loguear al servidor.

jonathan@cfh:~/.ssh$
jonathan@cfh:~/.ssh$
jonathan@cfh:~/.ssh$ ssh jony@192.168.160.220
Linux ubuntu 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

System information as of Thu Dec 15 16:30:01 ARST 2011

System load: 0.13 Memory usage: 9% Processes: 70
Usage of /: 17.7% of 2.97GB Swap usage: 0% Users logged in: 2

Graph this data and manage this system at https://landscape.canonical.com/

0 packages can be updated.
0 updates are security updates.

Last login: Thu Dec 15 16:29:43 2011 from 192.168.160.35
jony@ubuntu:~$
jony@ubuntu:~$
jony@ubuntu:~$
jony@ubuntu:~$



------------------------- LEER CON ATENCIÓN -------------------------

Hay que tener mucho cuidado donde generamos estas llaves, ya que si algún intruso logra entrar a nuestro equipo tendrá acceso a los servers que tienen estas llaves. SIEMPRE es preferible colocar una buena contraseña a las llaves, preferentemente con Mayusculas, signos, puntos, etc.


No hay comentarios:

Publicar un comentario