Improving Putty settings on Windows

Submitted by dag on Sat, 2008/01/26 - 01:25

Since I started contract work for a new customer and have been offered a Windows Thinkpad to connect to the internal network, I have been looking at ways to make my life more comfortable. Putty is now my window to the world work so let's look at how I can make Putty nicer to work with by tweaking its configuration.

PS: Some of these options work equally well for Putty on Linux, put there is little use for that combination.

Skip directly to Putty settings summary.

Configure your Putty first, then make entries.
This is important advice. First configure your environment before you start using it. This is especially true for Putty, since you always start off from the default, it is important to configure the default entry before you create entries from these defaults. It will save you a lot of time afterwards to get things straight.

So before you make any changes, open the default template in Category: Session by selecting Default Settings and pressing the Load button.

Make SSH the default.
If you have an older version of Putty, chances are that you have Telnet as the default protocol. Changing it to SSH will probably save you some time when you start Putty out-of-the-blue. For this go to Category: Session and select SSH.

Keep windows around.
Putty cleverly exits when you leave a session, but I don't like that. I like to be able to still copy&paste from console even when one of my sessions times out or I closed one bash/session too many. Since I consider terminal output as possible interesting information I don't want to loose that by mistake (or inconsiderate intent). So you'd want to set in Category: Session the option Close window on exit to Never.

Annoying PC bell.
Some systems have quite annoying (and loud) PC speaker bell sounds and since I am not fond of audible notifications (and I can imagine my colleagues even less when I frantically expand stuff in bash) I always enable visual bell in Category: Terminal > Bell and select Visual bell.

I also like to have taskbar notifications (when eg. putty is minimized or in the background) so I set Taskbar/caption indication on bell to Flashing.

Increase scrollback buffer.
By default Putty buffers 200 lines of output, which is too little in lots of circumstances. And the moment you actually need this number increased, chances are you already lost some information you wanted. So it is wise to increase this number. What I do is go to Category: Window and increase Lines of scrollback to 20000.

Scrollback behavior
One thing I hate about terminal consoles is that if you are scrolling back output while the system is still producing output, the terminal jumps back to the bottom. I can see why this is the default, people might be confused if they are not aware that they are looking at the terminal buffer.

So in Category: Window I disable the Reset scrollback on display activity but I do enable Reset scrollback on keypress.

Choose a good font.
The newer Putty binaries are able to make use of ClearType which drastically improves the font quality compared to Antialiased. Go to Category: Window > Appearance, choose ClearType and a nice font. I prefer Lucida Console, 9-point.

When you are there, you might want to change the Gap between text and window edge to 3 pixels.

Use proper character encoding.
Nowadays all Linux systems are able to use Unicode (UTF-8) so to make sure that the output in Putty (especially everything non-ascii) looks fine, go to Category: Window > Translation and change the character set to UTF-8, make sure that also the line drawing characters use Unicode as well.

Linux copy-and-pasting.
I prefer to do an implicit copy when selecting and using the middle mouse button for pasting. So I go to Category: Window > Selection and set the Action of mouse buttons to xterm (Right extends, Middle pastes)

When you are there, also enable the option Paste to clipboard in RTF as well as plain text, which is nice when you are copy-and-pasting to emails or text documents that allow fonts and colours. Your console output will look much the same as it does on your screen!

Change dark colours on a black background.
One of the more annoying things with terminal applications (xterm has the same issue) is that by default dark-blue is too dark to be visible on a black background. Not only is this frustrating, it makes the experience for new users so bad that they prefer to disable colours (or hate the ls colour output or syntax highlighting in vim).

So if you are like me, go to Category: Window > Colours and select ANSI Blue in the Select a colour to adjust to Red:74 Green:74 Blue:255. I do the same for ANSI Blue Bold to Red:140 Green:140 Blue:255.

Keeping idle sessions active.
Another frustrating problem is induced by the time-to-live of inactive or idle TCP sessions on firewall or switch configurations. At some companies this is put aggressively low so that TCP sessions that have no activity for 1 minute or even 30 seconds are being dropped. If you are using an SSH connection over such a network device, you have to take care to send keep-alive packets over your idle session. To do this go to Category: Connection and set Seconds between keepalives (0 to turn off) to 25.

