On 8/6/12 3:04 AM, James Wettenhall wrote:
> 1. The Mac OS X Java VNC viewer
>
> I tried the Java VNC viewer app on my Mac (OS X 10.7.4), running Java
> runtime environment v1.6.0_33.  Everything worked really well, except
> that when I connected to a non-TurboVNC VNC server (*), most of the VNC
> screen was black initially, until I clicked the screen in a few places,
> which caused it to refresh, then everything worked fine.
>
> (*) Mac OS X 10.6.8's
> /System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/MacOS/AppleVNCServer

Repro'd and fixed.  The Java viewer was sending an incremental 
framebuffer request on initial connection instead of a full framebuffer 
request.


> One thing my users have requested is the ability to set the server-side
> display geometry from the client-side GUI, which I accomplish by using a
> Python SSH module to run a "sed" command on the (Linux) server to ensure
> that the desired geometry settings are set in ~/.vnc/turbovncserver.conf.

I have secured funding to proceed with the desktop resize feature, so 
that will hopefully address this limitation.


> Another thing my wxPython GUI does is allow a choice of SSH ciphers for
> the tunnel (e.g. 3des, blowfish, arcfour), because they can affect
> performance.

It should be possible to do this by exposing a new command line or GUI 
option that sets the JSch config to use the chosen cipher.


> 2. The "built-in SSH tunnelling support".
>
> I assume that despite the "built-in" description, you are still calling
> an external SSH binary, rather than an SSH API?

No, the Java viewer is fully-encapsulated.  It uses JSch, a pure Java 
implementation of an SSH2 client.  No external SSH binaries required.


> I notice that you
> include "putty.exe" with the Windows distribution of TurboVNC.  I prefer
> the Cygwin OpenSSH, e.g. this build:
> http://sshwindows.webheat.co.uk/display/sshwindows/OpenSSH+for+Windows for
> the following reasons:
> - Neither PuTTY.exe, nor its command-line alternative PLink.exe
> understands OpenSSH keys, e.g. a key pair generated on the (Linux)
> server side, using ssh-keygen
> - Although PuTTYgen.exe is capable of importing OpenSSH keys, it doesn't
> have a command-line interface (or API), only a GUI, so it is not scriptable.

If you prefer to use that version of SSH with the TurboVNC native 
client, then godspeed.  :)  I include PuTTY with the native Windows 
viewer primarily so I can provide a documented process for using SSH 
tunneling that doesn't require installing any other software.  The issue 
with SSHWindows is that it can't co-exist peacefully with Cygwin, which 
is a large reason why I don't use it myself.

In the long term, it would be nice to have the Windows native viewer 
integrate with libssh so that I can provide a similar sort of -via 
feature as the Java viewer provides, and that would eliminate the need 
to distribute PuTTY.  Personally, I don't see a reason to do the same 
thing with the Unix viewer, since it is only ever used on platforms for 
which an SSH binary is readily available.


> My wxPython GUI currently requires a username (saved in local settings
> for re-use next time the application launches), and a password, even if
> the user has set up an SSH key pair with an empty passphrase (to avoid
> having to enter a password for SSH login).  As far as I know, I can't
> use an SSH private key to bypass TurboVNC 1.1's Unix/PAM authentication.

SSH authentication and TurboVNC authentication are two separate levels 
of security.  You authenticate through SSH to set up the secure tunnel, 
but then you authenticate with the VNC server in order to establish your 
permission to connect to it.  Imagine that you were connecting to the 
same VNC server using a local connection (if you were logged into the 
server machine.)  Then you'd still authenticate with the VNC server, but 
you'd no longer be using SSH.

Unless I miss my guess, what you're proposing is possible, but it would 
require a new authentication extension that either:

(a) passes the SSH key over the wire from client to server using an 
as-yet-unspecified extension to the RFB protocol.  Then the server could 
use the same PAM modules that SSHD uses.  I don't relish the thought of 
getting such an RFB extension approved.

or

(b) somehow communicates the credentials from the SSH server to the 
TurboVNC server.  Don't know if this is possible, and I'm pretty sure 
that if it was, it would represent a security hole.


>   (I know it is possible to use the "passwd" option if using standard
> VNC authentication, but our server only allows Unix/PAM authentication).
>   It is not clear to me from the command-line help for the Java VNC
> Viewer (java -jar VncViewer.jar -?) whether it will be possible to use
> an SSH key-pair instead of entering a password for TurboVNC servers
> requiring Unix/PAM authentication.  If it is possible, it would be nice
> to see a simple list of steps somewhere in the documentation, e.g. 1.
> Run ssh-keygen on the server, 2. Download the private key and delete it
> from the server, etc. etc.

Yes, the use of SSH key pairs is theoretically in the code, but it isn't 
working yet, or at least, I haven't managed to make it work.  This is 
where we need additional funding, which would go toward fixing this and 
could also cover the afore-mentioned cipher selection option and, 
optionally, GUI integration with all of the above (I envision SSH being 
selectable as a separate option on the "Security" tab, with an 
additional field for the "via" host or a check-box to use the VNC host 
(equivalent of -tunnel.)


> On 05/08/2012, at 10:41 AM, DRC wrote:
>
>> http://www.virtualgl.org/DeveloperInfo/PreReleases
>
> …
>
>> Major new changes:
> …
>
>> -- All-new Java viewer code base, which contains most if not all of the
>> existing TurboVNC features, as well as:
> …
>
>>    * Built-in SSH tunneling support (currently has to be used from the
>> command line.  Looking for funding to expand this into the GUI and add
>> SSH key, i.e. password-less login, support)
> ...
>>    * Packaged as a stand-alone app on Mac (fully self-contained, with
>> the Java code as well as the libjpeg-turbo JNI code included in the
>> app), so the app can be used as a user-friendly alternative to the X11
>> TurboVNC Viewer.
>
>
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>
>
>
> _______________________________________________
> VirtualGL-Devel mailing list
> VirtualGL-Devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtualgl-devel
>

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
VirtualGL-Devel mailing list
VirtualGL-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtualgl-devel

Reply via email to