Wie greife ich von meinem Mac aus über X-Windows auf meinen Remote-Ubuntu-Server zu?


35

Ich habe einen Ubuntu-Server (12.04 LTS), der remote auf einem Cloud-Hosting-Dienst ausgeführt wird. Ich habe installiert ubuntu-desktopüber apt-get:

$ sudo apt-get install ubuntu-desktop

Es scheint kein Problem installiert zu haben.

Ich habe bestätigt, dass /etc/ssh/ssh_configauf dem Server die Zeilen enthalten sind

ForwardAgent yes
ForwardX11 yes
ForwardX11Trusted yes

und das /etc/ssh/sshd_configauf dem Server enthält die Zeile:

X11Forwarding yes

Ich habe dann den Server neu gestartet. Es kam kein Problem zurück.

Wenn ich nun X11.app auf meinem Mac starte, wird mir ein Xterm angezeigt.

Ich verbinde mich von diesem Terminal mit meinem Server mit:

$ ssh -X <myhost>

und ich verbinde mich mit dem Server, kein Problem.

Zu diesem Zeitpunkt weiß ich noch nicht, was ich tun soll. Ich habe versucht

$ sudo startx

aber ich erhalte die Fehlermeldung "Keine Bildschirme gefunden".

Ich habe keine Bildschirme, da es sich um einen kopflosen Cloud-Server handelt, aber ich möchte nur von meinem Mac über X darauf zugreifen.

Was jetzt?


2
Versuchen Sie die Installation xvfb. Ich habe keine Erfahrung damit, aber es wirkt wie ein Bildschirm ohne Hardware.
ζ--

Antworten:


21

Es gibt verschiedene Methoden, um dies zu erreichen, je nachdem, was Sie wirklich tun müssen.

Um Remote-Apps an die lokale X-Umgebung weiterzuleiten, müssen Sie X11 auf Ihrem Mac installieren (diese finden Sie auf der Apple Support-Website): http://support.apple.com/kb/DL1605?viewlocale=en_US&locale=en_US

Öffnen Sie in der X11-App das Terminal und greifen Sie dann mit den folgenden Schritten auf den Remote-Host zu:

    ssh -XC user@host

Wenn Sie eingeloggt sind, führen Sie einfach den Befehl für die gewünschte App aus, z. B .: Firefox, Nautilus, Thunderbird, was auch immer ...

Sie können sogar nur das Hauptmenü des Systems (Ubuntu, Xubuntu, Mint usw.) starten und von dort aus mit dem Remote-System interagieren, ohne ein vollständiges grafisches Front-End zu benötigen. Auf einer entfernten Linux Mint-Umgebung führe ich einfach Folgendes aus:

    mintmenu&

Wenn Sie es wirklich brauchen, können Sie die Remote-Grafikumgebung sogar lokal auf Ihrem Mac X11 starten, indem Sie einfach Folgendes ausführen:

    ubuntu-session
    xubuntu-session
    etc... (depends of your remote environment)

Besser als jede VNC, noch besser als eine X11VNC-Verbindung! Gesicherte und komprimierte Verbindung FTW.


7

Auf Ihrem Mac müssen Sie XQuartz installieren, sofern Sie dies noch nicht getan haben (siehe http://xquartz.macosforge.org ). Sobald dies installiert ist, starte neu und öffne ein XQuartz-Terminalfenster und SSH für dein Ubuntu Server-System:

ssh -X yourubuntuserver

Wenn lightdm ausgeführt wird (unter https://askubuntu.com/a/153423/66799 erfahren Sie, wie Sie es bei Bedarf aktivieren und deaktivieren können), führen Sie diesen Befehl aus, um Ubuntu Unity über X11 auf Ihren Mac zu tunneln:

gnome-session --session=ubuntu-2d

Dies funktioniert für mich mit Ubuntu Server 12.04 LTS und Mac OS X Mountain Lion 10.8.2, es treten jedoch gelegentlich Composiz-Fehler auf. Das heißt, ich habe immer Composiz-Fehler erhalten, wenn ich Ubuntu Desktop lokal ausgeführt habe. (-:

Sie können sich von Unity abmelden, um die Ubuntu Desktop-Fenster zu schließen.


Dies funktioniert, XQuartx ist notwendig.
SmallChess

Funktioniert hervorragend unter Windows 10 in WSL mit Xming für die Anzeige.
Harsh

-1

Du hast die richtige Idee aber die falsche Syntax :)

startxwird nicht von vorne anfangen ssh, weil es einen Bildschirm braucht (aka XServer zum Reden)

Versuchen Sie diesen Befehl, um die Desktop-GUI zu starten

sudo service gdm start

Dadurch wird die Desktop-Umgebung gestartet.

trennen.

und versuche

ssh -X nautilus username@host 

Hinweis wurde nicht über der Linie getestet

Wenn alles funktioniert, sollte das Popup des Ubuntu-Dateimanagers angezeigt werden. Andernfalls fehlen möglicherweise einige Bibliotheken, oder die Syntax des Befehls ist falsch (ich habe es nicht ausprobiert).


4
Es gibt keine Notwendigkeit (oder keinen Grund) zu rennen sudo service gdm start. Der X-Server wird auf dem SSH-Client ausgeführt - der Computer wird als Arbeitsstation verwendet. Es muss nicht auf dem Remote-Computer ausgeführt werden, damit ssh -Xes funktioniert.
Eliah Kagan

Ah, mir war das nicht bewusst, danke für die Info.
Matt Mootz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.