Scripts con SSH

SSH significa Secure Shell, es decir, un intérprete de comandos seguro, y es a su vez un protocolo y un programa. Utiliza el puerto 22, y sirve para acceder a máquinas remotas a través de la red.

Leyendo información por la red me he enterado de que SSH también puede utilizarse para realizar scripts utilizando Bash (el intérprete de comandos de Unix). Nunca imaginé que podría servir para crear de forma sencilla algunos scripts utilizables en el día a día, o para ocasiones determinadas. Por ejemplo, puede resultar muy útil para un administrador de red a la hora de manejar y controlar un dominio. Incluso podemos usarlo en conjunto con Cron y ejecutar los scripts a una hora determinada.

Lo primero es instalar ssh; y  expect para facilitarnos las cosas.

# apt-get install ssh expect

Expect es una librería que contiene funciones que permite ejecutar lo que definamos al leer algo determinado por pantalla. Un ejemplo clarificador: Si el terminal nos muestra: “Ingrese contraseña:”, entonces podemos decirle que cuando se nos muestre ‘contraseña:’ escriba el valor que hemos definido en el script.

Vamos a crear dos casos de ejemplo, que creo que asi se entenderá mejor-

Creamos un archivo con el nombre que queramos, dónde queramos, y con el editor que más nos guste (nano, vi, emacs, …). Recordad crearlo como usuario normal.
Este script servirá para: Desactivar eth0 y activar ath0 (podría ser cualquier otra cosa, como una wifi0 otra eth, una subinterfaz, …).

#!/bin/bash
/usr/bin/expect <<EOD
spawn ssh root@localhost
expect “password:”
send “nuestrapassr”
expect “$”
send “ifdown eth0r”
expect “#”
send “ifup ath0r”
expect “#”
expect eof
EOD

El segundo script servirá para apagar remotamente un ordenador (necesitamos ser administradores de ese equipo):

#!/bin/bash
/usr/bin/expect <<EOD
spawn ssh root@192.168.X.X
expect “password:”
send “nuestrapassr”
expect “$”
send “haltr”
expect “#”
expect eof
EOD

Para ejecutar los scripts basta con hacer: sh scriptX.sh, o si tienen permisos de ejecución: ./scriptX.sh. Y para hacer la labor más sencilla, podemos crear un lanzador para que se ejecute con un simple click de ratón.
Estos scripts pueden ser utilizados remotamente, lo cual es una suerte porque facilita mucho la labor de administración :)

Gracias a la labor de investigación de Khirr

Tags: , , , ,

  1. #1 written by quicoto Marzo 20th, 2009 at 17:06

    como te pasas poniendo este tipo de entradas :P

    he hecho muy poco linux y ya no me acuerdo ^^

    saludos

    RE Q
  2. #2 written by Stuntman Marzo 20th, 2009 at 23:16

    Recuerdo que por ssh se hackea el iPod touch, pero pase de lios :D

    saaludos!

    PD:De momento no me serviran tales códigos, pero puede que alguna vez vuelva por aqui!!

    RE Q