sábado, 10 de agosto de 2019

Solución al problema con "Vino-preferences": Control remoto del escritorio Lubuntu 18.04, Xubuntu 18.04, Kubuntu 18.04 y Ubuntu Mate 18.04 desde Ubuntu 18.04 con gnome


Hola amigos del software libre,

Este post viene a subsanar un problema de conexión de escritorio remoto que surgió a partir de la aparición en escena de la versión Ubuntu 18.04 con la vuelta al escritorio "gnome".

Un usuario de Ubuntu que leyó uno de mis artículos en concreto este:
https://ubuntinux.blogspot.com/2017/12/control-remoto-del-escritorio-lubuntu.html

Comentó que le fué imposible realizar la conexión de escritorio remoto ya que no le aparecía el configurador de interfaz gráfica "vino-preferences", después de haber instalado el paquete "vino" que es un software que mediante el protocolo VNC del lado del servidor permite la conexión de escritorio remota en una computadora para ser controlada.

Me comentó que intentó la conexión con dos computadoras, la computadora (cliente) que controlaría la conexión remota tenía instalada la distro Ubuntu 18.04 y la computadora (servidor) que sería controlada tenía instalada la distribución Lubuntu 18.04.



Precisamente el problema como comento en el inicio de este post, es que con la aparición de la distribución Ubuntu 18.04 y con la vuelta al escritorio gnome por defecto, se integró la configuración de escritorio remoto del lado del servidor en el configurador gráfico: "gnome-control-center", en concreto en el apartado "compartir", como se aprecia en la imagen siguiente:



Se activa la compartición de pantalla con una serie de opciones de seguridad y la computadora con la distro Ubuntu 18.04 y escritorio gnome3 ya está lista para ser controlada. Como se muestra en la siguiente imagen.


Y por este motivo se eliminó el paquete "vino-preferences", que es una aplicación de configuración gráfica para el software servidor VNC "Vino" que permite el control remoto de escritorio del lado del servidor.

¿Pero que ocurre con los demás sabores de Ubuntu 18.04?, o sea, las demás distribuciones Ubuntu 18.04 que vienen con otro escritorio instalado como son:
- Lubuntu 18.04 que viene con el escritorio LXQt (antes LXDE).
- Xubuntu 18.04 que viene con el escritorio Xfce.
- Kubuntu 18.04 que viene con el escritorio KDE.
- Ubuntu Mate 18.04 que viene con el escritorio MATE una continuación del escritorio gnome 2.

Pues que no vienen con el configurador gráfico "gnome-control-center" porque es precisamente para configurar el escritorio gnome3. En el cual se ha integrado la configuración del control de escritorio remoto del lado del servidor.

Y por este motivo no se puede configurar una conexión del lado del servidor en todas las distribuciones listadas donde se instala el software "vino" y en consecuencia no es posible arrancar el servidor "vino" ni establecer la configuración del mismo para una conexión de escritorio gráfico remota.

Como apunte, estoy utilizando una computadora del lado del servidor la cual tiene instalada la distribución Ubuntu-Mate, los mismos pasos que os mostraré a continuación os sirven para las distribuciones nombradas anteriormente.

Solución a dicho problema:

OPCIÓN 1:

Mediante el terminal de comandos, sin instalar ningún software de interfaz gráfica ni nada.

Si escribís en el terminal de comandos:

$ gsettings list-recursively org.gnome.Vino

Os listará todas las opciones a modificar del servidor vnc vino, como se aprecia en la siguiente imagen:



"org.gnome.Vino" es una función llamada "SCHEMA" la cual tiene una serie de opciones llamadas "KEYS" en las cuales podéis cambiar sus valores numéricos o opciones predefinidas. De todo esto hablo mas largo y tendido en este post.

Cuando se realiza una conexión remota, por defecto hay una opción que habilita la confirmación de conexión por parte de la computadora servidor. En la computadora servidor le aparece una ventana pidiendo la confirmación o el rechazo de la conexión por una computadora remota. Y de mientras en el lado de la computadora cliente que está a la espera se ve el escritorio en negro.

Para evitar la confirmación por parte de la computadora servidor de la autorización de conexión remota y evitar la espera de confirmación de conexión, deberéis modificar la siguiente KEY a "false":

$ gsettings set org.gnome.Vino prompt-enabled false


Ahora se realizará la conexión remota sin aparecer ninguna ventana emergente de confirmación o rechazo de la conexión en la computadora servidor y sin la espera de confirmación.

Volvemos a mostrar el listado de todas las KEYS para comprobar que ha sido modificada:

$ gsettings list-recursively org.gnome.Vino


