PuTTY is a fantastic free SSH client for Microsoft Windows® and Linux/Unix platforms. When used with Xming only the Windows platform variant is relevant.

The Windows version is just a few self-contained executables that can be run from portable devices. However configuration data is stored in the Windows registry at [HKCU\Software\SimonTatham\PuTTY] which may not be accessible from portable devices or populated on different machines. Independent configuration data storage in files overcomes this problem. There is a cumbersome workaround with bat/reg files. Alternatively: Xming-portablePuTTY is able to elegantly use stored sessions and ssh host keys as files.

Xming-portablePuTTY is a complete alternative to all PuTTY's Windows executables. It is supplied under the same MIT license as PuTTY, has built-in help and is made optimized for size (built 32-bit/x86 and 64-bit/x64).

The portable Plink executable incorporates the changes for the Plink for Xming SSH client. Xming-portablePuTTY provides PuTTY, Plink, PSCP, PSFTP, Pageant and PuTTYgen. Like Simon: I do not supply PuTTYtel in my installers. If you really must use Telnet or Rlogin: PuTTY, itself, can provide sessions for them (not recommended).


Xming-portablePuTTY stores configuration data to file instead of the registry, and also reads existing registry entries. Every session and ssh host key is stored in a separate file. The default file location is in sub-directories, sessions and sshhostkeys, of the directory where an executable is being run.

The path to the configuration file sub-directories, sessions and sshhostkeys (+ files PUTTY.RND and jumplist.bin), can be set via a one line entry in putty.conf. This file must be located in the same directory as the PuTTY executable being run and contain one of these three path types (';' begins a comment line)...

; Full path to configuration files:- location must begin with 'drive-letter:' e.g. X:
; sshk&sess=X:\somepath
sshk&sess=D:\Portable PuTTY
; Path on the current drive:- location must begin with '\'
; sshk&sess=\somepath
sshk&sess=\Portable PuTTY
; Full path via an environment variable:- location must begin with an %env%
; and that must begin with 'drive-letter:' e.g. %APPDATA% or %USERPROFILE%
; sshk&sess=%env%\somepath
; This is how putty.conf is supplied in the installer...
sshk&sess=%APPDATA%\Portable PuTTY
; and allows different users of a machine to get distinct file storage areas,
; but %APPDATA% is not usually a portable directory.
Rules for the structure of putty.conf It is not advisable to create or edit the sessions or sshhostkeys files by hand, work via putty for sessions files and let the system create sshhostkeys files. These files can be copied between installations (putty.conf must match file locations for them to work). You can just delete any sessions or sshhostkeys files no longer required and should be careful who has access to them.

When sshk&sess is defined it is used as the location for the random seed file, PUTTY.RND. The seed file will then be portable if directory sshk&sess is on a portable device.

The jumplist.bin cache file automatically stores 'Recent Sessions' for use in PuTTY's Jump Lists (Windows 7, Server 2008 R2 or later). It mimics a standard PuTTY REG_MULTI_SZ registry value, that does the same thing, and so contains a sequence of null-terminated strings terminated by an empty string (\0); sorted latest first. File jumplist.bin can be deleted to clear 'Recent Sessions', it will then regenerate as sessions are opened; but please don't edit it.

Xming-portablePuTTY is still able to read configuration data from the Windows registry. Sessions from the registry are marked [registry] on "PuTTY Configuration/Saved Sessions" and you can Load and then Save any sessions as files from here. In the command line -load option you need to append [registry] to the session name, if the session data is required from a registry entry, for example

>putty -load "session-name [registry]"
>plink -load "session-name [registry]" xterm -ls
and once the session is stored as a file
>putty -load session-name
>plink -load session-name xterm -ls
PuTTY Default Settings can be saved to a file that automatically loads at startup. 'Default Settings [registry]' are available read-only, if they exist, and a set of built-in defaults are automatically loaded anyway if no 'Default Settings [registry]' key or 'Default Settings' file exist. The file is named Default%20Settings (like the registry key), resides in the sessions directory, and its settings take precedence.

When the sshhostkey is found only in the registry (i.e. not found in file as well) you will be prompted to Move or Copy the key to file; or Cancel to do nothing. No writing of new or modified configuration data to the Windows registry is possible. Moving a key will however remove its registry entry.

Extra features

The following additions to 'standard' PuTTY are also provided PuTTY, PSFTP, Pageant and PuTTYgen have separate VisualElementsManifest XML files to provide customisable Start screen tiles for Windows 8 onwards.


Extensive documentation on PuTTY is available here. Note: this has paragraphs that are not applicable to Xming (e.g. about the Linux/Unix version and use with Windows prior to XP).

Help is also accessible directly from installed executables on the command line, via a Help button or the context-sensitive F1 key/question-mark pointer. Just click the Plink executable for its help.


Xming-portablePuTTY is based on an idea from site [WWW]PuTTY for win32 storing configuration into file and uses the canonical PuTTY source code from [WWW]Simon Tatham.

Table of contents

  1. Introduction
  2. Usage
  3. Extra features
  4. Manual
  5. Acknowledgements
Creative Commons License
The [WWW]Xming website, documentation and images are licensed under a
[WWW]Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales License.
PuTTY is copyright 1997-2021 Simon Tatham.
Xming-portablePuTTY is Copyright © 2005-2024 Colin Harrison All Rights Reserved