Solución:
Método 1 :
Esto se puede lograr con vino vnc server & remmina (ambos vienen predeterminados con ubuntu; si no, instálelo ejecutando sudo apt-get install remmina
). Luego, ejecute los siguientes comandos desde la computadora local en el símbolo del sistema:
-
ssh -Y [email protected]
. Utilice el reenvío X11 de confianza, de lo contrario no funcionará -
vino-preferences
. Abrirá preferencias de vino. -
También haga clic en
configure network automatically to accept connection
. Pero no ingrese ninguna contraseña, está codificada en base64. Luego haga clic en cerrar. Entonces corre:sudo -s export DISPLAY=:0.0 xhost + /usr/lib/vino/vino-server &
Iniciará el servidor de vino.
-
Salir del servidor:
xhost - Press CTRL+C twice exit exit
-
Entonces abre remmina. Escoger
vnc
bajo protocolo.Debajo
basic
pestaña poner la dirección del servidor enserver
campo.En la pestaña ssh, haga clic en
enable ssh tunnel
. Debajossh authentication
, podría serpassword
opublic key
:Clic en Guardar. Y luego haga doble clic en nombre de conexión (escritorio de inicio como se muestra en la imagen) para comenzar a navegar por el escritorio remoto.
Método 2:
x11vnc
es un servidor VNC simple y no tendrá que perder el tiempo con la configuración de Gnome o 500 firewalls, solo instale x11vnc
en todas sus computadoras (con marionetas o lo que sea que esté usando para el control de masas).
Luego, desde su computadora local, ejecute:
ssh [email protected] -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
Obviamente intercambiando [email protected]
para el nombre de usuario y el nombre de host / IP de la computadora remota.
Y luego use un cliente VNC de su elección para conectarse localhost:5900
. El comando SSH inicia un servidor vnc en la computadora remota y luego hace un túnel de regreso a ese puerto a través de SSH. No tiene que abrir ningún puerto (siempre que ya pueda SSH).
Si sus computadoras tienen configuraciones de pantalla divertidas, es mejor que deje fuera la -display :0
segmento en el comando SSH. x11vnc
luego intentará encontrar automáticamente la pantalla correcta.
Fuente: askubuntu
Descripción general de la solución
Suponiendo que ya ha configurado un OpenSSH Server
en su máquina host, primero debe habilitar el control de escritorio en su máquina host. Si primero puede habilitar el control de escritorio en su máquina host localmente, diríjase a 1a. Si primero debe habilitar el control de escritorio en su máquina host de forma remota, diríjase a 1b.
A continuación, cree un perfil de cliente de escritorio remoto en su máquina cliente para conectarse a la máquina host a través de un túnel SSH y, en última instancia, ver y controlar el escritorio de la máquina host a través de un túnel SSH.
1a. Habilitar localmente el control remoto de la máquina host
Haga lo siguiente en la máquina host:
vino-preferences
-
vino-preferences
también en Dash bajoDesktop Sharing
- Garrapata
Allow other users to view your desktop
- Garrapata
Allow other users to control your desktop
- Garrapata
Require the user to enter this password
- Ingrese una frase de contraseña difícil de adivinar
- Cerrar
1b. Habilitar de forma remota el control remoto de la máquina host
Haga lo siguiente en la máquina cliente, reemplazando 123.123.12.3
con la dirección IP de su máquina host:
ssh -Y 123.123.12.3
- -Y, habilita el reenvío X11 confiable. Los reenvíos de X11 de confianza no están sujetos a los controles de extensión de X11 SECURITY.
vino-preferences
-
vino-preferences
también en Dash bajoDesktop Sharing
- Garrapata
Allow other users to view your desktop
- Garrapata
Allow other users to control your desktop
- Garrapata
Require the user to enter this password
- Ingrese una frase de contraseña difícil de adivinar
- Cerrar
Cree un perfil de cliente de escritorio remoto en su máquina cliente
Haga lo siguiente en la máquina cliente:
remmina
- remmina también en Dash bajo
Remmina Remote Desktop Client
control+norte o Conexión> Nuevo
- Ingrese su dirección IP [123.123.12.3] En donde dice
Server
- Cambie al
SSH
pestaña
- Garrapata
Enable SSH Tunnel
- Apunte su cliente de escritorio a su puerto SSH no estándar
- Establecer su
SSH Authentication
<username>
y modo - Conectar
Ver y controlar la máquina host
En la máquina del cliente, cuando se le solicite <username>
contraseña, introdúzcala para crear el túnel SSH. Cuando se le solicite la contraseña de VNC, ingrese la frase de contraseña que ingresó previamente en la máquina host.
Si tiene éxito en este paso, ahora debería ver y controlar el escritorio de la máquina host desde su máquina cliente a través de un túnel SSH.
Pude configurar una nueva instalación de Ubuntu 16.04 desde una conexión ssh remota con el siguiente script:
#!/bin/bash export DISPLAY=:0 read -e -p "VNC Password: " -i "ubuntu" password dconf write /org/gnome/desktop/remote-access/enabled true dconf write /org/gnome/desktop/remote-access/prompt-enabled false dconf write /org/gnome/desktop/remote-access/authentication-methods "['vnc']" dconf write /org/gnome/desktop/remote-access/require-encryption false dconf write /org/gnome/desktop/remote-access/vnc-password "'$(echo -n $password | base64)'" dconf dump /org/gnome/desktop/remote-access/ sudo service lightdm restart
La cita es importante para cualquiera de las configuraciones de cadena (marcas simples entre comillas). Para que dconf pueda escribir, necesita acceso a XWindows, por eso se necesita la parte de exportación DISPLAY. Creo que aún debe iniciar sesión en el escritorio de la máquina Ubuntu real para conectarse con VNC después de esto. El comando de volcado está ahí para confirmar que todas las configuraciones se mantuvieron, realmente no lo necesitas.
Opcionalmente, es posible que desee hacer esto si desea mantener la pantalla encendida todo el tiempo:
dconf write /org/gnome/desktop/screensaver/lock-enabled false dconf write /org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false dconf write /org/gnome/desktop/session/idle-delay "uint32 0"