Respuestas:
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:
sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Se iniciará el servidor de vino.
Cerrar sesión del servidor:
xhost -
Press CTRL+C twice
exit
exit
Luego abre remmina . Elija vnc
bajo protocolo.
En la basic
pestaña, coloque la dirección del servidor en el server
campo.
En la pestaña ssh, haga clic enable ssh tunnel
. Debajo ssh authentication
, podría ser password
o 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.
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álelo x11vnc
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:
ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
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
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.
vncviewer
para una conexión lenta. Personalmente, probablemente estableceré QualityLevel=4 or 5
porque 0 qualitylevel
(que es 256 colors
, creo) es demasiado aburrido para mí.
-auth guess
y ejecutarlo como root. Muy útil, gracias!
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.
Haga lo siguiente en la máquina host:
vino-preferences
vino-preferences
también en Dash debajo Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
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
vino-preferences
vino-preferences
también en Dash debajo Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Haga lo siguiente en la máquina del cliente:
remmina
Remmina Remote Desktop Client
Ctrl+ No Conexión> Nuevo
Server
SSH
pestañaEnable SSH Tunnel
SSH Authentication
<username>
y modoEn 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.
Pude configurar una nueva instalación de Ubuntu 16.04 desde una conexión ssh remota con el siguiente script:
#! / bin / bash PANTALLA de exportación =: 0 leer -e -p "Contraseña de VNC:" -i "contraseña de ubuntu" 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 / autenticación-métodos "['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 / reinicio de sudo service lightdm
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:
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"
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
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-server
si 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 localhost
obtener la dirección del servidor VNC.
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 VNC
Requiere x11vnc en el host de destino, pero no necesita más configuración
En la PC del servidor.
En la PC cliente (desde donde desea controlar la IU del servidor).
Trampas.