Enable X11 forwarding.
Together with Xming, Putty allows you to run graphical Linux applications on your Windows system, so enabling X11 forwarding by default can be useful. To enable this, got to: Connection > SSH > X11 and enable Enable X11 forwarding.

Also dynamic forwarding is very useful to connect to systems on a remote network, even when you do not know in advance having it enabled can be useful. This option however reserves a local port on the system so enabling it by default is not really practical. However you can still enable it from a running Putty by selecting Change settings.

Finally, saving the default.
Now, don't forget to save the changes you just made to the default template. If you loaded the Default Settings at the start, return back to Category: Session and press the Save button. Now you are done !

Putty settings summary.
Category: Session
Connection type: SSH
Close window on exit: Never

Category: Terminal > Bell
Action to happen when a bell occurs: Visual bell (flash window)
Taskbar/caption indication: Flashing

Category: Window
Lines of scrollback: 20000
Reset scrollback on keypress: Checked
Reset scrollback on display activity: Unchecked

Category: Window > Appearance
Font: Lucida Console, 9-point
Font quality: ClearType
Gap between text and window edge: 3

Category: Window > Translation
Character set: UTF-8
Handling of line drawing characters: Unicode

Category: Window > Selection
Action of mouse buttons: xterm (Right extends, Middle pastes)
Paste to clipboard in RTF as well as plain text: enabled

Category: Window > Colours
ANSI Blue: Red:74 Green:74 Blue:255
ANSI Blue Bold: Red:140: Green:140 Blue:255

Category: Connection
Seconds between keepalives (0 to turn off): 25

Category: Connection > SSH > X11
Enable X11 forwarding: enabled

Other interesting features ?
Let me know, so I can update this document for future visitors.

Update: I integrated some suggestions from the comments. Keep them coming :-)


The best way to fix the color problem is to set your term type to putty instead of xterm. xterm is black on white by default, so you'll get ls colors and vim syntax highlighting more suitable for a light background.

If you want to change individual colors, try setting the LS_COLORS environment variable, or in Vim you can try running ":color blue", ":color evening", ":color ron", or any other color scheme name under the /usr/share/vim/vimversion/colors directory.

Also note that PuTTY doesn't work well with the Consolas font and bold text, since the bold text is larger than the normal text. Lucida Console, Andale Mono, or Bitstream Vera Sans Mono are all really nice.


Great stuff. Thanks a lot.

unfortunately, the font

unfortunately, the font Lucida Console doesn't properly distinguish between zero '0' and upper-case oh 'O'.

I've never understood why anyone likes white text on black

Category: Window
Check: Reset scrollback on keypress
Uncheck: Reset scrollback on display activity

Category: Window > Appearance
Font: Fixedsys is more readable than Lucida

Category: Window > Colours
Default Foreground: 85 85 85
Default Bold Foreground: 0 0 0
Default Background: 242 242 242
Default Bold Background: 255 255 255
Cursor Text: 85 85 85

Vim/emacs syntax coloring shows up so much better this way.

White text on black was a

White text on black was a method of saving energy.

Black is the default display color of the monitor and of all the other colors require the least amount of energy to display.
White on the other hand requires the most.

So having white text on black background is the most efficient

> So having white text on

> So having white text on black background is the most efficient

Was the most efficient for CRTs. For LCDs it's the opposite.

White Text Black Background

I personnaly find that after hours of using putty/a computer that a White as a background it to sharp and hurts my eyes, simple solution (which was the main selling point to be on the new vista theme) is to change the colours so that you dont have anythign to sharp or bright.

Not true on modern LCD

Not true on modern LCD displays. Without applying power, 'transparent' is the default state for the crystal material, showing through to the CCFL (back light) behind, giving you a white screen. Therefore, black text on a white background will use slightly less power. Compared to the power drawn by the CCFL, this is negligible.

P.S. Thanks for the tips on Putty!

