-Ads by Google-

Google Search

Google

viernes, agosto 17, 2007

Administración distribuida con SSH

Administración distribuida con SSH

Uso de SSH para ejecutar comandos en sistemas UNIX, con algunos scripts sencillos, poder habilitar la administración de mútliples sistemas simultáneamente desde una computadora sin loggear directamente en las máquinas. Tambíen veremos conceptos basicos de un sistema de administración distribuida con algunos scripts que usan esta técnica.

Simplificando el login remoto

La herramienta SSH proporciona métodos seguros para loggear y para intercambiar información con un sistema remoto. Un número de herramientas diferentes existen para este propósito, incluyendo SSH, SCP y SFTP.

Todas las herramientas anteriores son seguras y la información es encriptada al intercambiarse con un host remoto. La autenticación es segura ya que usa un mecanismo de llave pública o privada. Uno de los principales beneficios de SSH es que podemos “brincar” el loggin y password copiando nuestra llave pública en la máquina remota.
Esto de de mucha utilidad cuando accesamos de manera remota (esto significa que no proporcionaremos un password) para administrar a una computadora.

Cuando queremos acceder a mútiples máquinas mediante SSH sin intercambiar nuestra llave pública, necesitamos teclear nuestro password para cada máquina.

Una manera sencilla de crear una clave pública es de la manera siguiente:

$ssh-keygen -t rsa


Siga las instrucciones en la pantalla, pero no establezca un password, de lo contrario se tendría que introducir el password cada vez que se quiera usar la llave. Se crean un par de archivos que contienen una llave privada y una llave pública. Ahora sólo necesita agregar el contenido de la llave pública del archivo .ssh/id_rsa.pub dentro del archivo .ssh/authorized_keys en la máquina remota y el usuario que queremos que ingrese al sistema. Necesitamos agregar el contenido de la llave para cada máquina en donde deseamos ingresar de manera automática.

Ejecutando un comando remoto

Existen muchas maneras de ejecutar un comando remoto.

Podemos ejecutar un comando remoto, agregando el comando que queremos ejecutar después de la información del host o login. Por ejemplo, para obtener información del disco del host remoto:

$ssh usuario@foo.com df

Hay que recordar que hay que ingresar el password si no tenemos la llave pública en el host remoto.

También podemos ejecutar una secuencia de comandos separando cada comando por un punto y coma (;) y rodeados de comillas:

$ssh usuario@foo.com “df; uptime”

Podemos ejecutar múltiples comandos.. solo hay que asegurarse de que siempre se deben de rodear de comillas.