I use PuTTY for Windows a lot. It is an excellent SSH, Telnet, etc, etc, terminal program.

On the other hand, I am very impatient user. I honestly believe that the users should never wait for computers, and that the letters should appear on the screen a microsecond before the user types them. This means that I hate moving my hands away from the keyboard to mouse to use a GUI interface, when the majority of work is actually typing text or code on the keyboard. This defines a lot of choices I make when selecting software on my computer.

Bundled together, I really do not appreciate opening PuTTY GUI interface just to double-click on some PuTTY profile and then move the hand back on the keyboard. A much faster way of doing this for me is to press “Win-R”, type in something along the lines of “ssh://myhost.com” and never move away from the keyboard. After a couple of Google searches, I know I am not alone in that. At least one of my colleagues prefers to do it this way as well. Speeds things up a lot, believe me.

The problem is that PuTTY does not support it. It supports telnet://192.168.0.1, but NOT ssh://192.168.0.1. Apparently, this is because PuTTY developers believe that the URL convention for SSH protocol hasn’t been approved yet and, therefore, PuTTY won’t support it. Some people even developed special tool – UrlConf – in particular, to be able to set up PuTTY as a default ssh:// handler. Some others use Windows batch files to parse command line passed to PuTTY and run it.

Both solutions are somewhat funny – they invoke a proxy application just to invoke PuTTY. As PuTTY is Open source distributed under MIT license, why don’t I update its source code to do what I need?

So here it is, PuTTY that can handle not only ssh:// protocol to the same extent it could handle telnet:// protocol, but also handles a special putty:// protocol.

CONTENT:

  1. putty.exe – compiled putty.exe with the additional features
  2. putty.reg – Windows Registry file to register putty.exe to handle telnet, ssh and putty protocols
  3. unputty.reg – Windows Registry file to unregister putty.exe from the system
  4. window.c – the only file that had to change to implement extra functionality – for your reference only, you don’t need to do anything about it
  5. diff.txt – the diff file for window.c file – for your reference only, you don’t need to do anything about it
  6. readme.txt – the file with information about this package

INSTALLATION:

  1. Put putty.exe into the directory where your current putty.exe resides
  2. Edit putty.reg to replace path to putty.exe with your path
  3. Merge putty.reg with your registry (usually, by double-clicking)
  4. Enjoy!

UNINSTALLATION:

  1. Run unputty.reg
  2. Enjoy!

CHANGELOG:

[*] Based off the source code for the latest Windows development version as of 14/09/2008

[+] Handles ssh:// protocol to the same extent as it handles telnet:// protocol. Namely, if you type something like “ssh://192.168.0.1”, and 192.168.0.1 runs SSH server, PuTTY would attempt to connect

[+] Handles putty:// protocol. This is a special protocol and, if invoked as “putty://profile-name”, would be equivalent to “putty.exe -load profile-name”. In other words, if you have profile-name defined in PuTTY, then typing “putty://profile-name” in Run menu or in browser, would invoke PuTTY, load profile-name and attempt to connect using its settings. If the profile contains spaces in it, please, put it in quotes: “putty://”profile name””

Download the zip file here: putty_ssh

Have fun, folks!