On Sat, May 12, 2012 at 6:30 PM, Maarten Boekhold <boekhold@gmail.com> wrote:
Hi all,
After a hiatus of a couple of years, I decided to try x2go again, since NX Client from Nomachine doesn't seem to handle an XFCE desktop very well. I was pleasantly surprised, x2go seems to have improved massively and works just beautifully. One thing I am missing however is the ability to establish a session through an HTTP proxy server (using HTTP CONNECT). NX Client 3.x does do this (but it seems it's not possible in the NX Client 4 beta client).
I've done a little bit of research, and it looks like LIBSSH does have some facilities to support a "proxy command":
While this proxy command feature is a really cool feature, it has nothing to do with http proxys.
ssh_options_set(my_ssh_session, SSH_OPTION_PROXYCOMMAND, "command");
"command" in this case would be something like 'corkscrew' or 'proxytunnel'.
http://www.agroman.net/corkscrew/ http://proxytunnel.sourceforge.net/
What are the chances that this SSH_OPTION_PROXYCOMMAND could be integrated into the x2go client? It looks like x2goclient is built using cygwin, and I believe that both corkscrew as well as proxytunnel can be built on cygwin as well. So I wonder if the following additions to x2goclient are possible:
- Add the following GUI options to x2go sessions: - HTTP proxy host: takes hostname/ip of your HTTP proxy - HTTP proxy port: takes port of HTTP proxy - HTTP proxy username : for optional authentication - HTTP proxy password : for optional authentication - I'm not sure if corkscrew supports proxy authentication...
- On start of a session, if HTTP proxy host+port is specified, use ssh_options_set() with command
corkscrew <proxy host> <proxy port> <remote host> <remote_ip>
(I *think* you can harcode %h and %p for the remote host and remote ip...)
- Add corkscrew to the x2goclient distribution
I'd suggest rather something else: Use corkscrew to ssh to your x2go server and forward port 22 to your host by using something like this:
ssh -luser -L2222:localhost:22 your.server.somewhere
Now you can use x2goclient to connect to 'localhost' port 2222.
This can be faciliated by a few lines in your ~/.ssh/config and the ProxyCommand option ;-)
Cheers, Reinhard
-- regards, Reinhard