[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Remote connections to X apps



Preface: Steve has been helping me establish remote connectivity to my
home system(s). Unlike most users, I have a static external IP address.
The Linksys WRT54G router at the house forwards specified TCP/UDP
ports/services to internal machines using their internal (192.168.x.x)
addresses.

My objective is to establish the capability to run X applications on my
home system(s) and have them display on any remote Linux, UNIX, or Windows
system I choose. Thus far things have progressed to the point where I am
able to reliably connect to my main home server (lion) from my Windows PC
at work using secure shell from a Cygwin bash prompt. While CLI ssh and
scp are good and useful, the ability to run graphical applications on my
home server with their X displays remoted to my location would be a major
step up.

I realize that using a Windows PC and Cygwin rather than a Linux laptop
adds additional complexity, but if I can get things working on a
Windows/Cygwin box then a Linux box would be a no brainer.

But enough preliminaries. The next step is to get a simple X application
on the remote host to display on my local PC. I'm logged onto the home
server with the following connection:

   $ ssh -X -Y -l <user> <ip_address>
   <user>@<ip_address>'s password: **************
   Last login: Wed Jul 18 12:12:12 2007 from <remote>

   Red Hat Enterprise Linux Server release 5 (Tikanga)
   Wed Jul 18  12:41:49 CDT
   [<user>@lion] ~
   $

Note that ssh's -X and -Y command line options allow X11 forwarding (see
'man ssh'). I've started Cygwin's X server on the PC here at work and
leave it running in background ready to display any X session sent to it.

A simple X application to try would be gedit:

   $ gedit testfile.txt
   cannot open display:
   Run 'gedit --help' to see a full list of available command line options.

Steve suggested I try running 'mkxauth' to create an .Xauthority file. "On
which machine?", I hear you ask. Well, since there's no 'mkxauth' in
Cygwin, that leaves only the remote server (where gedit will actually
run). After reviewing the 'mkxauth --help' options, I type:

   $ mkxauth -c <remote>
   creating file /home/<user>/.Xauthority ... done
   adding key for <remote> to /home/<user>/.Xauthority ... done

OK... let's try gedit again:

   $ gedit testfile.txt
   cannot open display:
   Run 'gedit --help' to see a full list of available command line options.

Sigh. I try setting the display explicitly in the command line:

   $ gedit testfile.txt --display=<remote>
   cannot open display: <remote>
   Run 'gedit --help' blah blah blah

What other setup/configuration requirements have I missed? For those who
might ask "Have you enabled X11 forwarding in the server's sshd_config
file?", the answer is yes. I have noted that /etc/services contains two
lines which refer to x11:

   x11             6000/tcp        X      # the X Window System
   x11-ssh-offset  6010/tcp               # SSH X11 forwarding offset

I thought about adding them to the Linksys's router's forwarding table,
but because the entire session is running in an ssh (22/tcp) tunnel, I
think both of these are "don't cares".

Ideas or suggestions, anyone?

--Doc

-
To unsubscribe, send email to majordomo@silug.org with
"unsubscribe silug-discuss" in the body.