En este articulo se describe como establecer una relación de confianza entre dos nodos vía SSH, intercambiando claves.
De esta forma podemos lanzar comandos de un nodo a otro sin introducir contraseña, muy útil para scripting.
En el ejemplo pondermos los nodos A y B.
Generamos las claves en el nodo A (sin contraseña):
a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
1a:2f:04:73:2f:1a:23:3a:2b:ab:3f:23:13:cb:12:e3 a@A
Creamos el directorio ~/.ssh en el nodo B:
a@A:~> ssh b@B mkdir -p .ssh
b@B's password:
Seguidamente añadimos la nueva clave publica al fichero b@B:.ssh/authorized_keys:
a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:
Ya lo tenemos listo:
a@A:~> ssh b@B hostname
B