Risposte:
Questo può essere ottenuto con il server vino vnc e remmina (entrambi sono predefiniti con Ubuntu; in caso contrario installarlo eseguendo sudo apt-get install remmina
). Quindi eseguire i seguenti comandi dal computer locale nel prompt del terminale:
ssh -Y gman@remote
. Usa l'inoltro X11 affidabile, altrimenti non funzionerà
vino-preferences
. Aprirà le preferenze del vino.
Fare clic anche configure network automatically to accept connection
. Ma non inserire alcuna password, codificata in base64 . Quindi fare clic su Chiudi. Quindi eseguire:
sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Avvierà il server del vino.
Disconnettersi dal server:
xhost -
Press CTRL+C twice
exit
exit
Quindi apri remmina . Scegli vnc
sotto protocollo.
Nella basic
scheda inserisci l'indirizzo del server nel server
campo.
Nella scheda SSH fare clic enable ssh tunnel
. Sotto ssh authentication
, potrebbe essere password
o public key
:
Fai clic su Salva. Quindi fai doppio clic su nome connessione (home-desktop come mostrato in figura) per iniziare a navigare sul desktop remoto.
x11vnc
è un semplice server VNC e non dovrai fare confusione con le impostazioni di Gnome o 500 firewall, basta installarlo x11vnc
su tutti i tuoi computer (con le marionette o qualunque cosa tu stia usando per il controllo di massa).
Quindi dal tuo computer locale esegui:
ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
Ovviamente scambiando user@host
il nome utente e il nome host / IP del computer remoto.
E quindi utilizzare un client VNC a scelta per connettersi localhost:5900
. Il comando SSH avvia un server vnc sul computer remoto e quindi esegue il tunneling di quella porta su SSH. Non è necessario aprire alcuna porta (purché sia già possibile SSH).
Se i tuoi computer hanno impostazioni di visualizzazione divertenti, potresti fare meglio a lasciare il -display :0
segmento nel comando SSH. x11vnc
proverà quindi automaticamente a trovare il display giusto.
Fonte: askubuntu
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(su Debian / Ubuntu il visualizzatore proviene da tightvnc) o vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(su Red Hat / Fedora il visualizzatore proviene da tigervnc), dove il livello di qualità sia su Debian che su Redhat è tra 0 e 9, dove 9 è il migliore, ma necessita di una connessione veloce.
vncviewer
per una connessione lenta. Personalmente, probabilmente impostare QualityLevel=4 or 5
perché 0 qualitylevel
(che è 256 colors
, penso) è troppo noioso per me.
-auth guess
ed eseguirlo come root. Molto utile, grazie!
Supponendo che tu abbia già configurato un OpenSSH Server
computer host, devi prima abilitare il controllo desktop sul tuo computer host. Se puoi prima abilitare il controllo desktop sul tuo computer host localmente, vai a 1a. Se devi prima abilitare il controllo desktop sul tuo computer host da remoto, vai a 1b.
Quindi, creare un profilo Client desktop remoto sul computer client per connettersi al computer host attraverso un tunnel SSH e, infine, visualizzare e controllare il desktop del computer host attraverso un tunnel SSH.
Effettuare le seguenti operazioni sul computer host:
vino-preferences
vino-preferences
anche in Dash sotto Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Effettuare le seguenti operazioni sul computer client, sostituendolo 123.123.12.3
con l'indirizzo IP del computer host:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
anche in Dash sotto Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Effettuare le seguenti operazioni sul computer client:
remmina
Remmina Remote Desktop Client
Ctrl+ No Connessione> Nuovo
Server
SSH
schedaEnable SSH Tunnel
SSH Authentication
<username>
modalità eSul computer client, quando viene richiesta <username>
la password, immetterla per creare il tunnel SSH. Quando viene richiesta la password VNC, immettere la passphrase precedentemente immessa nel computer host.
Se l'operazione ha esito positivo in questo passaggio, ora dovresti visualizzare e controllare il desktop del computer host dal tuo computer client attraverso un tunnel SSH.
Sono stato in grado di impostare una nuova installazione di Ubuntu 16.04 da una connessione ssh remota con il seguente script:
#! / Bin / bash export DISPLAY =: 0 leggi -e -p "Password VNC: password" -i "ubuntu" dconf write / org / gnome / desktop / accesso remoto / abilitato vero dconf write / org / gnome / desktop / accesso remoto / prompt-enabled false dconf write / org / gnome / desktop / accesso remoto / metodi di autenticazione "['vnc']" dconf write / org / gnome / desktop / accesso remoto / richiede crittografia falso dconf write / org / gnome / desktop / accesso remoto / password vnc \ "\ '$ (echo -n $ password | base64) \' \" dconf dump / org / gnome / desktop / accesso remoto / sudo service lightdm restart
La citazione è importante per qualsiasi impostazione di stringa (segni di spunta all'interno delle virgolette). Perché dconf sia in grado di scrivere ha bisogno dell'accesso a XWindows, quindi è necessario il motivo per esportare la parte DISPLAY. Penso che dopo questo sia necessario accedere al desktop sul computer Ubuntu reale per connettersi con VNC. Il comando dump è proprio lì per confermare che tutte le impostazioni sono state bloccate, non ne hai davvero bisogno.
Opzionalmente potresti voler fare questo se vuoi mantenere il display sempre attivo:
dconf write / org / gnome / desktop / screensaver / lock-enabled falso dconf write / org / gnome / desktop / screensaver / ubuntu-lock-on-suspend false dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
Xnest
con X11 forwording per avviare in remoto una sessione e inoltrarla al computer corrente. (Lo faccio di tanto in tanto con la mia pagina man )Uso Xnest
così:
Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
Come avviare il server Vino da remoto senza inoltrare X (solo riga di comando)
Accedere al computer remoto come l'utente che condividerà il desktop e inoltrerà la porta 5900 alla stessa porta su localhost. Con PuTTY, il reindirizzamento è impostato in Connessione / SSH / Tunnel. Con una riga di comando, utilizzare:
ssh -L 5900:localhost:5900 user@remote-computer
Installa vino-server
se non è già installato. Per esempio:
sudo apt install vino
Abilita condivisione desktop (corrispondente al numero visualizzato sulla 1a e 2a riga):
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
Avviare un visualizzatore VNC e connettersi localhost
per l'indirizzo del server 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
basato sulla risposta di @Khurshid Alam vi presento il seguente frammento:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
È un comando che non richiede alcuna interazione
Crea il tunnel SSH con il port forwarding, si avvia x11vnc
in modo ragionevolmente sicuro e avvia e collega il visualizzatore VNC
Richiede x11vnc sull'host di destinazione, ma nessuna ulteriore configurazione
Nel PC server.
Nel PC client (da dove si desidera controllare l'interfaccia utente del server).
Insidie.