So melden Sie sich remote mit einem vollständigen grafischen Desktop über X11 an

8

Ich habe zwei Maschinen, auf denen Kubuntu ausgeführt wird: Server und Client. Ich möchte vom Client aus eine Verbindung zum Server herstellen und die vollständige grafische Oberfläche starten, ohne befürchten zu müssen, dass einige Befehle als Clientbenutzer ausgeführt werden.

Also, ssh -XCfunktioniert und ich kann auch gut grafische Programme daraus starten.

Wenn ich jedoch startkdedie SSH-Konsole eingebe, wird "KDE scheint bereits auf diesem Display ausgeführt zu werden" angezeigt. Welches ist wahr, aber nicht für das gleiche Benutzerkonto.

Ich habe versucht, die grafische Oberfläche zu verlassen und mich von tty aus anzumelden, aber das (dann nicht überraschend) konnte keine grafischen Programme, einschließlich kde, starten.

Wie kann ich das dann so machen, dass ich mich einfach so anmelden kann, wie ich mich bei einem lokalen Benutzer anmelde? Verwenden Sie den Client-Computer als dummes Terminal.

velis
quelle

Antworten:

11

XDMCP ist dafür ausgelegt. Auf Ihrem Server müssen Sie die XDMCP-Unterstützung in Ihrem Desktop-Manager aktivieren:

  • Wenn Sie verwenden kdm, suchen Sie nach

    [Xdmcp]
    Enable=false
    

    kdmrcWechseln Sie am Ende falsezu trueund starten Sie neu kdm.

  • Wenn Sie verwenden lightdm, fügen Sie hinzu

    [XDMCPServer]
    enabled=true
    port=177
    

    zu /etc/lightdm/lightdm.confund neu starten lightdm.

Starten Sie dann auf Ihrem Client X mit

X -query ${SERVER_IP}

(stattdessen mit der entsprechenden IP-Adresse), und der Anmeldebildschirm Ihres Servers sollte auf Ihrem Client angezeigt werden.

Stephen Kitt
quelle
Danke, genau das, was ich brauchte. Der lustige Onkel G hat es nicht gefunden und ich musste fragen.
Velis
2
Dies funktioniert, aber XDMCP bedeutet, dass Sie das einfache X11-Protokoll verwenden, das keine Verschlüsselung unterstützt. Wenn das ein Problem ist, müssen Sie nach anderen Lösungen suchen
Wouter Verhelst
4

Sie können den VNC-Server einschalten

Einstellungen> Freigabe> Bildschirmfreigabe

Dann leitet der Proxy 5900 über ssh an Ihren PC weiter, wenn Sie ssh verwenden müssen.

ssh -L 5900:localhost:5900 #destination here

Verwenden Sie dann einen Remote Desktop (RD) -Client wie Remina, um eine Verbindung zum lokalen SSH-Proxy herzustellen.

Verbinden> 127.0.0.1:5900

Informieren Sie sich vor der Verwendung unbedingt über die Sicherheitslücken von VNC. VNC sollte ziemlich sicher zu verwenden sein, wenn Sie es über ssh tunneln. Diese Methode funktioniert nur, wenn ein Benutzer angemeldet ist. Damit sie ohne angemeldeten Benutzer funktioniert, müssen Sie sich anmelden, einen VNC-Server starten und angeben, welche Anzeige IE 0, 1, 2 und verwendet werden soll Verbinden Sie sich dann mit Remina oder etwas von überall.

enconn
quelle
Ich habe x11vnc auf Ubuntu installiert. Wenn sich also kein Benutzer beim System angemeldet hat, ist der Befehl zum Starten von x11vnc x11vnc displaynumber:1korrekt?
ART
3

Sie können einen Fenstermanager über eine SSH-Sitzung starten, müssen jedoch sicherstellen, dass auf Ihrem X-Server noch kein Fenstermanager ausgeführt wird.

Dies kann auf zwei Arten erreicht werden:

  1. Machen Sie alles manuell, anstatt startxeinen Display-Manager zu verwenden:

    Starten Sie zuerst Ihren X-Server:

    X -nolisten tcp :0
    

    Wechseln Sie nun zu einer anderen virtuellen Konsole (z. B. drücken Sie Strg + Alt + F2) und geben Sie Folgendes ein:

    DISPLAY=:0 ssh -XC <host> startkde
    

    Wechseln Sie nun zurück zur ersten virtuellen Konsole und verwenden Sie Ihre X-Sitzung normal. Der Nachteil dieser Methode ist, dass sie kein xauthSetup enthält (sodass theoretisch jeder auf dem Remotecomputer eine Verbindung zu Ihrer X-Sitzung herstellen kann, was ein Sicherheitsrisiko darstellt). Vielleicht möchten Sie das hinzufügen.

  2. Verwenden Sie die Dateien .xinitrc(für startx) oder .xsession(für Display-Manager), um Ihren Fenstermanager zu ändern:

    Wenn Sie Ihr System so eingerichtet haben, dass kennwortloses SSH funktioniert (z. B. über SSH-Schlüssel oder mithilfe von Kerberos oder einem anderen Authentifizierungsmechanismus), können Sie die folgende Zeile als letzte Zeile in Ihre .xinitrcoder Ihre .xsessionDateien einfügen:

    exec ssh -XC <host> startkde
    

    Beachten Sie, dass alles, was Sie zu diesen Dateien hinzufügen, anstelle Ihres normalen X11-Sitzungsaufbaus ausgeführt wird. In einigen Fällen müssen Sie möglicherweise die Option "Standard-Xsession" auf Ihrem Anmeldebildschirm auswählen.

    Auch wenn Sie kein passwortloses SSH haben, funktioniert dies möglicherweise noch, sofern Sie es ssh-askpassinstalliert haben. Wenn sshfeststellt, dass es nicht einen Steueranschluss hat , aber es hat einen hat $DISPLAYvariable Satz, wird es das verwenden , ein Kennwort zu fragen.

    Der Nachteil dieser Methode ist, dass es schwieriger wird, sich am "lokalen" Computer anzumelden.

Wouter Verhelst
quelle