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.
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:
Publicar un comentario