Ist es möglich, dass X11 über einen SSH-Tunnel weitergeleitet werden kann?

7

Ich kommuniziere mit dem Server über einen SSH-Tunnel, der über Putty konfiguriert ist.

Vor kurzem habe ich versucht, den X11 weiterzuleiten, aber es funktioniert nicht.

Gibt es eine Arbeit auf diese Weise?

Mit Google gesucht, aber nichts gefunden.

schläfrig
quelle
2
Mit normalem OpenSSH sollten Sie in der Lage sein, das -XFlag und X weiterzuleiten, aber ich bin mir nicht sicher, wie dies über einen TCP-Port erreicht werden würde.
Naftuli Kay
3
Wenn Sie PuTTY verwenden, bedeutet dies, dass auf dem Host, von dem aus Sie eine Verbindung zum Server herstellen, MS Windows ausgeführt wird? In diesem Fall benötigen Sie einen X-Server unter Windows, der für die Annahme von TCP-Verbindungen konfiguriert ist.
Jonathan Ben-Avraham
2
Sie haben geschrieben, es funktioniert nicht. Erklären Sie in zukünftigen Fragen bitte, wie es nicht funktioniert: Was Sie versucht haben, welche Fehlermeldungen Sie sehen, welche relevanten Protokollmeldungen und welches Verhalten Sie gesehen haben.
dcorking
Wenn Sie Debian verwenden, werfen Sie einen Blick auf: superuser.com/a/862647/391087
Ismael Miguel
Ja, aber Sie benötigen einen X-Server auf Ihrem lokalen Computer (ich habe VcXsrv ). Beachten Sie, dass das X11-Protokoll extrem latenzempfindlich ist, da es häufig viele synchrone Draw-Anrufe benötigt, für die nacheinander vollständige Netzwerk-Roundtrips erforderlich sind, sodass es über das Internet nicht sehr effizient ist. Ich benutze jetzt hauptsächlich VNC über SSH.
bwDraco

Antworten:

14

Ja, dies ist auf verschiedene Arten möglich, Sie benötigen jedoch einen X-Windows-Server für Windows. Einige Optionen eines X Windows-Servers sind XManager, XMing und MobaXterm. Sobald ein X-Server unter Windows ausgeführt wird, können Sie mit PuTTY eine Verbindung zu Ihrem Host herstellen, nachdem Sie die Konfigurationsparameter festgelegt haben:

Connection/SSH/X11
  Enable X11 forwarding
  X display location: localhost:10.0

Wo die 10.0 hängt, hängt davon ab, was der X Window-Server abhört.

Wenn Sie den X Window-Server und PuTTY konfiguriert und sich bei Ihrem Host angemeldet haben, können Sie die DISPLAYVariable überprüfen , wenn a festgelegt DISPLAYist:

$ echo $DISPLAY
localhost:10.0

Versuchen xclockSie dann, festzustellen, ob die X11-Weiterleitung funktioniert:

# xclock &

Eine andere Möglichkeit, X11 zu verwenden, sshbesteht darin, die DISPLAYVariable manuell so einzustellen , dass sie auf eine IP-Adresse verweist, wie z.

# export DISPLAY=192.168.0.1:0

Und sehen Sie, ob es funktioniert:

# xclock &

Auf diese Weise werden X-Anwendungen (neu) zur Ausgabe an einen Remote-X-Window-Server geleitet.

Hinweis : Beachten Sie, dass das X11-Protokoll nicht für den Betrieb über langsame Netzwerkverbindungen (WAN) ausgelegt ist. Die X-Anwendung kann bei langsamen Verbindungen sehr langsam sein. Verwenden Sie den -CSchalter (Komprimierung) mit ssh, um die Komprimierung während der sshSitzung zu verwenden und sie ein wenig zu beschleunigen.

Lambert
quelle
Kleines Wortlautproblem dort: Was er braucht, ist ein X Window Server . Ein Fenstermanager ist normalerweise in einer solchen Installation enthalten, ist jedoch nicht zu 100% erforderlich und kann sogar auf dem Remotecomputer ausgeführt werden.
Rackandboneman
Ich konnte dies ohne Konfigurationen auf dem SSH durchziehen. Xming hat bereits PuTTY, es ist also eine Konfiguration nicht verfügbar. Außerdem müssen Sie sich möglicherweise jedes Mal anmelden, wenn Ihre Sitzung endet. Sie können sehen superuser.com/a/862647/391087 oder askubuntu.com/q/426831/377328 , um dieses Problem zu lösen, wenn es ein Problem für Sie ist.
Ismael Miguel
3

Hallo, wenn Sie den Kitt wie Openssh mit -x verwenden möchten, müssen Sie XMING auf Ihrem Windows-Computer installieren. Es wurde wie eine Art Server, dann müssen Sie Ihren Kitt konfigurieren, um X11 Ihrer SSH-Verbindung über diesen Server weiterzuleiten

Laden Sie Xming herunter

Sie können diese Tutorials verwenden

Rom
quelle
XMING ist eine gute Lösung, aber nicht die einzige.
Rackandboneman
1

Eine weitere Lösung besteht darin, Cygwin auf Ihrem Windows-Computer zu installieren. Es hat sowohl sshClient als auch X11Server (stellen Sie sicher, dass Sie die entsprechenden Pakete installieren).

Beachten Sie, dass viele X11Installationen eine nicht vertrauenswürdige X-Weiterleitung verbieten. Der vielleicht einfachste Weg, dies zu umgehen, ist die Verwendung der -YOption inssh

ssh -Y user@server
xclock
Dmitry Grigoryev
quelle
Achten Sie genau wie bei den Begriffen "Client" und "Server" auf die Begriffe "vertrauenswürdig" und "nicht vertrauenswürdig". Bei einer "vertrauenswürdigen" Verbindung sind mehrere der üblichen Sicherheitskontrollen deaktiviert - dh Sie vertrauen dem System, mit dem Sie eine Verbindung herstellen, nicht auf schlechte Dinge.
Symcbean