it-swarm.com.de

Wie aktiviere ich die SSH X11-Weiterleitung über einen zusätzlichen Server?

Ich habe Hosts A, B und C. Von Host A aus kann ich nur über SSH B zugreifen. Von Host aus kann ich auf C zugreifen. Ich möchte X11-Programme auf C ausführen und die Anzeige an A weiterleiten können.

Ich habe es versucht:

A $ ssh -X B 
 B $ ssh -X C 
 C $ xclock 
 Fehler: Anzeige kann nicht geöffnet werden: 

Aber es funktioniert nicht.

34
lexsys

Es gibt verschiedene Möglichkeiten, dies zu tun. Ich bevorzuge die Weiterleitung des SSH-Ports:

Stellen Sie zuerst eine Verbindung zu Maschine B her und leiten Sie [localPort] über B an C: 22 weiter

A$ ssh -L [localPort]:C:22 B

Stellen Sie als Nächstes über diesen neu erstellten Tunnel mit [localPort] eine Verbindung zu C von A her und leiten Sie X11 weiter

A$ ssh -X -p [localPort] localhost

Jetzt können wir X11-Programme auf C ausführen und auf A anzeigen lassen

C$ xclock

[localPort] kann jeder Port sein, den Sie auf A noch nicht hören. Der Einfachheit halber verwende ich häufig 2222.

26
dave

Dies kann einfach mithilfe der Portweiterleitung erreicht werden:

A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock

Port localhost: 2022 wird über B SSH an C: 22 weitergeleitet. SSH an C über localhost: 2022 Verwenden Sie X wie gewohnt

7
AgentK

Angenommen, das Problem besteht darin, dass der mittlere Computer nicht über X verfügt, aber ansonsten so konfiguriert ist, dass die Weiterleitung von X11 möglich ist. Installieren Sie einfach xauth.

auf einem Yum-basierten System (Fedora, Redhat, Centos):

B$ Sudo yum install xauth

auf einem apt-basierten System (debian, ubuntu):

B$ Sudo apt-get install xauth
4
Jayen

Für neuere Versionen opensshd müssen Sie X11UseLocalhost Deaktivieren, damit dies funktioniert.

Sie müssen dies auf Host Cs /etc/ssh/sshd_config Ausführen und sshd neu starten, damit dies funktioniert:

X11Forwarding yes
X11UseLocalhost no
3
Brad Allison

Sie können die X11-Anzeige nicht weiterleiten, wenn Sie die X11-Weiterleitung in einem von Ihnen verwendeten sshd deaktiviert haben.

man sshd_config:

X11Forwarding
  Specifies whether X11 forwarding is permitted. The argument must be “yes”
  or “no”.  The default is “no”.

Sie müssen sicherstellen, dass X11Forwarding am Ziel aktiviert ist nd alle von Ihnen verwendeten Zwischen-SSHDS.

Nur ein kleiner Hinweis: Sie sollten versuchen, VNC zu verwenden. Die Weiterleitung von X11-Displays ist sehr bandbreitenintensiv.

2
asdmin

Wenn Sie häufig von A nach C wechseln, können Sie B als Proxy konfigurieren:

A:~/.ssh/config:

Host C
  ForwardX11   yes
  ProxyCommand ssh -W %h:%p B

dann ist es nur:

A$ ssh C xclock
2
Jayen

Hast du es versucht mit

A$ ssh -Y B
B$ ssh -Y C
C$ xlclock

Das Flag -Y "Aktiviert die vertrauenswürdige X11-Weiterleitung."

1
pyhimys