martes, 29 de mayo de 2012

Mirroring entre hosts y discos. Parte 1: Claves públicas y privadas en ssh

Debido a las necesidades de la web de la empresa, contratamos una solución de servidor dedicado con dos máquinas en tamden. La idea principal es que estas máquinas realicen un balanceo de carga entre ellas para que la web de la empresa, el cual es el principal servicio que soporta, agilice su rendimiento de forma considerable.
Para realizar esto vamos a configurar el mirroring cruzado, y lo primero que haremos es conseguir comunicación vía ssh.

Ssh permite una forma de comunicación mediante claves públicas y privadas. El funcionamiento es sencillo: se generan 2 claves, una pública y una privada en el server1. Luego se le pasa la clave pública al server2 haciendo que server1 este autorizado a acceder vía ssh sin necesidad de poner la clave.

Veamos como podemos realizar este proceso:
Lo primero que hay que hacer es generar las claves en el server1 con el siguiente comando:
# ssh-keygen -t rsa

En el directorio .ssh de nuestro home (en este caso /root) se creará la clave privada (id_rsa) y la pública (id_rsa.pub).
Ssh-keygen nos pedirá una frase de paso. La dejaremos en blanco para que no nos la pida al conectarnos al equipo remoto. 
Tras esto podemos hacer un ls del direcorio /root/.ssh/ y tendremos algo parecido a esto:
Salida ls





Ahora pasamos a poner el contenido del fichero id_rsa.pub en el fichero authorized_keys del server2.
Para realizar este proceso hay dos forma: copia vía scp el fichero id_rsa.pub del server1 y luego añadir su contenido al fichero authorized_keys del server2; o bien usar el siguiente comando que realiza el proceso de pasar la clave pública de forma automática:
# ssh-copy-id -i /root/.ssh/id_rsa.pub root@server2
Tras esto podemos hacer un cat del fichero /root/.ssh/authorized_keys del server2 y tendremos la siguiente salida:
Salida cat

Ahora solo hay que realizar el proceso inverso en el server2 y ya podremos acceder a ambos servidores con root sin que nos pida contraseña. Saludos curiosos.

No hay comentarios:

Install Drupal 8 in CentOS

Drupal is an open source, flexible, highly scalable and secure Content Management System (CMS) which allows users to easily build and create...