10.4.4.2. X11 and TCP forwarding
If the X11Forwarding entry is set to
yes on the target machine and the user is using X
applications, the DISPLAY environment
variable is set, the connection to the X11 display is automatically
forwarded to the remote side in such a way that any X11 programs
started from the shell will go through the encrypted channel, and
the connection to the real X server will be made from the local
machine. The user should not manually set DISPLAY. Forwarding of X11 connections can be
configured on the command line or in the sshd configuration file.
The value for DISPLAY set by ssh will point to the server machine, but with a
display number greater than zero. This is normal, and happens
because ssh creates a proxy X
server on the server machine (that runs the X client application)
for forwarding the connections over the encrypted channel.
This is all done automatically, so when you type in the name of
a graphical application, it is displayed on your local machine and
not on the remote host. We use xclock in the
example, since it is a small program which is generally installed
and ideal for testing:
SSH will also automatically set up Xauthority data on the server
machine. For this purpose, it will generate a random authorization
cookie, store it in Xauthority on the
server, and verify that any forwarded connections carry this cookie
and replace it by the real cookie when the connection is opened.
The real authentication cookie is never sent to the server machine
(and no cookies are sent in the plain).
Forwarding of arbitrary TCP/IP connections over the secure
channel can be specified either on the command line or in a
configuration file.
|
The X server |
|
This procedure assumes that you have a running X server on the
client where you want to display the application from the remote
host. The client may be of different architecture and operating
system than the remote host, as long as it can run an X server,
such as Cygwin (which implements
an X.org server for MS Windows
clients and others) or Exceed, it
should be possible to set up a remote connection with any Linux or
UNIX machine.
|