Dies kann mit vino vnc server & remmina erreicht werden (beides wird standardmäßig mit ubuntu geliefert; wenn es nicht durch Ausführen installiert wird sudo apt-get install remmina). Führen Sie dann die folgenden Befehle vom lokalen Computer in der Terminal-Eingabeaufforderung aus:
ssh -Y gman@remote. Verwenden Sie eine vertrauenswürdige X11-Weiterleitung, da dies sonst nicht funktioniert
vino-preferences. Es werden Vino-Einstellungen geöffnet.
Klicken Sie auch auf configure network automatically to accept connection. Geben Sie jedoch kein Passwort ein, das base64-codiert ist . Klicken Sie dann auf Schließen. Dann renne:
Dann öffne remmina . Wählen Sie vncunter Protokoll.
basicTragen Sie unter Reiter die Serveradresse in das serverFeld ein.
Klicken Sie auf der Registerkarte SSH auf enable ssh tunnel. Darunter ssh authenticationkönnte es sein passwordoder public key:
Klicken Sie auf Speichern. Doppelklicken Sie dann auf den Verbindungsnamen (Home-Desktop wie in der Abbildung gezeigt), um den Remote-Desktop zu durchsuchen.
Methode 2:
x11vncist ein einfacher VNC-Server und Sie müssen sich nicht mit Gnome-Einstellungen oder 500 Firewalls herumschlagen. Installieren x11vncSie ihn einfach auf allen Ihren Computern (mit Marionette oder was auch immer Sie zur Massenkontrolle verwenden).
Führen Sie dann auf Ihrem lokalen Computer Folgendes aus:
Offensichtlich user@hostfür den Benutzernamen und den Hostnamen / die IP des Remote-Computers austauschen .
Verwenden Sie dann einen VNC-Client Ihrer Wahl, um eine Verbindung herzustellen localhost:5900. Der SSH-Befehl startet einen VNC-Server auf dem Remotecomputer und tunnelt dann diesen Port über SSH zurück. Sie müssen keine Ports öffnen (solange Sie bereits SSH können).
Wenn Ihre Computer über lustige Anzeigeeinstellungen verfügen, sollten Sie das -display :0Segment möglicherweise im SSH-Befehl weglassen. x11vncwird dann automatisch versuchen, das richtige Display zu finden.
Wenn Sie vncviewer mit einer langsamen ssh-Verbindung verwenden, sollte Ihr Befehl so aussehen vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(unter Debian / Ubuntu stammt der Viewer von tightvnc) oder vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(unter Red Hat / Fedora stammt der Viewer von tigervnc), wobei die Qualitätsstufe sowohl unter Debian als auch unter Redhat gleich ist zwischen 0 und 9, wobei 9 am besten ist, aber eine schnelle Verbindung benötigt.
Erik
@erik Danke, dass du erklärt hast, wie man es vncviewerfür langsame Verbindungen benutzt. Ich persönlich werde wohl einstellen, QualityLevel=4 or 5weil 0 qualitylevel(was 256 colorsich denke) mir zu langweilig ist.
Khurshid Alam
1
Ihre "Methode 2" ist perfekt für den schnellen Zugriff auf die physische Anzeige aus der Ferne ohne spezielle permanente Einstellungen. Ich musste den Parameter -auth hinzufügen, wie in der Fehlermeldung erläutert, als ich den Befehl ausgeführt habe, aber ansonsten funktioniert er einwandfrei. Vielen Dank!
Pierre
@ gerky Methode 3 wäre NoMachine, ist derzeit die schnellste und kostenlos (trotz nicht OpenSource), und arbeiten auch auf Android
Aquarius Power
1
Für Methode 2 musste ich -auth guesses als root verwenden und ausführen. Sehr hilfreich, danke!
Bob Carlson
9
Lösungsübersicht
Angenommen, Sie haben bereits eine OpenSSH Serverauf Ihrem Host-Computer eingerichtet, müssen Sie zuerst die Desktop-Steuerung auf Ihrem Host-Computer aktivieren. Wenn Sie die Desktop-Steuerung zuerst lokal auf Ihrem Host-Computer aktivieren können, fahren Sie mit Schritt 1a fort. Wenn Sie zuerst die Desktop-Steuerung auf Ihrem Host-Computer remote aktivieren müssen, fahren Sie mit Schritt 1b fort.
Erstellen Sie als Nächstes ein Remotedesktopclientprofil auf Ihrem Clientcomputer, um über einen SSH-Tunnel eine Verbindung zum Hostcomputer herzustellen und den Desktop des Hostcomputers über einen SSH-Tunnel anzuzeigen und zu steuern.
1a. Aktivieren Sie lokal die Remotesteuerung des Hostcomputers
Führen Sie auf dem Hostcomputer die folgenden Schritte aus:
vino-preferences
vino-preferences auch in Dash unter Desktop Sharing
Tick Allow other users to view your desktop
Tick Allow other users to control your desktop
Tick Require the user to enter this password
Geben Sie eine schwer zu erratende Passphrase ein
Schließen
1b. Remoteaktivierung der Remotesteuerung des Hostcomputers
Führen Sie auf dem Client-Computer die folgenden Schritte aus, und ersetzen 123.123.12.3Sie sie durch die IP-Adresse Ihres Host-Computers:
ssh -Y 123.123.12.3
-Y, Aktiviert die vertrauenswürdige X11-Weiterleitung. Vertrauenswürdige X11-Weiterleitungen unterliegen nicht den X11 SECURITY-Erweiterungssteuerelementen.
vino-preferences
vino-preferences auch in Dash unter Desktop Sharing
Tick Allow other users to view your desktop
Tick Allow other users to control your desktop
Tick Require the user to enter this password
Geben Sie eine schwer zu erratende Passphrase ein
Schließen
Erstellen Sie ein Remotedesktopclientprofil auf Ihrem Clientcomputer
Führen Sie auf dem Clientcomputer die folgenden Schritte aus:
remmina
Remmina auch in Dash unter Remmina Remote Desktop Client
Ctrl+ Noder Verbindung> Neu
Geben Sie Ihre IP-Adresse [123.123.12.3] ein Server
Wechseln Sie zur SSHRegisterkarte
Tick Enable SSH Tunnel
Richten Sie Ihren Desktop-Client auf Ihren nicht standardmäßigen SSH-Port
Stellen Sie Ihren SSH Authentication<username>und Modus ein
Verbinden
Host-Maschine anzeigen und steuern
Wenn Sie auf dem Client-Computer nach <username>dem Kennwort gefragt werden , geben Sie es ein, um den SSH-Tunnel zu erstellen. Wenn Sie nach dem VNC-Kennwort gefragt werden, geben Sie die Passphrase ein, die Sie zuvor auf dem Hostcomputer eingegeben haben.
Wenn Sie in diesem Schritt erfolgreich sind, sollten Sie jetzt den Desktop des Hostcomputers von Ihrem Clientcomputer aus über einen SSH-Tunnel anzeigen und steuern.
Dies scheint ziemlich umfassend zu sein, aber wo ist der benutzerdefinierte Port 12345 auf dem Host definiert?
John T
Ich vermute, Sie müssen irgendwo einen ssh-Befehl vom Client ausführen, etwa: ssh -L 12345: localhost: 5900 user @ server_ip, bevor Sie den Remote-Client wie beschrieben verwenden.
John T
3
Ich konnte eine neue Ubuntu 16.04-Installation von einer Remote-SSH-Verbindung mit dem folgenden Skript einrichten:
Das Anführungszeichen ist wichtig für alle Zeichenfolgeneinstellungen (einzelne Häkchen in Anführungszeichen). Damit dconf schreiben kann, muss auf XWindows zugegriffen werden. Daher wird der Export-DISPLAY-Teil benötigt. Ich denke, Sie müssen noch auf dem Desktop des Ubuntu-Rechners angemeldet sein, um sich danach mit VNC verbinden zu können. Der Dump-Befehl ist nur da, um zu bestätigen, dass alle Einstellungen übernommen wurden. Das brauchen Sie nicht wirklich.
Optional können Sie dies auch tun, wenn Sie die Anzeige ständig aufrechterhalten möchten:
Sie können ssh verwenden, um eine vnc-Sitzung zu starten
Mit XnestX11 Forwording können Sie eine Sitzung remote starten und an Ihren aktuellen Computer weiterleiten. (Das mache ich ab und zu mit meiner pi) man page
So starten Sie den Vino-Server remote, ohne X weiterzuleiten (nur über die Befehlszeile)
Melden Sie sich auf dem Remotecomputer als der Benutzer an, der seinen Desktop freigibt, und leiten Sie Port 5900 an denselben Port auf localhost weiter. Mit PuTTY wird die Umleitung in Verbindung / SSH / Tunnel eingestellt. Verwenden Sie mit einer Befehlszeile:
ssh -L 5900:localhost:5900 user@remote-computer
Installieren Sie, vino-serverwenn es nicht bereits installiert ist. Zum Beispiel:
sudo apt install vino
Aktivieren Sie die Desktopfreigabe (entspricht der Anzeigenummer in der ersten und zweiten Zeile):
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
Starten Sie einen VNC-Viewer und stellen Sie eine Verbindung localhostfür die VNC-Serveradresse her.
Habe folgendes. Vorausgesetzt, Sie sind bereits an einer GUI-Konsole angemeldet? 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
Algen
0
basierend auf @ Khurshid Alam Antwort präsentiere ich den folgenden Ausschnitt:
Öffne 'vino-preferences' über das Terminal oder 'Desktop Sharing' mit dash.
Auf dem Client-PC (von dem aus Sie die Server-Benutzeroberfläche steuern möchten).
Behalten Sie die Einstellungen wie in den Bildern unten gezeigt bei (mit Änderungen an der Stelle des Benutzernamens und der IP).
Fallstricke.
Als ich versuchte, die Vino-Einstellungen auf dem Server von einem Remote-PC mit SSH aus festzulegen, wurde sie geändert, aber die Verbindung konnte nicht hergestellt werden. Ich musste es direkt auf dem Server machen (nicht remote). Ich kenne den Grund für dieses Verhalten nicht.
Antworten:
Methode 1 :
Dies kann mit vino vnc server & remmina erreicht werden (beides wird standardmäßig mit ubuntu geliefert; wenn es nicht durch Ausführen installiert wird
sudo apt-get install remmina
). Führen Sie dann die folgenden Befehle vom lokalen Computer in der Terminal-Eingabeaufforderung aus:ssh -Y gman@remote
. Verwenden Sie eine vertrauenswürdige X11-Weiterleitung, da dies sonst nicht funktioniertvino-preferences
. Es werden Vino-Einstellungen geöffnet.Klicken Sie auch auf
configure network automatically to accept connection
. Geben Sie jedoch kein Passwort ein, das base64-codiert ist . Klicken Sie dann auf Schließen. Dann renne:Der Vino-Server wird gestartet.
Abmelden vom Server:
Dann öffne remmina . Wählen Sie
vnc
unter Protokoll.basic
Tragen Sie unter Reiter die Serveradresse in dasserver
Feld ein.Klicken Sie auf der Registerkarte SSH auf
enable ssh tunnel
. Darunterssh authentication
könnte es seinpassword
oderpublic key
:Klicken Sie auf Speichern. Doppelklicken Sie dann auf den Verbindungsnamen (Home-Desktop wie in der Abbildung gezeigt), um den Remote-Desktop zu durchsuchen.
Methode 2:
x11vnc
ist ein einfacher VNC-Server und Sie müssen sich nicht mit Gnome-Einstellungen oder 500 Firewalls herumschlagen. Installierenx11vnc
Sie ihn einfach auf allen Ihren Computern (mit Marionette oder was auch immer Sie zur Massenkontrolle verwenden).Führen Sie dann auf Ihrem lokalen Computer Folgendes aus:
Offensichtlich
user@host
für den Benutzernamen und den Hostnamen / die IP des Remote-Computers austauschen .Verwenden Sie dann einen VNC-Client Ihrer Wahl, um eine Verbindung herzustellen
localhost:5900
. Der SSH-Befehl startet einen VNC-Server auf dem Remotecomputer und tunnelt dann diesen Port über SSH zurück. Sie müssen keine Ports öffnen (solange Sie bereits SSH können).Wenn Ihre Computer über lustige Anzeigeeinstellungen verfügen, sollten Sie das
-display :0
Segment möglicherweise im SSH-Befehl weglassen.x11vnc
wird dann automatisch versuchen, das richtige Display zu finden.Quelle: askubuntu
quelle
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(unter Debian / Ubuntu stammt der Viewer von tightvnc) odervncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(unter Red Hat / Fedora stammt der Viewer von tigervnc), wobei die Qualitätsstufe sowohl unter Debian als auch unter Redhat gleich ist zwischen 0 und 9, wobei 9 am besten ist, aber eine schnelle Verbindung benötigt.vncviewer
für langsame Verbindungen benutzt. Ich persönlich werde wohl einstellen,QualityLevel=4 or 5
weil0 qualitylevel
(was256 colors
ich denke) mir zu langweilig ist.-auth guess
es als root verwenden und ausführen. Sehr hilfreich, danke!Lösungsübersicht
Angenommen, Sie haben bereits eine
OpenSSH Server
auf Ihrem Host-Computer eingerichtet, müssen Sie zuerst die Desktop-Steuerung auf Ihrem Host-Computer aktivieren. Wenn Sie die Desktop-Steuerung zuerst lokal auf Ihrem Host-Computer aktivieren können, fahren Sie mit Schritt 1a fort. Wenn Sie zuerst die Desktop-Steuerung auf Ihrem Host-Computer remote aktivieren müssen, fahren Sie mit Schritt 1b fort.Erstellen Sie als Nächstes ein Remotedesktopclientprofil auf Ihrem Clientcomputer, um über einen SSH-Tunnel eine Verbindung zum Hostcomputer herzustellen und den Desktop des Hostcomputers über einen SSH-Tunnel anzuzeigen und zu steuern.
1a. Aktivieren Sie lokal die Remotesteuerung des Hostcomputers
Führen Sie auf dem Hostcomputer die folgenden Schritte aus:
vino-preferences
auch in Dash unterDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
1b. Remoteaktivierung der Remotesteuerung des Hostcomputers
Führen Sie auf dem Client-Computer die folgenden Schritte aus, und ersetzen
123.123.12.3
Sie sie durch die IP-Adresse Ihres Host-Computers:vino-preferences
auch in Dash unterDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Erstellen Sie ein Remotedesktopclientprofil auf Ihrem Clientcomputer
Führen Sie auf dem Clientcomputer die folgenden Schritte aus:
Remmina Remote Desktop Client
Ctrl+ Noder Verbindung> Neu
Server
SSH
RegisterkarteEnable SSH Tunnel
SSH Authentication
<username>
und Modus einHost-Maschine anzeigen und steuern
Wenn Sie auf dem Client-Computer nach
<username>
dem Kennwort gefragt werden , geben Sie es ein, um den SSH-Tunnel zu erstellen. Wenn Sie nach dem VNC-Kennwort gefragt werden, geben Sie die Passphrase ein, die Sie zuvor auf dem Hostcomputer eingegeben haben.Wenn Sie in diesem Schritt erfolgreich sind, sollten Sie jetzt den Desktop des Hostcomputers von Ihrem Clientcomputer aus über einen SSH-Tunnel anzeigen und steuern.
quelle
Ich konnte eine neue Ubuntu 16.04-Installation von einer Remote-SSH-Verbindung mit dem folgenden Skript einrichten:
Das Anführungszeichen ist wichtig für alle Zeichenfolgeneinstellungen (einzelne Häkchen in Anführungszeichen). Damit dconf schreiben kann, muss auf XWindows zugegriffen werden. Daher wird der Export-DISPLAY-Teil benötigt. Ich denke, Sie müssen noch auf dem Desktop des Ubuntu-Rechners angemeldet sein, um sich danach mit VNC verbinden zu können. Der Dump-Befehl ist nur da, um zu bestätigen, dass alle Einstellungen übernommen wurden. Das brauchen Sie nicht wirklich.
Optional können Sie dies auch tun, wenn Sie die Anzeige ständig aufrechterhalten möchten:
quelle
Xnest
X11 Forwording können Sie eine Sitzung remote starten und an Ihren aktuellen Computer weiterleiten. (Das mache ich ab und zu mit meiner pi) man pageIch benutze
Xnest
wie folgt:Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
quelle
So starten Sie den Vino-Server remote, ohne X weiterzuleiten (nur über die Befehlszeile)
Melden Sie sich auf dem Remotecomputer als der Benutzer an, der seinen Desktop freigibt, und leiten Sie Port 5900 an denselben Port auf localhost weiter. Mit PuTTY wird die Umleitung in Verbindung / SSH / Tunnel eingestellt. Verwenden Sie mit einer Befehlszeile:
Installieren Sie,
vino-server
wenn es nicht bereits installiert ist. Zum Beispiel:Aktivieren Sie die Desktopfreigabe (entspricht der Anzeigenummer in der ersten und zweiten Zeile):
Starten Sie einen VNC-Viewer und stellen Sie eine Verbindung
localhost
für die VNC-Serveradresse her.quelle
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
basierend auf @ Khurshid Alam Antwort präsentiere ich den folgenden Ausschnitt:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
Es ist ein Befehl, der keine Interaktion erfordert
Es erstellt den SSH-Tunnel mit Portweiterleitung, startet
x11vnc
auf relativ sichere Weise und startet und verbindet den VNC-ViewerEs erfordert x11vnc auf dem Zielhost, aber keine weitere Konfiguration
quelle
Im Server-PC.
Auf dem Client-PC (von dem aus Sie die Server-Benutzeroberfläche steuern möchten).
Fallstricke.
quelle