Well... latest LCD RGBLED

Well... latest LCD RGBLED models DO require more energy for bright backgrounds. Everything changes... ;-)

Besides, white on black is

Besides, white on black is healthier for your eyes. Light-gray on black - even better

Pardon - black on black is

Pardon - black on black is even better

nice write-up, didn't know

nice write-up, didn't know about cleartype for example.

concerning (non-default) settings for the work environment; i had to configure putty to connect through our company proxy, with my proxy username/password (under connection/ proxy). after changing the config of sshd on the server, to make it listen on port 443 as well (no https), i could connect to my remote linux box.

Nice article!

Nice article!


I keep putty and the rest of the putty utilities with me on a usb device but for day to day work I use Poderosa. It is a tabbed SSH client. I usually have 8 or 10 sessions open at any one time. Can do cygwin sessions, telnet and serial as well. Simple to work with keys. includes a simple port forwarding client. Split screens. It is a pretty impressive open source tool I have used for years.

command line options/usage

Personally, when I was stuck with putty, I'd simply put the binary somewhere in my path. From what I remember, you can access saved sessions as:

putty @SessionName

This also allows the convenience of:

putty -ssh UserName@Host (or Host -l UserName, whatever floats your boat).

Other options, including -X to forward X11 also work. Optionally, create a shortcut called ssh to run putty and set ssh as your default protocol (as you mentioned) and access the same way you would regular ssh. Obviously, this isn't quite what you're looking for, as they aren't really configuration options, but I've always found it silly that people insist on using the putty GUI. I always found it faster to hit Win+R and type something out.

Disclaimer: I'm going by my memory here, as I don't have a Windows machine to verify my claims anymore.

same here

Yup, that's very similar to the settings I use.

thanks man

you just made my life much easier. Really appreciated these tips.

Here's what I do since I

Here's what I do since I live in the same environment.

Do just like what you described above, then:

Get putty tray after install:
You can read the improvements on the site.

Also, install launchy:

Then the putty plugin for launchy:

Now I just hit the "alt-space" type in "ssh " and viola connected.

I also use xming for a X-Server:



Nice overview. Putty has also the advantage of saving different kinds of settings into Sessions. Thus, connecting to a server is two clicks away. I save the most important server sessions and attribute a fore- and background color to each type of application environment (eg blue/yellow for our backup servers, etc...)

Putty Connection Manager

You should take a look to the add on to putty: Putty Connection Manager

It's a nice tool to allow to work with tabbed sessions.

I like it

Putty+ViM/Vi+Num Pad != madness

My major issue with Putty for a ling time has been that when using the numpad in ViM or Vi it would print letters, delete lines and general maddens.

Quick Google search returned:

To summaries use:
Category: Terminal->Features->Disable Application keypad mode

Hope this helps others! :)

Numpad Keys

THANK you for this! the colours and the numpad keys were something that made me MAD using putty! ;¤

vim color syntax highlighting over PuTTY ?

I have been hunting through many forums for many hours on a way to get vim color syntax highlighting to work via PuTTY for shell scripts. the "set sytax enable" setting is in ~/.vimrc and locally on the CentOS system, color sytax works perfectly. However, when I connect to the system via PuTTY, although ls commands will show colors as defined in /etc/DIR_COLORS.xterm, if i edit a script in vim, there is never any color highlighting. Please can someone show me how to make the color syntax highlighting work in a PuTTY session running vim ??

vim-enhanced and the vim command

You should have the package vim-enhanced installed as well as use the "vim" command, not necessarily the "vi" command.

This is different when you are user root, or when you are another user on the system.

The Problem with Putty background

I'm finding the problem with changing default putty colors is that you can't just change foreground and background colors because when you do so, all ls -l colors show up very badly like the cyan colors and greens and light blues. I'm still looking for a all-encompassing color scheme that's better on the eyes. :-\

Changing those colors too

You can also change the cyan, green and light blue to be darker on a white background in Putty as well. As long as they are using normal ANSI colors, you can even change yellow in dark red if you like.

go portable: portaputty

