martes, 28 de mayo de 2013

Intercambio de claves en Red Hat

Con el intercambio de claves posibilitaremos que un usuario en concreto acceda por SSH a un servidor sin que éste le solicite contraseña.

Generalmente es necesario para la ejecución de scritps.

Vamos a trabajar con un servidor de origen (nodo1) y un servidor destino (nodo2) y el usuario que usaremos será  userpub.

Lo primero que tendremos que hacer es logarnos con ese usuario, porque las claves pública y privada van asociadas al usuario que las genera.

[root@nodo1 ~]# su - userpub
[nodo1@nodo1 ~]$
[userpub@nodo1 ~]$
[userpub@nodo1 ~]$
[userpub@nodo1 ~]$ cd .ssh/
[userpub@nodo1 .ssh]$ pwd
/home/userpub/.ssh

Dentro del home del usuario tendremos el directorio oculto .ssh

Ahora crearemos la clave pública y la clave privada. Lo haremos lanzando el comando

/usr/bin/ssh-keygen -t rsa
/usr/bin/ssh-keygen -t dsa


Cualquiera de los dos nos valdrá. Yo suelo usar la dsa

[userpub@nodo1 .ssh]$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/userpub/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/userpub/.ssh/id_dsa.
Your public key has been saved in /home/userpub/.ssh/id_dsa.pub.
The key fingerprint is:
e3:d2:d5:e1:a9:ab:aa:eb:83:89:c9:8c:30:ba:15:06 userpub@nodo1.intranet.local
userpub@nodo1 .ssh]$


Si hacemos un ll veremos que nos ha generado las dos claves

[userpub@nodo1 .ssh]$ ll
total 16
-rw-rw-r-- 1 userpub userpub  629 May 28 10:16 authorized_keys
-rw------- 1 userpub userpub  668 May 28 11:41 id_dsa
-rw-r--r-- 1 userpub userpub  629 May 28 11:41 id_dsa.pub
-rw-r--r-- 1 userpub userpub 2429 May 28 11:06 known_hosts

La .pub es la pública y es la que nos interesa.

La copiamos a nodo2 (destino) y la dejamos en /home/userpub/.ssh

scp id_dsa.pub userpub@nodo2:/home/userpub/.ssh/nodo1.pub

El contenido de este fichero lo tendremos que añadir al fichero authorized_keys.

Si no existe, lo crearemos nosostros en el proceso.

[userpub@nodo2 .ssh]$ cat nodo1.pub >> authorized_keys
[userpub@nodo2 .ssh]$


Finalmente, y ya como root, editamos el fichero /etc/ssh/sshd_config

Y en la sección

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6

Descomentamos la linea y le ponemos el valor no

StricModes no

Salimos y reiniciamos el servicio sshd

service sshd restart

Con esto, cuando desde el nodo1, el usuario userpub se conecte por SSH al nodo2, ya no necesitará password.
















No hay comentarios: