I tend to log into a lot of remote sites, and typically the setup we have is: the gateway is running OpenWRT with an SSH server, there are client machines behind the NAT running UltraVNC. While I have no problems tunneling my VNC connections through that SSH server running on the gateway, lately I've been needing to let other people have access to those machines too.

I would like a GUI program that would let me set up, in advance, connections to machines and just click to connect to them.

That is, the software would take care of creating the SSH tunnel and opening the VNC viewer. The goal is that I could give this software to someone else and they'd have a list of machine names they could click on and start using VNC though (they'd be prompted for authentication credentials, but that should be about it).

Does a software like this exist, or am I going to need to throw together some C# foo?

Thanks!

Update:

With regard to the PuTTY solution:

This is the way I currently do it. The problem is that my users sometimes need to VNC into multiple machines at once, creating standard profiles like that messes up this solution (e.g., what local port to use without having the user know what to connect to in the VNCViewer software).

For instance, if I save sessions that are of the form (using the ssh cli-style commands):

When the user connects in VNC, all they need to know is to connect to localhost. The problem arises when they want to connect to both remoteHost_number_1 and remoteHost_number_2 at the same time. Then my user will need to know what port their local machine is listening on, and that's what I'm trying to avoid. For the trivial case of three, this is a non-issue, but when the number of systems is large it becomes a problem. This problem can be further exacerbated when there's hostname1.com, hostname2.com, etc each with a similar number of systems behind the NAT.

I'd also like to have as few steps in this process as possible as my users aren't typically the most technical bunch.

2 Answers
2

+1. Putty won't launch VNC for you, but will get you most of the way there. Get a copy of portable putty, and then create profiles for each SSH endpoint. Configure the SSH tunnel for each. Instruct your user to simply connect with a profile and then direct your vnc viewer to localhost
–
prestomationDec 7 '09 at 6:12

Barring writing something from scratch yourself, you can use plink (which comes with putty) within a batch script. Write the batch script to call plink first to initalize the connection, then call vnc with the proper command line arguments.
–
Darren HallDec 7 '09 at 8:12

@Darren Hall, I think this may work, I just want to clarify something that bothers me about it: are you suggesting a different batch script for each computer I need to connect to? Or is there an easier way?
–
mrduclawDec 7 '09 at 9:11

1

I suppose you could enable a menu within the batch script, but to be honest would it be that difficult to setup 1 batch script per host? Give them a USB thumb drive with the script, or a zip file with all the scripts within a directory. Create another batch file to 'install' the directory into their Start Menu. Now they just need to go to Start > Menu > {Automagical VNC} > Hostname. This way you can assign a different localhost listening port per profile, and since you're assigning that port via the VNC call in the batch script, the user doesn't have to remember which port was assigned.
–
Darren HallDec 7 '09 at 9:52