viernes, 26 de diciembre de 2008

Mejorando la velocidad de multiples conexiones SSH en el mismo servidor

Si ejecutas un montón de pestañas del terminal o scripts que necesitan hacer conexiones al mismo servidor, puedes hacerlos mas rápido con multiplexing: haciendo al primero actuar como maestro y dejando al resto compartir su conexión TCP al servidor.

Si todavía no tienes un archivo config en el directorio .ssh de tu directorio /home, créalo con los permisos 600: que solo lo puedas leer tu.

Luego agrega estas lineas:

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p


ControlMaster auto le indica a ssh que intente iniciar un maestro si ninguno esta ejecutándose o usar un maestro existente. ControlPath es la ubicación de un socket para el proceso ssh se comunique entre ellos mismos. Los %r, %h y %p son reemplazados con tu nombre de usuario, el host al cual te estas conectando y el numero de puerto - solo las sesiones ssh desde el mismo usuario al mismo host en el mismo puerto puede compartir una conexión TCP, por eso cada grupo multiplexed necesita un socket separado.

Para asegurarte que trabaja, inicia una sesión ssh y mantenla ejecutándose. Luego en otra ventana abre otra conexión con la opcion -v:

~$ ssh -v ejemplo.com echo "hola"


Y en lugar de los largos mensajes de una sesión ssh normal, veras unas cuantas lineas terminando con:

debug1: auto-mux: Trying existing master
hola


Si tienes que conectarte a una implementación antigua de ssh que no soporta conexiones multiplexed, puedes hacer una sección Host separada:

Host antiguo.ejemplo.com
ControlMaster no


Para mas información puedes ver man ssh y man ssh_config

Fuente.

No hay comentarios: