Esto se puede lograr con vino vnc server & remmina (ambos vienen por defecto con ubuntu; si no, instálelo ejecutando sudo apt-get install remmina). Luego, ejecute los siguientes comandos desde la computadora local en el indicador de terminal:
ssh -Y gman@remote. Utilice el reenvío X11 de confianza, de lo contrario no funcionará
vino-preferences. Se abrirán las preferencias de vino.
También haga clic configure network automatically to accept connection. Pero no ingrese ninguna contraseña, está codificada en base64 . Luego haga clic en cerrar. Entonces corre:
En la basicpestaña, coloque la dirección del servidor en el servercampo.
En la pestaña ssh, haga clic enable ssh tunnel. Debajo ssh authentication, podría ser passwordo public key:
Clic en Guardar. Y luego haga doble clic en el nombre de la conexión (home-desktop como se muestra en la imagen) para comenzar a explorar el escritorio remoto.
Método 2:
x11vnces un servidor VNC simple y no tendrá que perder el tiempo con la configuración de Gnome o con 500 firewalls, solo instálelo x11vncen todas sus computadoras (con títeres o lo que sea que esté usando para el control de masas).
Obviamente, cambiar user@hostel 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 vuelve a tunelizar 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 el -display :0segmento en el comando SSH. x11vncintentará automáticamente encontrar la pantalla correcta.
Si está utilizando vncviewer con una conexión ssh lenta, su comando debería verse así vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(en Debian / Ubuntu el visor es de tightvnc) o vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(en Red Hat / Fedora el visor es de tigervnc), donde el nivel de calidad en Debian y Redhat es entre 0 y 9, donde 9 es mejor, pero necesita una conexión rápida.
erik
@erik Gracias por explicar cómo usarlo vncviewerpara una conexión lenta. Personalmente, probablemente estableceré QualityLevel=4 or 5porque 0 qualitylevel(que es 256 colors, creo) es demasiado aburrido para mí.
Khurshid Alam
1
Su "Método 2" es perfecto para un acceso rápido a la pantalla física de forma remota sin ninguna configuración permanente especial. Necesitaba agregar el parámetro -auth como se explica en el mensaje de error cuando ejecuté el comando, pero de lo contrario funciona perfectamente. ¡Gracias!
Pierre
@gerky método 3 sería NoMachine, actualmente es el más rápido y gratuito (a pesar de no ser de código abierto), y también funciona en Android
Aquarius Power
1
Para el método 2, tuve que usarlo -auth guessy ejecutarlo como root. Muy útil, gracias!
Bob Carlson
9
Descripción general de la solución
Suponiendo que ya ha configurado un OpenSSH Serveren 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.
Luego, 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 debajo Desktop 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
Cerca
1b. Activar remotamente el control remoto de la máquina host
Haga lo siguiente en la máquina cliente, reemplazando 123.123.12.3con la dirección IP de su máquina host:
ssh -Y 123.123.12.3
-Y, permite el reenvío de confianza X11. Los reenvíos X11 de confianza no están sujetos a los controles de extensión X11 SECURITY.
vino-preferences
vino-preferences también en Dash debajo Desktop 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
Cerca
Cree un perfil de cliente de escritorio remoto en su máquina cliente
Haga lo siguiente en la máquina del cliente:
remmina
remmina también en Dash bajo Remmina Remote Desktop Client
Ctrl+ No Conexión> Nuevo
Complete su dirección IP [123.123.12.3] donde dice Server
Cambiar a la SSHpestaña
garrapata Enable SSH Tunnel
Apunte su Desktop Client a su puerto SSH no estándar
Configura tu SSH Authentication<username>y modo
Conectar
Ver y controlar la máquina host
En la máquina del cliente, cuando se le <username>solicite la 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ó anteriormente 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.
Esto parece bastante completo, pero ¿dónde está definido el puerto personalizado 12345 en el host?
John T
Supongo que necesita ejecutar un comando ssh desde el cliente en alguna parte, algo como: ssh -L 12345: localhost: 5900 user @ server_ip antes de usar el cliente remoto como se describe.
John T
3
Pude configurar una nueva instalación de Ubuntu 16.04 desde una conexión ssh remota con el siguiente script:
Las comillas son importantes para cualquiera de las configuraciones de cadena (marcas simples dentro de comillas). Para que dconf pueda escribir necesita acceso a XWindows, por eso se necesita la parte EXPLAY de exportación. Creo que aún necesita iniciar sesión en el escritorio en la máquina Ubuntu real para conectarse con VNC después de esto. El comando de volcado solo está allí para confirmar que todas las configuraciones tomaron posesión, realmente no lo necesita.
Opcionalmente, puede hacer esto si desea mantener la pantalla todo el tiempo:
Úselo Xnestcon X11 para redactar para iniciar una sesión de forma remota y reenviarlo a su computadora actual. (Hago esto de vez en cuando con mi pi) página de manual
Cómo iniciar el servidor Vino de forma remota sin reenviar X (solo línea de comando)
Inicie sesión en la computadora remota como el usuario que compartirá su escritorio y reenviará el puerto 5900 al mismo puerto en localhost. Con PuTTY, la redirección se establece en Conexión / SSH / Túneles. Con una línea de comando, use:
ssh -L 5900:localhost:5900 user@remote-computer
Instalar vino-serversi aún no está instalado. Por ejemplo:
sudo apt install vino
Habilite el uso compartido de escritorio (que coincida con el número de pantalla en la primera y segunda líneas):
echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server
Inicie un visor VNC y conéctese para localhostobtener la dirección del servidor VNC.
Tengo lo siguiente. Parece que todo esto supone que ya has iniciado sesión en una consola GUI. No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
algas
0
basado en la respuesta de @Khurshid Alam, presento el siguiente fragmento:
Abra 'preferencias de vino' desde la terminal o 'Compartir escritorio' usando el guión.
En la PC cliente (desde donde desea controlar la IU del servidor).
Mantenga la configuración como se muestra en las imágenes a continuación (con cambios en el lugar del nombre de usuario y la IP).
Trampas.
Cuando intenté establecer las preferencias de vino en el servidor desde una PC remota usando SSH, se modificó, pero la conexión no se realizó. Tuve que hacerlo en la máquina del servidor directamente (no de forma remota). No sé la razón de este comportamiento.
Respuestas:
Método 1 :
Esto se puede lograr con vino vnc server & remmina (ambos vienen por defecto con ubuntu; si no, instálelo ejecutando
sudo apt-get install remmina
). Luego, ejecute los siguientes comandos desde la computadora local en el indicador de terminal:ssh -Y gman@remote
. Utilice el reenvío X11 de confianza, de lo contrario no funcionarávino-preferences
. Se abrirán las preferencias de vino.También haga clic
configure network automatically to accept connection
. Pero no ingrese ninguna contraseña, está codificada en base64 . Luego haga clic en cerrar. Entonces corre:Se iniciará el servidor de vino.
Cerrar sesión del servidor:
Luego abre remmina . Elija
vnc
bajo protocolo.En la
basic
pestaña, coloque la dirección del servidor en elserver
campo.En la pestaña ssh, haga clic
enable ssh tunnel
. Debajossh authentication
, podría serpassword
opublic key
:Clic en Guardar. Y luego haga doble clic en el nombre de la conexión (home-desktop como se muestra en la imagen) para comenzar a explorar 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 con 500 firewalls, solo instálelox11vnc
en todas sus computadoras (con títeres o lo que sea que esté usando para el control de masas).Luego, desde su computadora local, ejecute:
Obviamente, cambiar
user@host
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 vuelve a tunelizar 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 el
-display :0
segmento en el comando SSH.x11vnc
intentará automáticamente encontrar la pantalla correcta.Fuente: askubuntu
fuente
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(en Debian / Ubuntu el visor es de tightvnc) ovncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(en Red Hat / Fedora el visor es de tigervnc), donde el nivel de calidad en Debian y Redhat es entre 0 y 9, donde 9 es mejor, pero necesita una conexión rápida.vncviewer
para una conexión lenta. Personalmente, probablemente estableceréQualityLevel=4 or 5
porque0 qualitylevel
(que es256 colors
, creo) es demasiado aburrido para mí.-auth guess
y ejecutarlo como root. Muy útil, gracias!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.Luego, 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
también en Dash debajoDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
1b. Activar remotamente 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:vino-preferences
también en Dash debajoDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Cree un perfil de cliente de escritorio remoto en su máquina cliente
Haga lo siguiente en la máquina del cliente:
Remmina Remote Desktop Client
Ctrl+ No Conexión> Nuevo
Server
SSH
pestañaEnable SSH Tunnel
SSH Authentication
<username>
y modoVer y controlar la máquina host
En la máquina del cliente, cuando se le
<username>
solicite la 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ó anteriormente 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.
fuente
Pude configurar una nueva instalación de Ubuntu 16.04 desde una conexión ssh remota con el siguiente script:
Las comillas son importantes para cualquiera de las configuraciones de cadena (marcas simples dentro de comillas). Para que dconf pueda escribir necesita acceso a XWindows, por eso se necesita la parte EXPLAY de exportación. Creo que aún necesita iniciar sesión en el escritorio en la máquina Ubuntu real para conectarse con VNC después de esto. El comando de volcado solo está allí para confirmar que todas las configuraciones tomaron posesión, realmente no lo necesita.
Opcionalmente, puede hacer esto si desea mantener la pantalla todo el tiempo:
fuente
Xnest
con X11 para redactar para iniciar una sesión de forma remota y reenviarlo a su computadora actual. (Hago esto de vez en cuando con mi pi) página de manualYo uso
Xnest
así:Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
fuente
Cómo iniciar el servidor Vino de forma remota sin reenviar X (solo línea de comando)
Inicie sesión en la computadora remota como el usuario que compartirá su escritorio y reenviará el puerto 5900 al mismo puerto en localhost. Con PuTTY, la redirección se establece en Conexión / SSH / Túneles. Con una línea de comando, use:
Instalar
vino-server
si aún no está instalado. Por ejemplo:Habilite el uso compartido de escritorio (que coincida con el número de pantalla en la primera y segunda líneas):
Inicie un visor VNC y conéctese para
localhost
obtener la dirección del servidor VNC.fuente
No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
basado en la respuesta de @Khurshid Alam, presento el siguiente fragmento:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
Es un comando que no requiere ninguna interacción.
Crea el túnel SSH con reenvío de puertos, comienza
x11vnc
de una manera razonablemente segura y lanza y conecta el visor VNCRequiere x11vnc en el host de destino, pero no necesita más configuración
fuente
En la PC del servidor.
En la PC cliente (desde donde desea controlar la IU del servidor).
Trampas.
fuente