CentOS - Unterschied zwischen ssh -X und startx und Starten einer GUI


8

Ich versuche, meine GUI auf meinem CentOS-Computer in Betrieb zu nehmen, aber ich kenne die Linux-Befehle ehrlich gesagt nicht und Google hat keine klare Antwort erhalten.

Ich gehe davon aus, dass ssh -X und startx gleich sind, aber vielleicht auch nicht. ssh -X startet gut. startx wirft jedoch einen enormen Fehler. Sind sie nicht gleich?

Wie lautet der Befehl zum Starten von gnome unter CentOS / oder anderen Linux / Unix-Servern? Was ist mit kde? Ich habe startkde ausprobiert und es startet, aber ich kann keine Ordner oder ähnliches öffnen (der Desktop funktioniert im Grunde nicht richtig)

edit: klar, ich habe einfach keine ahnung was ich mache. Ich habe viel gegoogelt, also werden meine Probleme vielleicht klar, wenn ich sage, was ich weiß / ich versuche:

  1. ssh -X sollte verwendet werden, um 1-2 Programme auszuführen, und ich habe keine Ahnung, wie es funktioniert (es startet keinen x-Server lokal, oder? Was ist dann der Unterschied zwischen startx und ssh -X?).

  2. startx sollte zum Ausführen von GUIs verwendet werden und funktioniert durch Starten eines xservers auf meinem lokalen Computer.

  3. startx sollte in runlevel 3 verwendet werden. wird startx fehler auslösen, wenn es in runlevel5 versucht wird? Das könnte der Grund sein, warum ich startx nicht verwenden kann, da ich gerade in runlevel5 bin.

  4. Wenn ich in Runlevel 5 bin, sollte ich xdm gefolgt von kdm / gdm verwenden (übrigens tun xdm und gdm auf meinem CentOS 5.3 nichts, und kdm sagt etwas darüber aus, wie nur root kdm verwenden möchte. Mein Server ist derzeit In Runlevel 5 rufen sowohl gnome-session als auch startkde die entsprechenden Desktops auf, sodass diese Befehle auch funktionieren.

Ist dieses Verständnis und diese Schritte richtig?

Antworten:


12

ssh -Xist nicht dasselbe wie startx. SSH ist ein Programm zum Verbinden mit einem anderen Computer mit einer Shell. X ist das grafische Anzeigeprogramm.

SSH kann als interaktive Befehlsshell und auch zum Weiterleiten von Ports verwendet werden. ssh -XLeitet den Port des lokalen X-Displays an den Remotecomputer weiter und richtet die Remoteumgebung normalerweise so ein, dass sie beim lokalen Starten eines Grafikprogramms lokal angezeigt wird. Normalerweise würden Sie nicht einen ganzen Desktop wie KDE auf diese Weise ausführen. Sie würden nur ein oder zwei Programme ausführen.

startxist ein Befehl, mit dem ein X-Server lokal gestartet wird, wenn Sie an der Konsole des Servers angemeldet sind, dh an der physischen Tastatur und dem Bildschirm. Die meisten Benutzer vermeiden die Verwendung von startx, da dies ein Sicherheitsrisiko darstellen kann, wenn Sie Ihren Computer unbeaufsichtigt lassen. Durch das Starten von X wird eine zweite virtuelle Konsole erstellt (die erste war die Textkonsole, bei der Sie sich angemeldet haben), und jemand kann zur Textkonsole (STRG-ALT-F1 oder ähnliches) zurückkehren und STRG-C drücken, um Ihre X-Konsole zu beenden Dann werden sie wie Sie in Ihrer Textkonsole angemeldet. Wenn Sie den Computer jedoch nicht unbeaufsichtigt lassen, kann es gelegentlich in Ordnung sein, ihn zu verwenden.

Die normale Methode zum Ausführen eines vollwertigen grafischen Desktops auf einem System ist die Verwendung eines Anmeldemanagers wie XDM (oder GDM / KDM für Gnome / KDE). Bei RedHat und Freunden wird dies normalerweise durch Umschalten auf Runlevel 5 erreicht. An einer Eingabeaufforderung können Sie eingeben telinit 5, um vorübergehend zu wechseln, oder bearbeiten /etc/inittab, um den Standard-Runlevel festzulegen (typische Auswahlmöglichkeiten sind 3 - kein X - und 5 - mit X).

Was das Starten von GNOME und KDE startxbetrifft, sollte beim Ausführen von CentOS standardmäßig eines davon ausgeführt werden (wahrscheinlich GNOME). Es gibt Konfigurationsdateien, die Sie ändern können, um die Standardeinstellungen zu überschreiben.

Wenn Sie remote auf eine vollständige Desktop-Umgebung zugreifen möchten, müssen Sie XDM für den Remotezugriff einrichten oder VNC oder ein anderes Remotedesktopprotokoll verwenden. Für einen vollständigen Desktop würde ich so etwas wie VNC empfehlen, da Ihre Sitzung auf diese Weise geöffnet bleibt, wenn Sie die Verbindung trennen. Sie sollten jedoch berücksichtigen, dass typisches X oder VNC über das Netzwerk nicht verschlüsselt ist und Sie möglicherweise einen SSH-Port-Weiterleitungstunnel einrichten möchten, um die Daten zu verschlüsseln. Wenn Sie nur eine oder zwei Apps mit ausführen ssh -X, wird diese bereits verschlüsselt.

Welche Art von Client-Computer verwenden Sie, um eine Verbindung zu diesem Server herzustellen? Sowohl ssh -XXDM als auch XDM erfordern eine lokale X-Anzeige, während dies bei VNC nicht der Fall ist.

Bearbeiten: Wenn sich auf Ihrem lokalen Computer ein X-Server befindet, können Sie mit ssh -X eine Verbindung zum CentOS-Computer herstellen und ein Programm wie Firefox starten, das auf dem MacBook angezeigt wird. Dieser Link enthält Informationen zur Verwendung von X unter MacOS X. Standardmäßig zeigt der X-Server von Apple jede Anwendung in einem eigenen Fenster an, in dem einige Apps mit dem ausgeführt werden könnenssh -XMethode. Wenn Sie jedoch eine vollständige grafische Vollbildumgebung ausführen möchten, muss Ihr lokaler X-Server eine Verbindung zum XDM des CentOS herstellen. Sie sehen dann (auf Ihrem MacBook) einen Bildschirm, der dem ähnelt, den Sie sehen würden, wenn Sie an der lokalen Konsole des CentOS angemeldet wären. Dies verwendet Ihr Macbook grundsätzlich als dummes Terminal: Nur das Display, die Tastatur und die Maus werden lokal verwendet. Die Programme werden auf dem CentOS-Computer ausgeführt. Leider kann ich Ihnen nicht helfen, ein dummes Terminal einzurichten, da es ungefähr 10 Jahre her ist, seit ich es das letzte Mal gemacht habe.

Wenn Sie keinen X-Server auf Ihrem lokalen Computer haben, können Sie so etwas wie VNC einrichten ( siehe hier für weitere Remotedesktopprodukte ), sodass die X-Sitzung auf dem Server auf seiner physischen Anzeige ausgeführt wird, dies jedoch kann Fernzugriff von einem Computer mit dem entsprechenden Remotedesktop-Client. Beispielsweise verfügt KDE über eine Desktop-Sharing-Anwendung, die die laufende KDE-Sitzung über VNC verfügbar macht. Sie können sich beim CentOS-Server anmelden (über XDM oder Textkonsole + Startx), die Desktop-Freigabe starten und dann mit einem VNC-Client auf dem Macbook eine Verbindung dazu herstellen.


Ich verwende ein MacBook, um eine Verbindung zum Server herzustellen. Zur Verdeutlichung: ssh -X dient zum Weiterleiten von x-Paketen, wird nur zum Öffnen von 1-2 Programmen verwendet und verwendet x auf dem lokalen (Client-) Computer. Ich fürchte, ich habe nicht ganz verstanden, warum sich startx technisch von ssh -X unterscheidet. Was ist der Unterschied zwischen dem lokalen Ausführen eines x-Servers und dem Weiterleiten der Ports, damit Programme in x lokal geöffnet sind? ... dass ich in letzterem keinen Server benutze ..? Und abschließend, wenn ich möchte, dass diese GUI-Sache funktioniert, muss ich XDM / GDM / KDM (Wechsel zu Level 5) oder VNC erforschen?
Tony Stark

@Herr. glänzend und neu: hmm, ist nach dem googeln der unterschied, dass sie in ssh-x eine verbindung zum x-server auf dem entfernen-computer herstellen, während ich mit ssh und startx einen ax-server auf meinem lokalen rechner erstelle?
Tony Stark

@hatorade: X-Programme (technisch als Clients bezeichnet) wie Firefox benötigen eine Anzeige, die technisch als Server bezeichnet wird. startx startet den Server oder die Anzeige lokal auf der physischen Grafikkarte. ssh -X teilt dem Remotecomputer mit, dass auf Ihrem lokalen System eine Anzeige vorhanden ist, und weist Programme, die remote ausgeführt werden, an, diese zu verwenden. Sie haben immer einen X-Server, wenn Sie ein X-Client-Programm anzeigen.
Mr. Shiny und New

@Herr. glänzend und neu: Ja, als ich ein paar Kommentare unten erklärte, glaube ich nicht, dass ich mein x11 mit dem XDM verbinde. Es sieht so aus, als würde die Mac-Handhabung von x11-Fenstern den gesamten Grafik-Desktop einzeln zerstören (zum Beispiel funktioniert die Verwendung von gnome-panel im Vergleich zu gnome-session wunderbar, da ich nur das Top-Programm-Panel bekomme und jede App, die ich öffne, in einem separaten x11-Fenster geöffnet wird Ich kann sehen und verwenden, da mir kein Desktop-Hintergrund / keine Desktop-Symbole im Weg stehen.)
Tony Stark

@hatorade: Ja, XDM ist einer der bevorzugten Ansätze für einen vollständigen Desktop, und ssh -X wird für die Ausführung einzelner Apps bevorzugt. Sie können ein X11-Vollbildfenster verwenden (siehe den Link in der Antwort) und dort eine vollständige Desktop-Umgebung ausführen. Es könnte über ssh -X funktionieren. Der Standardmodus für Apples X11 besteht jedoch darin, die Fenster so zu verwalten, als wären sie lokale Apps. Dies steht in Konflikt mit Teilen des Gnome- oder KDE-Desktops.
Mr. Shiny und New

3

und um den KDE-Typ zu installieren:

yum groupinstall "X Window System" "KDE (K Desktop Environment)" 

Wenn Sie Gnome bereits installiert haben, ist dies die Standardeinstellung. Bearbeiten Sie / etc / sysconfig / desktop, um dies zu ändern. Einstellen:

DESKTOP="KDE"
DISPLAYMANAGER="KDE" 

oder verwenden Sie switchdesk kde, um zu KDE zu wechseln.


1
  • Führen Sie dies aus, um Gnome zu installieren:

    yum groupinstall "X Window System" "GNOME Desktop-Umgebung"

  • Führen Sie gnome-session aus , um die GNOME-Desktopumgebung zu starten.

  • Ändern Sie den Runlevel in / etc / inittab auf 5, damit es beim Booten gestartet wird.

    id: 5: initdefault:

Wenn Sie in der Desktop - Umgebung von einem anderen Computer anmelden möchten, müssen Sie untersuchen XDMCP , VNC oder FreeNX - Optionen. Schauen Sie sich diesen Artikel an: Kochen mit Linux - Mein Desktop liegt über dem Ozean . Außerdem wird GNOME mit einem gebündelten VNC-Server geliefert - vino. Führen Sie vino-settings aus , um dies zu konfigurieren und zu verwenden.


@nagul: Ich hatte Gnome installiert, traf $ gnome-session und Gnome tauchte auf. ABER es hat dasselbe getan, was passiert, wenn ich $ startkde eingebe: Der Desktop wird angezeigt, aber jedes Mal, wenn ich auf einen Ordner doppelklicke, wird er nicht in dieser Anzeige geöffnet, sondern in einem anderen x-Fenster HINTER dem GUI-Desktop, den ich kann. Ich komme nicht zu!
Tony Stark

Hmm .. nicht sicher, ob ich das richtig verstehe. Ich vermute hier, dass Ihr Problem mit dem Fenstermanager sein könnte. Gnome ist eine Desktop-Umgebung - es wird ein Fenstermanager ausgeführt, um die Fenster tatsächlich zu verwalten, normalerweise Metacity (Standardeinstellung). Haben die Fenster auf dem GUI-Desktop Rahmen und Schaltflächen zum Minimieren / Maximieren / Schließen?

Ich denke, es ist auch der Fenstermanager. Ich habe gehört, dass Mac einen speziellen x11-Fenstermanager hat, der mit dem für gnome-session / startkde verwendeten Fenstermanager in Konflikt steht. In beiden Befehlen wird der jeweilige Desktop vollständig angezeigt (Hintergrundbild, Ordner, obere Leiste usw.). Wenn ich jedoch auf einen Ordner klicke, wird er nicht auf dem Desktop angezeigt, sondern vom OSX x11-Fenstermanager geöffnet HINTER dem geöffneten Gnome / KDE-Desktop. Wenn ich mit gedrückter Alt-Taste mein Terminal auswähle, auf dem ich die GUI gestartet habe, und Strg-C drücke (das Terminal ist übrigens immer noch hinter der GUI versteckt), stirbt die GUI, aber der Ordner, den ich geöffnet habe, ist immer noch in einem x11-Fenster geöffnet
Tony Stark
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.