Múltiples conexiones SSH

He probado una herramienta nueva para administrar varias máquinas y debo reconocer que me ha gustado, aunque me costará un poquito acostumbrarme a ella.

La herramienta se llama mssh y su autor es Bradley Smith. Ya que se dedica -entre otras cosas- a portar Debian a la arquitectura AVR32 necesitaba una forma de acceder simultáneamente a una docena de servidores de construcción de paquetes. Como acceder uno por uno es un auténtico suplicio para un administrador de sistemas se le ocurrió escribir este programa de interfaz gráfico, simple y fácil de usar.

Instalación

Lamentablemente el paquete no está aún en el repositorio estable de Debian. He tenido que emplear la rama

testing

otra vez.

# apt-get -t testing install mssh

El paquete está bastante actualizado, eso sí, aunque falla un tanto en la documentación puesto que aunque menciona el archivo de

clusters

he tenido que emplear

strace

al final para saber dónde estaba buscando[1].

Configuración

Para configurar

mssh

se puede emplear un archivo donde se definen grupos de máquinas a las que conectar simultáneamente. Digo se puede porque no es obligatorio aunque sí que es aconsejable si el número de máquinas es considerable.

El archivo debe estar en el directorio personal del usuario que lo llama bajo el nombre

.mssh_clusters

y su estructura es muy simple:

alias1: host [host ...]
alias2: [alias1] host [host ...]

Los nombres de

host

son utilizados directamente con

ssh

por lo que es posible aprovecharse de su característica flexibilidad.

Por ejemplo podemos tener un archivo de «clusters» como el que sigue:

servidores: alejandria budapest maginot
externos: albion falcata

y un archivo de configuración de

$HOME/.ssh/config

tal que:

Host: falcata
User: aquiles
Port:  22220
HostName: falcata.dyndns.org

Con lo que podemos conectar con nuestra máquina

falcata

con parámetros completamente diferentes ya que es

ssh

el que se encarga de estos detalles.

Uso

El empleo es de lo más sencillo, le indicamos un alias mediante el parámetro

-a

que buscará en su archivo de «clusters» o una lista de máquinas a las que conectar.

$ mssh -a servidores

Y la primera pantalla es:

mssh iniciando sesión en tres servidores

Podemos activar una de las sesiones con el ratón y atenderla con el teclado individualmente, o emplear la barra blanca que aparece bajo el menú para enviar pulsaciones de teclado a todas las sesiones simultáneamente. Esto significa que es posible enviar también las correspondientes contraseñas, lo que nos simplifica muchísimo la administración[2].

La siguiente captura muestra a

mssh

en plena acción:

Actualizando en los tres servidores

Notes

[1] Usar el trazado de ejecución suele ser el paso previo a consultar los fuentes en estos casos

[2] Partiendo de la base de que vamos a realizar las mismas tareas administrativas en todas las máquinas