A veces puede haber problemas de conexión por la encriptación, muchos visualizadores tienen problemas (yo no he tenido problemas de este tipo en el software cliente "Remmina" para conectarme remotamente). Si os aparece un error de conexión de este tipo, solamente tendríais que deshabilitar esta opción:

$ gsettings set org.gnome.Vino require-encryption false


Yo lo he dejado en "true", porque no he tenido ningún problema.

Tened en cuenta que si lo dejáis en "false" deshabilitáis la encriptación, por tanto los datos de la comunicación entre la computadora cliente y servidor son visibles por un tercero. Si os encontráis en vuestra red privada local no hay problema, pero si os comunicáis remotamente entre dos routers podéis tener problemas de seguridad, el famoso ataque "man in the middle" (hombre en medio). Deberíais crear en la conexión remota de escritorio un túnel "ssh" encriptado. Tenedlo en cuenta.

Hay otra KEY deshabilitada por defecto, que no pide la contraseña a la computadora cliente cuando quiere conectarse, pues bien, si queremos habilitar la contraseña deberemos escribir en el terminal:

$ gsettings set org.gnome.Vino authentication-methods "['vnc']"

Y posteriormente escribir la contraseña que queráis:

$ gsettings set org.gnome.Vino vnc-password $(echo -n "contraseñaquequerais"|base64)

Deberéis crear la contraseña codificada en base64, es un sistema de numeración posicional que usa 64 como base para la codificación, deberéis de entrarla así en la configuración de "Vino" para que os la reconozca a la hora de loggearos desde el lado de la computadora cliente.

Por ejemplo si quiero que mi contraseña para loggearse desde el lado del cliente sea la palabra "hola", esta palabra la tendremos que entrar codificada en base64 en la configuración de contraseña vnc en Vino.

Si hacemos la prueba en un terminal de comandos y escribimos:

$ echo -n "hola"|base64

Nos dará como resultado "aG9sYQ==", y este resultado es el que deberíamos de introducir en la configuración de la contraseña, para que luego al loggearnos desde el lado del cliente con el programa Remmina al introducir la palabra "hola" la reconozca como contraseña válida.

Para que no tengamos que hacer la faena dos veces de codificar la contraseña y luego escribirla en la KEY "vnc-password", implementaremos el siguiente comando en Bash: $(echo -n "hola"|base64)

Sino creáis las contraseñas codificadas en base64 en Vino, os dará error de loggin al introducir la contraseña en el lado de la computadora cliente y os romperéis la cabeza como me pasó a mi.


Las otras KEYS del listado ya las iré colgando en este post con mas calma.

EN ESTE ENLACE a otro de mis artículos, escribo mas largo y tendido sobre los SCHEMAS y las KEYS, lo encontraréis hacia el final del mismo.

Y ahora por último lo mas importante, arrancar el servidor vnc de vino, que se encuentra en la siguiente dirección, por tanto escribimos en el terminal de comandos:

$ /usr/lib/vino/vino-server


Arrancaréis o ejecutaréis el servidor vnc de "Vino". El cual quedara en ejecución en el terminal de comandos. Si cerráis el terminal cerraréis el servidor "Vino".

Para comprobar que el puerto 5900 se encuentra a la escucha escribimos en el terminal de comandos:

$ ss -lnt



Y podéis comprobar en la imagen que cuando el servidor "vino" no se encontraba en ejecución no estaban abiertos los puertos 5900, en cambio luego de ejecutarlo están abiertos.

Si queréis cerrar o terminar la ejecución del servidor vnc Vino solo tenéis que pulsar la combinación de teclado "Ctrl" + "c" y terminará la ejecución del mismo.

Ahora bien, si queréis que el servidor Vino arranque en el inicio de sesión del sistema operativo en segundo plano y así no tener que ejecutarlo vosotros manualmente y tener un terminal de comandos ocupado mientras se está ejecutando, deberéis crear un archivo de acceso directo de extensión ".desktop" y ubicarlo en el directorio "/etc/xdg/autostart/". (En este directorio se guardan todos los accesos directos a scripts o aplicaciones que se quieran auto ejecutar en el arranque del sistema operativo).

Pues manos a la obra, yo utilizaré el editor de textos de línea de comandos "nano" y crearé el archivo con nombre "vino-server.desktop".
El cuerpo de este archivo es el siguiente:

[Desktop Entry]
Type=Application
Name=Vino VNC server
Exec=/usr/lib/vino/vino-server
NoDisplay=true

Guardáis el archivo en el directorio donde estéis trabajando. Quedará así:


Mediante el comando siguiente lo movéis al directorio "/etc/xdg/autostart/":

$ sudo mv vino-server.desktop /etc/xdg/autostart/

Ahora cuando reiniciéis la computadora se auto ejecutará "Vino".
Podéis comprobar que está ejecutándose mediante el comando:

$ ps -ef | grep vino


Dicho esto, aquí termina la configuración del lado del servidor. Ahora solo os queda ir a la computadora cliente e instalar un software vnc cliente, como por ejemplo "Remmina", configurarlo y conectaros remotamente. Este apartado no cambia en nada y podéis seguir este artículo.

OPCIÓN 2:

Instalar "dconf-editor", que es un software de configuración con interfaz gráfica con muchas opciones, entre las cuales se puede configurar el software "vino".
Pero hay que ir con mucho cuidado, hay muchas opciones sobre el escritorio. Lo que no sepáis buscaros información o podéis poner de patas arriba el entorno de escritorio.

Yo os mostraré el camino hasta llegar a las mismas funciones que os he mostrado anteriormente pero de forma gráfica.

Primero instalamos la aplicación, por tanto en el terminal escribimos:

$ sudo apt install dconf-editor



Una vez instalado lo ejecutamos:

$ dconf-editor

y nos aparece esta ventana:


Para llegar a las opciones de configuración del servidor vnc Vino hay que ir a:
/org/gnome/desktop/remote-acces/



Y para modificar las opciones entramos dentro de cada KEY y cambiamos en valor.


Para introducir la palabra "vnc" en esta ventana gráfica deberéis utilizar el siguiente formato:  ['vnc']
Si queréis volver a "none", escribir: ['none']

Cuidado con esto, ya que desde el terminal de comandos como podéis comprobar anteriormente el formato de entrada de estos carácteres es diferente, y es: "['none']"
Englobado todo en comillas dobles.

CUIDADO: Os recuerdo que la contraseña en esta interfaz grafica (dconf-editor) hay que entrarla ya codificada en base64. No interpreta el comando de Bash para codificarla directamente en esta entrada por ventana.
Así que deberéis codificarla en el terminal de comandos a parte y el resultado codificado introducirlo vosotros en la interfaz gráfica.

Todo lo demás está bastante bien indicado, pero hay que tener estas precauciones porque sinó os volveréis locos.

Y como imagen final os muestro la conexión realizada desde mi computadora cliente (Ubuntu 18.04 escritorio gnome3) controlando la computadora con Ubuntu-Mate 18.04.



Si queréis ver un vídeo demostrativo de la conexión lo dejo colgado en mi canal de Youtube:



Y fin de este artículo.
Espero os sirva de ayuda.
Si encontráis alguna opción que no funciona como debe, me gustaría que lo escribierais en los comentarios.
Un saludo.

12 comentarios:

  1. Excelente artículo!!! una pregunta, el drag and drop te funciona, puede que se tenga que configurar algo en vino para su funcionamiento?

    Gracias de antemano. Un saludo!

    ResponderEliminar
    Respuestas
    1. Gracias por calificar este artículo como excelente. Perdona por contestarte tan tarde. He comprobado lo que me dices y a mi me funciona correctamente el drag and drop, en ambas conexiones, es decir invirtiendo las conexiones remotas entre un PC y el otro. También he comprobado que funciona sin ver el puntero del ratón. Así que no te puedo decirte el porque.

      Eliminar
  2. Excelente articulo!!!, felicitaciones, otra forma de activar el servidor de vino es:
    systemctl --user start vino-server

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Hola como le hago para dejar de activar VNC en startup?

    ResponderEliminar
    Respuestas
    1. Hola, lo pone en el artículo. Elimina el lanzador para VNC que tengas creado en el directorio "/etc/xdg/autostart/", y ya no se ejecutará en el inicio de sesión.

      Eliminar
  5. Gracias por el aporte.
    Ahora, cuando me voy a conectar al servidor remoto (en lan) me muestra mi propio escritorio y en bucle infinito.
    ¿Me podrías decir porqué pasa esto?

    ResponderEliminar
    Respuestas
    1. Hola, estás diciendo que ves tu escritorio y dentro sale el mismo y así haciéndose pequeño hasta nunca terminar? Si es así, solo creo que en el PC servidor ya estás conectado también remotamente al tuyo. De ahí la reprocidad. Creo. Saludos.

      Eliminar
  6. Buen día, cómo hacer para que desde el cliente al querer entrar pida una contraseña?

    ResponderEliminar
  7. perdón en dconf.editor la pregunta anterior

    ResponderEliminar

Gracias por participar en este blog.