I've switched to portaputty, a portable putty client.

The nice thing is the configs are stored as files in a .putty directory. (of course it's not hidden on windows..)

This allows for portability, but also for very easy settings editing - I'd dread to change a specific setting in 20 sessions in the gui.

Start Putty from the run command

- Place the putty.exe executable in the Windows System32 folder

- Open run dialog: Windows key + r
- In the run box, type "putty -ssh -P 22 ip_address" and hit enter.

PuTTY is good.

Excellent little configuration guide here, I seemed to have missed configuring PuTTY all together, but now I have it set up nice thanks to you.

Also thanks to the other commentors mentioning:

Tip: Also if you like to go full screen with Alt+Enter (like cmd box on Windows), when configuring the default profile make sure to select/tick - Category: Window, Behaviour, Full screen on Alt+Enter :)

Lucida Console is a Greate Font

I have learned to love Lucida Console 9 -point because it is as viewable at a 10 point font but saves 10% of your screen space. Initially it takes a while to get used to it but give it a few weeks and you will use it in everything. I use it in RAD tools and eclipse too.

Don't forget about cygterm and transparent PuTTY!

This is a really great post--thanks for the information. As a user of the mutt e-mail client with vim on cygwin through PuTTY, the information about color setting was very helpful.

Don't forget about putty-ntrans, the transparent PuTTY that lets you see the background image through (in part or totally) the PuTTY session. And cygterm, the PuTTY with support for cygwin.

Putty behaviour

In addition to all this, I like to set the putty behaviour to "System menu appears on ALT alone". I'm often doing captures of long diagnostic outputs, and I want to clear the scrollback buffer before I start. With this setting, a quick "ALT-t ALT-l" on the keyboard (Reset terminal, clear scrollback) and my sessions is all nice and tidy. Once the diagnostic session ends, ALT-o (copy to clipboard) is all I need to do to get the output into a decent text editor. There are other useful commands on the system menu that are now instantly accessible, for us mouseophobes.

Thanks for that idea! --phew,

Thanks for that idea! --phew, finally I don't have to right-click with my mouse to select "Clear Scrollback" anymore :)

increase line spacing for a more readable font

I don't know how to do this, but perhaps someone else does...

If you closely compare the standard gnome terminal font against Putty with Lucida Console, you'll notice that the gnome terminal font is more readable because there is more space between the baseline of one row and the tops of characters in the row below.

Is there an easy way to adjust the line spacing of a font in Windows?

Save the configuration!

Throw this line (it's one line) into a .cmd file and execute it. It will save your putty configuration to a .reg file to import on another machine or another installation.

regedit /e "%USERPROFILE%\desktop\putty.reg" HKEY_CURRENT_USER\Software\Simontatham

That all goes on one line. Saves it onto your desktop.

That's a definite time saver. I forgot where I grabbed that.

Drag+drop files to putty

Great article.. some tips I knew, and some I did not :)

A really neat feature I have missed a lot would be a built-in winscp thing to be able to drag/drop files from the windows desktop onto the putty window. I realize putty has no way of knowing where exactly to put the file on the remote system, but there could be a predefined location where the user has write permissions.

Has anyone heard of anything like this?

Funny, I discussed the same

Funny, I discussed the same thing a few months back with a colleague. It could actually use the user's home-directory to drop the file (just like scp does when you don't specify a path).

In fact, the putty project accepts feature requests and comments and tracks those ideas. I would vote for this one definitely ;-)

Here's a link to a similar request, although the project doesn't seem to be that much interested to add the feature :-/

line spacing

I find that the line spacing of the test on my putty is too close.. How do i increase the line spacing ?? Didnt find any settings to that effect..

thanks, .. plaigiarism

good stuff.

found a copy of your article here:

Other suggestions

Very similar to my default settings, and there's some excellent comments above as well.

If you want a larger default terminal size, then adjust Window->Columns and Rows.

As for font, I used to use Lucida Console, but got frustrated with the minimal UTF-8 support that it has. A good alternative is Deja Vu Sans Mono (8 pt). It's roughly the same size as LC 9pt, has better distinction between capital O and zero, and has VASTLY better UTF-8 support.

