Long post warning!
Here is what I think you are asking:
- You have an instance of a vnc server running on selenium.
- This instance is controlled by something either a script on selenium, or some other vnc client.
- This instance has a virtual frame buffer and an xwindows session that you can run your test on.
- Then you want two kinds of connections
- A command entry capability, like ssh into a shell on the terminal of the x-session on the selenium box
- A viewing capability from from a Putty-based system that you can start and stop without affecting the running of programs on the selenium box. I assume that the viewer is a windows system because that is what putty runs on.
This requires you to set up four things.
1) The session on the selenium box; 2) Putty based VNC tunnels 3) the control VNC session, and 4) the viewer sessions.
1) You need the Xvnc session on the selenium box. You are going to want to start this up using vncserver because it will do a lot of things for you. Pick an unused vnc port (they are in the range of 5900 + display number). You provide the display number (e.g., :2), the geometry, (I find that I also have to provide the depth), and for security, the argument localhost.
This makes the command look something like this:
vncserver :2 -geometry 1280x1024 -depth 24 -localhost -AlwaysShared
If this is the first time you have run this command, it will ask you for a password, and by default this password will use a one -way encryption and be stored in your home directory, ~/.vnc/passwd . (Check the man pages for permissions required.) Again, if this is your first time, the vncserver script will also setup 1 more file, and every time it start it creates two new files: (.log and .pid).
- xstart this is a shell script that starts up the x session in the virtual frame buffer. It would help if someone could provide a reference to this - it is touchy, and seems to be different on each system. It is complicated by using the files that are off your home directory. I recommend having a different user in whose space you can run these tests. You are much more likely to have success with the xstart file provided by vncserver
- hostname:session.log contains the output of the commands from the xstart script. It can be handy to figure out what is going wrong.
- hostname:session.pid contains the process id of the Xvnc server so that vncserver -kill :2 knows who to kill.
2) You need to set up the Putty tunnels. Putty can connect using ssh to the remote selenium box. It sounds as if you have used this before, So I will just show how to make tunnels from the local host to the server box. These two pictures below are the Putty configuration screens to make it so that you have tunnels.
Putty -> configuration -> SSH -> Auth (where you tell it where your private key is.

This is where you enter the port names for the tunnels - the entries are set up to add remote:5902 <-> localhost:5901

3) Set up the control connection You have two choices.
- You can set the display variable in your Putty terminal
bash % export DISPLAY=:2
bash % firefox &
- Once you have the tunnels up and running, then you can connect both your command vnc client and your viewing vnc client. I use tightVNC on windows, and it works just fine. Note that instead of giving the name of the remote host in tightvnc, you provide the connection localhost:2 as shown in the picture below:

use the red circled configuration button to get to the following menu

The two red circles show the two options you want to set. For the control connection, uncheck the view Only checkbox.
** 4) The viewing connection! ** You set this up the same way as option 2 above, but check the view only checkbox.
In both cases you are likely to want to check the request shared session
Let me know how this works for you.