Many PuTTY users encounter a frustrating issue where certain session-specific settings (like window size, colors, or terminal preferences) don't persist between sessions. This happens because PuTTY maintains a strict separation between session-specific configurations and global defaults.
PuTTY uses a three-layer configuration system:
1. Built-in hardcoded defaults 2. Saved sessions (in Windows Registry) 3. Session-specific temporary settings
Here's how to make your preferred settings permanent:
1. Open PuTTY without loading any session 2. Navigate to your desired settings (e.g., Window -> Appearance) 3. Configure all settings as you want them to appear by default 4. Go back to the "Session" category in the left panel 5. Select "Default Settings" in the saved sessions list 6. Click the "Save" button
For power users who want to script this or modify settings directly in the registry:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default%20Settings] "TermType"="xterm-256color" "Font"="Consolas" "FontHeight"="12" "LineCodePage"="UTF-8"
You can use putty.exe with the -load parameter to apply settings programmatically:
putty.exe -load "Default Settings" -P 22 user@hostname
Remember that some settings (like hostname or port) should remain session-specific. The best practice is to:
1. Set universal preferences in Default Settings 2. Create named sessions for specific hosts 3. Save both the default and named sessions
If settings still don't persist:
- Verify Windows registry permissions - Check if corporate policies override settings - Ensure you're not running PuTTY as administrator (causes registry virtualization) - Try portable version registry path if using putty.exe directly
PuTTY's default behavior drives sysadmins nuts - you meticulously configure font colors, window dimensions, or SSH encryption settings, only to find everything reset in the next session. This happens because PuTTY stores configurations in two distinct ways:
1. Session-specific: Saved when you explicitly name and store a session
2. Default Settings: Applied to new unnamed sessions
Here's the step-by-step method to modify PuTTY's baseline configuration:
- Launch PuTTY without loading any saved session
- Navigate to desired settings (e.g., Window → Appearance)
- Before connecting, click "Default Settings" in the Saved Sessions list
- Click "Save" - this overwrites PuTTY's global defaults
PuTTY stores defaults in Windows Registry at:
HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default%20Settings
Example registry patch to set default font to Consolas:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\Default%20Settings]
"Font"="Consolas"
"FontHeight"="12"
For deployment scenarios, use putty.exe with the -cleanup
flag to reset defaults, then apply your config:
# PowerShell script to configure defaults
Start-Process "putty.exe" -ArgumentList "-cleanup"
reg import .\putty_defaults.reg
- SSH: Preferred SSH protocol version (2)
- Terminal: Scrollback lines (20000+)
- Keyboard: Function key behavior (Xterm R6)
- Window: Always-on-top mode
Create a session named "TEMPLATE" with all preferred settings, then clone it for new connections using this batch script:
@echo off
copy "%APPDATA%\..\LocalLow\SimonTatham\PuTTY\Sessions\TEMPLATE" "%APPDATA%\..\LocalLow\SimonTatham\PuTTY\Sessions\%%1"