• Aquí vive el Software Libre, coje lo que quieras, da lo que puedas
  • Rápido, seguro, libre e increíblemente fácil de usar
  • Ubuntu: Linux para seres humanos
  • Linux es Educación. Linux es Ciencia
  • Ubuntu es diseño, Ubuntu es innovación
  • Keep calm and enjoy Ubuntu
  • Trata tu teclado como se merece con Ubuntu
  • pf-kernel para Ubuntu
  • Convierte tu iMac en un ordenador de verdad
  • La libertad no es poder elegir entre unas pocas opciones impuestas
  • Software libre, para una sociedad libre

Toma el control remoto de tus máquinas con vnc4server: soporte para múltiples usuarios e inicio de VNC antes de entrar en una sesión Gnome

Entrada escrita por: Fernando Lanero Barbero
Desde que Canonical introdujo en Ubuntu "Lightdm" como gestor de sesiones para X Window System, el control mediante escritorio remoto a través de VNC (Computación Virtual en Red) no es tan fácil como cabría imaginar. De hecho, estos días me he estado rompiendo la cabeza para lograr controlar de forma ubicua mi pequeño VAIO UX corriendo Ubuntu 12.04 desde otro ordenador cliente.



Mi idea era que cualquiera pudiera estar utilizando el PC del que quiero tomar el control de forma normal y, a la par, poder acceder yo a él a través de otra sesión para no interferir en el uso principal que el otro usuario esté haciendo de ese ordenador (todos sabemos que cuando controlamos otro ordenador a través de VNC, el usuario principal pierde el control del servidor a la vez que ve todo lo que hace el invitado en la pantalla). Mi idea no era esa.


Así que me puse manos a la obra. Sabía que lo que quería desarrollar se podía hacer (tengo uno de mis servidores configurado de esa forma, aunque ese tiene instalado GDM -Gnome Display Manager-), pero nunca lo había hecho con Lightdm... y por lo que vi, no hay mucha documentación. Muchos aquí diréis, bueno, utiliza X11vnc server, que además funciona "out of the box"... sí, pero no soporta múltiples usuarios, así que no me sirve.

Empezamos.

1) Abre la terminal e instala vnc4server:

sudo apt-get install vnc4server

2) Instala GDM (sí, curiosamente el poder controlar de nuevo nuestra máquina a través de VNC pasa por volver a instalar GDM :/

Pon mucha atención en este punto, ya que se te pedirá que selecciones el gestor de sesiones por defecto, en donde deberás elegir "Lightdm"

sudo apt-get install gdm

Recuerda, cuando te pida elegir qué gestor de sesiones quieres elegir, selecciona "Lightdm"

3) A continuación verificamos que tenemos instalado la barra de tareas y el lanzador de aplicaciones "gnome-panel"

sudo apt-get install gnome-panel

4) A continuación, cuando ejecutes por primera vez "vnc4server", se te pedirá que introduzcas la contraseña con la que accederás a la sesión remota. Recuerda apuntarla. Abrimos una terminal y lanzamos "vnc4server"

vnc4server

Introducimos la contraseña que elijamos y la verificamos introduciéndola por segunda vez.

5) A la vez que generamos la contraseña de acceso a la sesión remota, "vnc4server" creará también el fichero de configuración de la sesión en "/home/nombre_de_usuario/.vnc/xstartup" (cuando accedas a este fichero a través de Nautilus, recuerda pulsar la combinación de teclas "ctrl+h" para poder ver los recursos ocultos que comienzan por un "."). Aquí es de absoluta importancia tener bien configurado el servidor VNC mediante un fichero "xstartup" adecuado. Mi recomendación es que copies y pegues el contenido que te dejo a continuación si no sabes muy bien lo que significa cada variable:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
#exec /etc/X11/xinit/xinitrc
#. /etc/X11/xinit/xinitrc
gnome-session  --session=ubuntu-2d &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &


Lo que he cambiado con respecto a los valores predeterminados es lo siguiente:

  • unset SESSION_MANAGER: he desmarcado esta opción para evitar errores del tipo "Could not acquire name on session bus"
  • unset DBUS_SESSION_BUS_ADDRESS: también desmarcada para poder ganar permisos root a través de la sesión remota.
  • En la ruta "/usr/share/gnome-session/sessions" podrás ver cada uno de los entornos gráficos en los que podrás acceder remotamente, y que vienen determinados por los ficheros .session que a su vez tienen su correspondencia con la variable "gnome-session  --session=" del fichero xstartup. Puedes usar cualquiera de estos entornos en tu sesión remota:
gnome-session –session=gnome-classic & -> Accedes con el entorno Gnome Classic.
gnome-session –session=ubuntu-2d & -> Accedes con Unity 2D.
gnome-session –session=ubuntu & -> No sé por qué, pero no funciona.
gnome-session –session=gnome-session & -> Tampoco funciona porque la sesión por defecto ya es "ubuntu"


Elegid el entorno que mejor se adapte a vuestras necesidades y controlad cualquier ordenador de vuestra red.

A partir de aquí sólo os resta instalar un cliente VNC en el PC (Reminna funciona perfectamente en Ubuntu) o incluso en un terminal Android y configurarlo con la IP del servidor donde has instalado vnc4server, el usuario con el que accedes a tu sesión de Ubuntu y la contraseña que has definido al instalar vnc4server.

Una vez que empecéis a usarlo veréis lo útil que resulta para realizar cualquier tarea de forma remota.

2 comentarios:

Salfuman The Great dijo...

Muchas gracias, Fernando, por tu artículo. He instalado vnc4server para poder controlar remotamente con vncviewer desde mi PC de sobremesa (Windows 7) un portátil con Ununtu. Lo que no logro hacer es apagar el portatil desde la sesión de vncviewer (ver. 4.6.3). Cuando selecciono "Apagar ..." se cierra la sesión que he abierto en Ubuntu pero no logro que el portátil se apague, tengo que entrar en él y apagarlo. ¿Alguna idea para solventar este problemilla?

JES dijo...

Que tal Fernando, el artículo esta interesante, pero no lo puedo poner en ejecución en ubuntu server 14.04.2 lts, hay paso que tuve que realizar manual ya que esto lo implementaste hace mas de 2 años, me imagino que con el 12.04, el Lithgmd tuve que ejecutarlo manual ya que no me dio a escoger, lo otro cuando ya lo tengo todo configurado, Yo utilizo Remina y trato de conectame con el server no tiene comunicación, osea que tengo que correr en modo terminal vncserver para que pueda iniciar sesion con la opción :1 y me responde el server con una pantalla gris de fondo y tres casillas con:
Accepte clipboard from viewer
send clipboard to viewer
send primary selection to viewer
y de alli el mouse con una X , sin poder tener control sobre este servidor, lo muevo por todos lados pero no me muestra mas que el fondo gris .
Probe con los dos entornos de Gnome-classic y ubuntu -2 sin resultados positivo.
Lo has intentado con esta versión? Saludos....