Serious PuTTY defaults

Everybody who has ever used SSH in the vicinity of a computer running Windows knows of the existence of PuTTY, the tiny yet brilliant Swiss army knife of remote communication. These are the chronicles of my default settings.

If you happen upon a Windows machine that has not yet had the pleasure of being fitted with an SSH client, bestow it the almighty PuTTY-ness and all your friends will think you’re awesome.

All silliness aside, there are probably a lot of great alternatives out there that I haven’t tried yet. I stubbornly keep using PuTTY and although it’s a good client, its defaults are somewhat lacking. So today, I would like to share with you my wholly serious PuTTY setting defaults!


PuTTY does not know the concept of inheritance. Both your default settings and your connection profiles are just separate setting containers – they share nothing with each other. So you should modify your default settings before you create profiles, or you’ll need to update the settings of each and every one of your profiles by hand.

You load your default settings by opening PuTTY, clicking on Default Settings and the Load button.

Serious defaults

These are the settings I always change based on my experience working with a lot of Linux systems:

  • Window > Lines of scrollback: 250000
    Just put an fairly large number there. You’ll thank me later when that code you accidentally deleted hasn’t scrolled out of your buffer yet.
  • Window > Appearance > Font: Lucida Console, Regular, 9pt
    This is pretty subjective, but give it a shot. Nicely condensed and readable font that gives you lot of workspace.
  • Window > Colours > ANSI Blue: R: 60, G: 60, B: 255
    Window > Colours > ANSI Blue Bold: R: 120, G: 120, B: 255
    One some monitors, PuTTY blue is fine. On most monitors, PuTTY blue is blackish blue. Sun is shining? PuTTY blue could just as well be black. The invisible kind of black.
  • Connection > Seconds between keepalives: 20
    Connection > Enable TCP keepalives: yes please
    This keeps your connection active and makes sure no intermediary network devices – or even the SSH daemon itself – dares think about dropping your connection in favor of streaming that funny Vine video with that guy doing that thing and then screaming. Don’t enable these if you noticed your network packets to not reliably reach the other side, because then you’d be logged out every 20 seconds.
  • Connection > Data > Terminal-type string: “linux”
    This makes sure your “arrow up” is an “arrow up” on the other side instead of Ctulhu vomiting all over your terminal.
  • Connection > SSH > Enable compression: check it
    This will cost you a tiny bit of CPU time on both sides, but will serve you well when forwarding ports through PuTTY, when you’re catting large text files, or when you’ve decided that SSH’ing over a flaky WiFi connection in an apartment building where everyone shares the same channel is by far the best thing to do today.
  • Connection > SSH > Auth > Private key file for authentication: optional
    Select your private key file here if you use the same key file for multiple SSH connections, or even better: use Pageant to manage your keys!
  • Connection > SSH > X11 > Enable X11 forwarding: don’t mind if I do
    This only makes sense if you decide to run an X server in Windows, such as Xming. If you do, this enables you to run X applications on the server that are rendered locally on your machine! Slowly, but still!

Now that you’ve finally changed all these settings, make sure PuTTY remembers them by going to Session, selecting Default Settings and clicking the Save button.

Well folks, that’s all. Tune in next time when I’ll teach you how to decode SSH packets using only a pencil and a used napkin!