Bien aquí va una herramienta útil para aquellos que realizamos administración de múltiples sistemas en forma remota vía protocolo OpenSSH, la verdad que cuando empecé hace años solo accedía a un par de ventanas con lo cuales no me resultaba molesto por allí realizar repetición de comandos, pero creanme , cuando se necesita mantener mas de 2  servidores he aquí que nos surge la necesidad de algún aplicativo que nos de las bondades que nos da ClusterSSH.

Tal vez aun seguís preguntándote , ¿pero que tipos de tarea puedo realizar en forma simultanea ?, dejame que te de alguna idea para comenzar de las tareas que se puede ejecutar en paralelo:

  • Actualización simultanea de algún aplicativo empaquetado o dist-upgrade (caso de Debian o derivados )
  • Descarga manual de aplicativos que necesitan ser instalados mediante el método convencional (./configure, make, make install)
  • Búsqueda en  Logs de parámetros comunes
  • Actualización de regla genérica en herramienta de firewall.
  • Procedimientos de mantenimiento de base de datos
  • otros….

si sos un Debian User, justo como yo, procedemos a instalarlo mediante:

# apt-get install clusterssh

Una vez instalado el aplicativo y sus dependencias disponemos del ejecutable cssh , el cual dará aparición de una pequeña ventanita como esta:

Pantalla de Inicio de ClusterSSH
Pantalla de Inicio de ClusterSSH

Allí la opción mas útil es la que se encuentra bajo el Menú “Hosts” y se llama “Add Host” , también podemos iniciarla con la combinación de teclas CTRL + PLUS(+) (osea tecla “Control” mas tecla “Mas”), lo que provoca la aparición de esta ventanita:

Ventana de Añadir Host en ClusterSSH
Ventana de Añadir Host en ClusterSSH

Ahora en dicha ventana solo bastaría poner el nombre del servidor en formato URL o Numero IP para acceder al SSH de dicho equipo, asumiendo que lo tengamos corriendo en el puerto típico que es el TCP numero 22, pero sucede comúnmente y a mi me ha pasado que debido a que lo primero q pensaría un oportuno atacante es husmear en dicho puerto para encontrar un server SSH andando, así que lo que suelo hacer es cambiar el puerto y poner uno distinto al 22, relax muchachos o damas, que tenemos 65536 para elegir, exceptuando los típicamente empleados por otros protocolos nos quedan muchos para decantarnos. En fin si tu caso es este, y pusiste un puerto atipico, se lo pasamos en la linea de la ventana de Add Host, escribiendo por ejemplo:

midominio.rechingon.org:2222

por si queres un usuario particular, a ver veamos con ponerlo así

pasokon@midominio.rechingon.org:2222

y listo, ya especificamos user and port.

Ahora , bien tu reacción podría ser , “pero me pone por las bolas tener que andar especificando User and Port, aparte de tipear todo el dominio”, bueno, si te estabas diciendo justamente esto o alguna frase similar de disgusto, podes realizar configuraciones personalizadas creando tu archivo .csshrc, veamos

$ touch ~/.csshrc

$ mcedit  ~/.csshrc

yo uso mcedit o a veces vim para editar archivos como editores de preferencia, y agregamos algunas lineas como las siguientes:

ignore_host_errors = yes

isp1 = usuario@midominio1.com.ar
isp2 = usuario@miotrodominio.net:4444
empresa1 = otrousuario@empresa1.com.ar:5666
empresa2 = usuario@empresa2.com.ar:221
oficina  = yo@miempresa.com.ar:2201
micluster1 = isp1 isp2
micluster2 = empresa1 empresa2 oficina
clusters = micluster1 isp1 isp2 micluster2 empresa1 empresa2 oficina

Bien, expliquemos un poco lo que hacemos aquí, la primer linea si bien en las ultimas versiones dice que esta en status DEPRECATED, yo a algunos servidores que administro no he podido conectarme si no fuera porque esta alli dicha opción, asi q la mantengo en mi archivo .csshrc. Uds vean como les resulta. De las lineas de 2 a 6  defino mis host asociándolos a etiquetas a gusto y placer del usuario, en el caso del ejemplo identifique los hosts de acuerdo a su funcionalidad “isp1” o a un lugar donde pertenezcan, pero en mi preferencia me gusta identificar los host con sus nombres,  particularmente al instalar un servidor suelo asignarle un nombre de mujer, al menos en mi caso es mas fácil recordarlos🙂.

En las lineas 7 y 8  referencio dichos los Hosts ya definidos de acuerdo a otra etiqueta, que es básicamente un tag cualquiera con el cual los agrupamos, de esta manera podemos iniciar una serie de sesiones en forma paralela con solo cargar el nombre de dicha agrupación (Consejo: no usen una misma password para gestionar el inicio de sesion en diferentes servidores, seria lo mas fácil, pero por favor no lo hagan no es lo mas recomendable).
Finalmente en la linea 9 se define la sección “clusters” , recordar que debe haber una sola sección “clusters” donde iran todas las etiquetas definidas, tanto de hosts y de agrupaciones de host, es importante incluir esta sección , porque sin ella todo lo definido anteriormente no funcionara.
Por mas configuraciones:

$ man cssh

😛, se los recomiendo, porque aparte de lo descrito esta herramienta tiene algunas otras  funcionalidades útiles para trabajar con las ventanas de sesión iniciadas.

Casi me olvido, una buena alternativa para evitar  la típica validación contra OpenSSH, es el uso de certificados para realizar la conexión contra los servidores.

Ahora a titulo de simple usuario y critico, esta herramienta me ha servido demasiado a la hora de realizar alguna de las tareas arribas mencionadas, de todas formas algo le debo echar en falta, y es la posibilidad de mantener encriptada o cifrada la informacion relativa a los hosts que administro , el hecho de que este allí en un archivo de texto en mi $HOME no es algo que me tenga muy tranquilo. En fin. Es solo mi opinión.
Salud!