domingo, 18 de marzo de 2012

Jugando con ssh, xauth y DISPLAY

Si necesitas conectarte por ssh a un servidor UNIX y después cambiar de usuario (por medio de su o de otra forma), pero quieres mantener el reenvío de X a tu pantalla, entonces ve este ejemplo en el que se usa xauth y DISPLAY. La clave es obtener la información de la cookie con xauth list e identificar la pantalla abierta por ssh (usualmente la pantalla 10 del servidor), y después de cambiar usuario pegar la linea completa después del comando xauth add:

myuser@olimpo:~$ ssh -X -l myuser myserver1
Password:
Last login: Mon Oct 17 18:00:46 2011 from olimpo
$ xclock
$ xauth list
myserver1.mynet.net:10 MIT-MAGIC-COOKIE-1 eb3713bfc73799efede775bf1a04cb19
$ su - oracle
Password:
myserver1:/home/oracle> xclock
Error: Can't open display:
myserver1:/home/oracle> xauth add myserver1.mynet.net:10 MIT-MAGIC-COOKIE-1 eb3713bfc73799efede775bf1a04cb19
myserver1:/home/oracle> export DISPLAY=myserver1.mynet.net:10
myserver1:/home/oracle> xclock
myserver1:/home/oracle> uname -n
myserver1
myserver1:/home/oracle>

El comando uname -n del ejemplo de arriba fue un extra para el siguiente caso: esta vez intentas entrar a otro servidor pero obtienes un mensaje de error de xauth y no puedes reenviar ninguna ventana de X:

myuser@olimpo:~$ ssh -X -l oracle myserver2
Password:
/usr/openwin/bin/xauth: (stdin):1: bad display name "unix:10.0" in "add" command

:/home/oracle> xclock
X11 connection rejected because of wrong authentication.
X connection to localhost:10.0 broken (explicit kill or server shutdown).
:/home/oracle> echo $DISPLAY
localhost:10.0
:/home/oracle> uname -n

:/home/oracle>

Como lo habrás notado la variable DISPLAY se ve correcta, pero hay un problema con el nombre del servidor: no hay ningún nombre del servidor configurado; esa es la razón por la que xauth falla al momento de ingresar al servidor. Para corregir este problema tienes que configurar apropiadamente el nombre del servidor de acuerdo a tu versión de UNIX.

Más información:

Getting X11 forwarding through ssh working after running su

No hay comentarios.:

Publicar un comentario