ssh desde la pantalla de GNU no funciona correctamente

2

Intento iniciar una sesión de pantalla y conectarme a tres máquinas diferentes con el mismo usuario.

Esto es lo que tengo en mi .screenrc

screen -t "machine1" 0 ssh user@machine1
screen -t "machine2" 1 ssh user@machine2
screen -t "machine3" 2 ssh user@machine3

Mi ~/.ssh/configcontiene

ForwardX11 yes

Me sale el siguiente error en los terminales de machine2y machine3.

Warning: No xauth data; using fake authentication data for X11 forwarding
/usr/X11/bin/xauth: error in locking authority file /home/user/.Xauthority

Si elimino solo una de las máquinas de mi .screenrc, funciona correctamente.

¿Cómo puedo evitar este error y conectarme a varias máquinas desde la pantalla?

EDITAR : El directorio de inicio del usuario está en NFS y el bloqueo no funciona correctamente con NFS. Para evitar esto, intenté tener el archivo XAuthority en un sistema de archivos local (/ tmp) o tener un archivo por ssh. No lo logré, de alguna manera mi xauth parece ignorar por completo la XAUTHORITYvariable de entorno. Todavía desconcertado ...

usuario1863
fuente
1
¿Entonces funciona bien con 2 máquinas? (¿Y supongo que realmente quieres usar X? Solo necesitas eso ForwardX11cuando quieres usar sesiones gráficas. Hasta donde yo sé, ¿ screenestá basado en personajes?)
Arjan
@Arjan: Bueno, a veces funciona de alguna manera con cualquier número de máquinas y otras no. La razón parece ser una condición de carrera en conjunción con problemas de bloqueo nfs.
user1863
Si usar ssh -f -N(en algún script de shell, en lugar de usar screen) sería una opción, ¿al menos puede agregar algún sleepcomando entre los 3 comandos? ¿O tal vez mover los 3 screencomandos desde .screenrcalgún script de shell, también usando sleep?
Arjan
Y solo para estar seguro: está utilizando las capacidades gráficas de X, ¿verdad? Entonces, ¿no solo estás tratando de obtener 3 indicaciones de shell (basadas en caracteres), sino que realmente usas la interfaz gráfica X11?
Arjan
@Arjan: dormir también es posible en screenrc. Agregué dormir 30 entre los comandos de la pantalla y realmente durmió 30 segundos, pero no resolvió el problema. A veces, XAuthority está bloqueado y permanece bloqueado durante más de 30 segundos y, a veces, no está bloqueado en absoluto.
usuario1863

Respuestas:

1
/ usr / X11 / bin / xauth: error al bloquear el archivo de autoridad /home/user/.Xauthority

¿Alguna vez obtiene el mismo error sin screen , después de que se haya establecido la primera sesión SSH? Es extraño que su "Si elimino solo una de las máquinas [...] funciona correctamente" parece decir que 2 máquinas funcionan, pero una tercera produce problemas. Si sshsoporta múltiples conexiones X-reenviadas, ¿podría ser una cuestión de hacer las cosas más lentamente? Eso se puede probar mejor sin screensuponer. ¿Y si cambias el orden de las máquinas?

Supongo que este .Xauthorityarchivo está en la máquina remota, pero no soy un experto. (Si /home/useren su pregunta, de hecho, se trata de un directorio más específico, entonces probablemente pueda saber fácilmente si es local o remoto). Entonces, una pregunta extraña: ¿está seguro de que las 3 máquinas son máquinas realmente diferentes, y que nadie más es usando la misma cuenta? De man ssh:

sshtambién configurará automáticamente los datos de Xauthority en la máquina del servidor. Para este propósito, generará una cookie de autorización aleatoria, la almacenará en Xauthority en el servidor y verificará que cualquier conexión reenviada lleve esta cookie y la reemplazará por la cookie real cuando se abra la conexión. La cookie de autenticación real nunca se envía a la máquina del servidor (y no se envían cookies en el plano).

(Y ¿no podría sustituir screencon ssh -f -N, o está usando el título de la pantalla para ser capaz de detener las cosas?)

Arjan
fuente
Ocurre también sin pantalla, si abro los ssh lo suficientemente rápido. Las máquinas son diferentes, pero el usuario es el mismo, y aquí radica el problema: el directorio de inicio del usuario está montado a través de nfs y todavía estamos en el núcleo 2.6.16. Parece que hay un problema de bloqueo con esta configuración. Gracias por señalarme en la dirección correcta.
user1863