Overview

Windows poses some challenges for Java applications (like Flukes), primarily from the perspective of specifying paths. In Java properties files, the "\" character, which is used as a path separator in Windows, is treated as an "escape" character (which means that it has special properties for changing the meaning of a single character immediately following it). The resolution to this issue is to use the "/" character for any path specified in a Java properties file on Windows, rather than "\". For example, "C:\Users\Exampleuser" would be written as "C:/Users/Exampleuser" instead.

Another issue on Windows is a long-standing Java bug with the discovery of the user's home directory; the bug itself is described here: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4787931. Flukes provides the convenience of using the Unix convention of specifying a path that is rooted in the user's home directory by beginning the path with "~/". This can cause Flukes to run into this Java bug. If this problem is encountered, it can be worked around by specifying the full path to files, rather than relying on the "~/" convention; for example, "user.keystore=~/.ssl/user.jks" would become "user.keystore=C:/Users/Exampleuser/.ssl/user.jks"

Logging into nodes using PuTTY

Most Windows users do not have X11 installed, which creates some difficulty with the "Login to node" menu option. Flukes has a property that is Windows-specific in the .flukes.properties file, "putty.path". This allows specifying the path to the PuTTY ssh client. It is recommended that Windows users download and install this client, using the full installer provided here: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html. Please choose the binary on the line beginning with word "Installer:"

Key format differences - PuTTY versus OpenSSH. The prevailing OS used on virtual or physical nodes in ExoGENI is Linux, which expects SSH keys in OpenSSH format. PuTTY has its own format, which differs from that of OpenSSH. The solution is to use the PuTTYGen tool included in the PuTTY installation to generate keys for use with ExoGENI. Directions on how to do so are in the following section.

Creating SSH keys compatible with PuTTY and ExoGENI

While most Unix variants use OpenSSH as client and server, the PuTTY ssh client is probably the most prevalent on Windows systems.

Flukes can make use of PuTTY's ssh keys for logging into ExoGENI nodes, but some care has to be taken.

The procedure for creating a PuTTY key to use with ExoGENI is:

  • Click the "Generate" button to create a key; you will need to move your mouse around to create entropy for the creation of the key.

  • Copy the contents of the box entitled "Public key for pasting into OpenSSH authorized_keys file:", and save these contents into a new, empty text file. In this example, let us save it into "C:\Users\Exampleuser\.ssh\Exampleuser.pub"

  • Click the "Save private key" button, after entering a passphrase for the key (if desired). If you do not enter a passphrase, you will be prompted about whether you are sure you wish to save the key without a passphrase.
  • Save the private key into the location of your choosing. PuTTY private keys are named with a ".ppk" suffix. In this example, we will save it into "C:\Users\Exampleuser\.ssh\Exampleuser.ppk"
  • Edit your .flukes.properties, and set the "ssh.key" and "ssh.pubkey" properties to the paths of your private and public keys, respectively. In the context of this example, we would set "ssh.key=C:/Users/Exampleuser/.ssh/Exampleuser.ppk" and "ssh.pubkey=C:/Users/Exampleuser/.ssh/Exampleuser.pub"
  • Note that, in the example above, we use "/" in paths in the .flukes.properties file, rather than the "\" that is usual on Windows.

Attachments