In Connection->Data change the default terminal type. What you should change it to largely depends on the remote system, but I would recommend either putty-256color or xterm-256color.

PuTTY Port Forwarding

Nice article. I've been using PuTTY for a couple of years now to SSH into a CentOS box from a Windows box and have pretty much arrived at the same configuration as yourself.

My favourite trick is to tunnel ports 80 (3000 for Webrick for Ruby on Rails development), and 5432 for pgAdmin administration of PostgreSQL, through SSH so that Apache/Webrick and PostgreSQL appear as localhost ports on my Windows box. Great for remote development without exposing any ports other than 22 on the remote CentOS box.

The above is easy to do...


Source port: 5432 (or 80, 3000 etc)
Destination port: my.remote.ip.address:5432 (or 80, 3000 etc)

Click Add.

Easy and works like a dream!




I prefer using PuTTY themes (igvita-light etc) for configuring the colors automatically.

It takes care of the font and all.

Putty And VIM

When i am using vim to open a file on putty,after doing all those editing,when I close the file using :wq,the content of the file is staying on the putty window...I want it to get the text cleared[not the entire window,only the content of the file] as soon as I exit form vim and go back to the the line where I entered previous command...What setting do i need ..??please reply..

Putty And VIM

Google "vim 'clear screen' on exit".Pa
Try this thread:


Mouse Cursor

I had a few of these tricks, but the UTF-8 encoding really helped (that's how I found this page).

I have a question for all you Putty Professionals:

I have a laptop with a cheap GMA500 video card, which does not invert my mouse cursor when it is inside PuTTY, resulting in a black cursor over a black screen.

Does anyone know of any tricks how to work around this issue?

Thanks in advance!

No pageant?

I've used very similar settings like this in PuTTY for years. However, if I am using a Windows box for serious work (I usually prefer a Linux box except for some Windows-only tools), I add PuTTY's pageant.exe to the Startup menu folder, with the shortcut set to load my ssh private key. pageant is an ssh key agent that sits in the system tray, and allows you to launch new ssh connections, or one of your pre-configured sessions.

Still doesn't beat the out-the-box operation of a typically linux desktop with an ssh agent, multi-tabbed terminal, bash completion etc.

Also, many PuTTY users seem to be unaware of plink (really, why is this functionality not in PuTTY?) and pscp.

Yahoo's Putty Widget

Yahoo has a series of cool widgets - one is a Putty widget that I use all the time. You're presented with a highly configurable window which displays all of your saved Putty settings. one click and you're in. I keep the Putty widget resident all the time and have listed over 50 servers/devices.

Brilliant Article

Thanks for the great article! For my Font/Colors, the following works well for me (much less strain on my eyes):

-Category: Window > Appearance, ClearType font
-Category: Window > Appearance, Font = Terminal 10
-Category: Window > Colours, Change Default Foreground = 222



Anyone reading this post might want to check out Kitty. It's a fork of Putty and has options for,
- transparency (like putty tray)
- always visible
- transportable (save to local file system instead of registry)

I also second Putty Connection Manager, it has some kinks to work out but have a tree structure to keep all my servers is invaluable.

Long term putty user thanks you

Your article gets right to the point. It helped me clean up my putty defaults. I love putty connection manger too.

I prefer a white background and the simplest solution for this seems to be setting the following default:

Category: Window -> Colours -> Options -> Controlling use of colours section, Check the box for: Use system colours

Need Help in putty config

Hi.. I have a strange issue in putty. Here it goes:

When I issue some command for which the output is huge after displaying few line of output it stops and and the left hand side of the console it displays:


I am really annoyed with this things as i have huge output for a some command and i need to keep pressing the a key(any key) to get the rest of the output.

Plzzzzzz help me out in solving this problem. I am seeing a soln where it displays all the output in one shot(without pressing the a key).

Bulk editing putty configuration settings?

Hi Dag, I just found your excellent summary of settings after years of using putty; most of them I'd discovered one at a time over the ages - wish your guide had been around or I had seen it when I first started with putty on windows - editing the blue took me years to find! I recently exported the putty registry settings and imported to a new PC; all worked well until I went to check the logfiles... I discovered that the path under older windows no longer exists so nothing had been saved. I need to change the path of the logfile setting for all of my saved connections (probably 80 servers) and doing it one at a time is annoying. Anyone have a better way of editing these settings? Thanks!

putty stores settings in

putty stores settings in registry. export and make a search and replace with a text editor, and import to registry :)

