Ocurre bastante a menudo que cuando te conectas a una máquina remota mediante SSH y necesitas lanzar un comando con otro usuario, te da un error semejante a este:
$ sudo virt-manager [sudo] password for juan: PuTTY X11 proxy: wrong authorisation protocol attemptedPuTTY X11 proxy: wrong authorisation protocol attemptedPuTTY X11 proxy: wrong authorisation protocol attemptedPuTTY X11 proxy: wrong authorisation protocol attemptedTraceback (most recent call last): File "/usr/share/virt-manager/virt-manager.py", line 383, in <module> main() File "/usr/share/virt-manager/virt-manager.py", line 286, in main raise gtk_error RuntimeError: could not open display
Esto es debido a que el servidor X utiliza una cookie de autenticación que se guarda en el perfil del usuario en ~/.Xauthority Para poder pasar esta autenticación a otro usuario, podemos utilizar los siguientes comandos:
Primero listamos las cookies que tenemos
$ xauth list xenon.local/unix:11 MIT-MAGIC-COOKIE-1 32a84908586f4e23c0b68f4478a32578 xenon.local/unix:10 MIT-MAGIC-COOKIE-1 ba33662833233fe85ece9e4825c44d5d
Y luego localizamos la que nos interesa fijándonos en el valor de la variable DISPLAY y se la añadimos al otro usuario:
$ echo $DISPLAY localhost:10.0 $ su - Contraseña: # xauth add xenon.local/unix:10 MIT-MAGIC-COOKIE-1 ba33662833233fe85ece9e4825c44d5d
Ahora ya podemos lanzar cualquier comando como root y las X se redirigirán por nuestra conexión SSH.