(resuelto)
Administro varias máquinas idénticas que uso para lanzar simulaciones, con lo que me viene muy bien cssh (cluster ssh: lanza sesiones de ssh a varios servidores y replica la entrada de teclado). El caso es que hasta hace no mucho utilizaba xhost + export DISPLAY, pero he decidido cambiar a X forwarding (por seguridad y comodidad).
El problema es que al lanzar el cssh a las 10 máquinas a la vez, obtengo 3 tipos de resultados:
Last login: Mon Mar 28 11:48:00 2005 from xxxxx
xxxx@baiona8 xxxx $
Last login: Mon Mar 28 11:52:23 2005 from xxxxxx
/usr/bin/xauth: error in locking authority file /home/grupo/franjva/.Xauthority
xxxx@baiona4 xxxx $
Warning: No xauth data; using fake authentication data for X11 forwarding.
Last login: Mon Mar 28 11:48:00 2005 from xxxxxx
xxxx@baiona7 xxxx $
Es decir, o bien entra correctamente, o bien falla el lock de .Xauthority, o bien... pasa lo tercero

, respectivamente. En el segundo caso, al intentar lanzar una aplicación X, ocurre lo siguiente:
xxxx@baiona4 xxxx $ xfig
X11 connection rejected because of wrong authentication.
X connection to localhost:11.0 broken (explicit kill or server shutdown).
y en el tercero:
xxxx@baiona7 xxxx $ xfig
Xlib: connection to "localhost:11.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
Error: Can't open display: localhost:11.0
Las máquinas en las que ocurren los errores son aleatorias. A veces en unas entra bien, otras veces falla con alguno de los errores. Y al hacer ssh a pelo, todo va perfecto.
Vamos, que el problema es que al intentar entrar en todas a la vez, pasa lo que pasa. O bien no puede lockear .Xautorithy, o bien el warning de "No xauth data".
¿Alguna solución? Lo ideal sería que el cssh dejase un cierto tiempo configurable entre sshs a distintas máquinas, pero no. Y no se perl como para parchearlo. Si alguien conoce un sustituto para cssh que permita x forwarding sin problemas, también me vale

.
Gracias.
(edit)
Bueno, ya no hace falta. He parcheado cssh para que espere 0.5 segundos entre cada ssh. Por si a alguien le interesa (que por el nº de lecturas del hilo va a ser que no

) aquí está el parche:
*** /tmp/cssh Mon Mar 28 17:30:53 2005
--- cssh Mon Mar 28 17:30:36 2005
***************
*** 196,202 ****
}
# disable X11 forwarding if using ssh - fixes problem with redhat machines
! $path_method.=" -x " if($path_method =~ /ssh$/);
if($options{v} || $options{d})
{
--- 196,202 ----
}
# disable X11 forwarding if using ssh - fixes problem with redhat machines
! $path_method.=" " if($path_method =~ /ssh$/);
if($options{v} || $options{d})
{
***************
*** 567,573 ****
# NOTE - ssh -x to disable forwarding of X11 sessions due to problem
# on redhat systems
system("$user_config{'default.terminal'} $user_config{'default.terminal_options'} $place -title '$method:$serv' -e $^X $user_config{'default.cchp_path'}/cchp $debug -s $user_config{'default.cchp_sleep'} -k $user_config{'default.keep_open'} -x $servers{$serv_name}[2] -y $TIOCSTI -z $KILLOFF $path_method -p $port $user_config{'default.cx_args'} $serv &") == 0 or warn("Could not create session to $serv: $! ");
!
if(!sysopen($servers{$serv_name}[3], $servers{$serv_name}[2], O_WRONLY))
{
unlink($servers{$serv_name}[2]);
--- 567,573 ----
# NOTE - ssh -x to disable forwarding of X11 sessions due to problem
# on redhat systems
system("$user_config{'default.terminal'} $user_config{'default.terminal_options'} $place -title '$method:$serv' -e $^X $user_config{'default.cchp_path'}/cchp $debug -s $user_config{'default.cchp_sleep'} -k $user_config{'default.keep_open'} -x $servers{$serv_name}[2] -y $TIOCSTI -z $KILLOFF $path_method -p $port $user_config{'default.cx_args'} $serv &") == 0 or warn("Could not create session to $serv: $! ");
! system("sleep .5");
if(!sysopen($servers{$serv_name}[3], $servers{$serv_name}[2], O_WRONLY))
{
unlink($servers{$serv_name}[2]);
Ahora todo va perfecto.