Bulk edit

Check out the portable versions of putty. Several store the registry entries in a file. Fix the settings on one machine, then copy the directory to all the other machines. I believe both the Portable Apps version of puTTY and the version do this (I use them together, and am not sure which one has the feature).

Thanks for useful tips


Thanks for your useful tips. But I expect a separate post from you about the color theme in putty. Now a days it is easy to download themes and run it. But I would like to learn it.

Thanks again for your effort.

Using screen within Putty

Note also that if you're using the very nice "screen" utility with Putty, you need to use "linux" as terminal-type string in Connection > Data in order to keep the benefit of the scrollback buffer.

I never knew that! I always

I never knew that! I always kept thinking "screen" would just never allow me to have scrollback when working within the process. Since I use it a lot, that will be handy. :-)

Disadvantage: PuTTY will

Disadvantage: PuTTY will disregard ANSI colors sent by the remote terminal if you do this.


Thanks for the article, helped me make putty more usable. Much appreciated.

No default save

It appears as though PuTTY will not save setting changes to it's default profile. I have tried various ways to get it to load and save to default (create another saved session, load that then re-load the Default Settings, etc), but nothing will force PuTTY to change it's default settings. I may try creating another session with the preferred defaults, then do some regedit hacking, will have to see if that even works.

No defaults saved

Nope, just tried a regedit hack, and the defaults STILL aren't saved to PuTTY.

re: No defaults saved

I thought the same thing, until I realized I needed to click on the words "Default Settings" under saved sessions, and then save. You might have a different problem, but this fixed it for me.

Here's the deal with how PuTTY loads and saves settings

It is necessary to select a so-called "session" in the PuTTY interface (within the "Session" tab of the left-hand navigation) before doing loading OR saving. In other words, highlight the "Default Settings" entry, click "Load", make all your customizations and THEN highlight "Default Settings" AGAIN before clicking "Save".

Now, when you want to create a new session with those settings, highlight "Default Settings", click "Load", CHANGE THE SESSION NAME (which is not labelled, and appears just above the saved sessions list), and then click "Save".

Just remember that rule: every time you load or save, the session on which to operate must be selected in that list.

Many thanks for good tips.

Many thanks for good tips.

Start putty from commandline / windows - run

Similar to tip above, but what I always do is put a BAT file that allows me to press win-r and enter "ssh HOSTNAME" and press enter to start putty quickly.

I name the file "ssh.bat" and it contains just one line, really:

start "" "%programfiles%\PuTTY\putty.exe" -ssh -P 22 %1

I really like it this way, hope it helps someone who would like to start putty quickly from the commandline/shell or standard windows run dialogue!

Multiple User Set-up

We set up one system with Putty, extract the REG file and then import it into other PCs to keep naming convention the same and to stop multi-errors from typing it over and over. Here is the run command from a Windows machine:

regedit /e "%userprofile%\desktop\putty.reg" HKEY_CURRENT_USER\Software\SimonTatham

One more thing not mentioned

One more thing not mentioned here is logging. I set log destination to 'logs\&H_&Y-&M-&d_&T.log' and all logs are stored in logs subdirectory with fancy server_YY-MM-DD_TT.log names.

HPUX older MP setups

One point - if you happen to use older HP hardware and need to function on the (serial port) based MPs -- be careful with Putty on windows "keepalive" -- we found that the keepalive can precipitate unusual behaviour in certain cases. Including inadvertently rebooting the host, if you happen to be in the wrong section of the MP firmware.

Many many thanks!! Saved me a

Many many thanks!! Saved me a ton of time!