Installation

Windows (MSI Installer)

  1. Download the installer from the download page.
  2. Run the .msi file and follow the setup wizard.
  3. All tools (PuTTY, PuTTYgen, PSCP, PSFTP, Plink, Pageant) will be installed.

Windows (Standalone)

Download individual .exe files from the download page. No installation needed — just run directly.

macOS

Terminal
brew install putty

Linux

Terminal
# Debian/Ubuntu
sudo apt install putty putty-tools

# Fedora/RHEL
sudo dnf install putty

# Arch Linux
sudo pacman -S putty

Your First SSH Connection

  1. Launch PuTTY.
  2. In the Host Name field, enter your server's hostname or IP.
  3. Set Port to 22 (default SSH port).
  4. Select SSH as the connection type.
  5. Click Open.

On first connection, PuTTY will display the server's host key fingerprint. Verify and accept it.

PuTTY Output
login as: your_username
[email protected]'s password: ********

Welcome to Ubuntu 24.04 LTS
Last login: Fri Mar 13 10:23:45 2026 from 10.0.0.1
your_username@server:~$

Saving Sessions

Save sessions to avoid re-entering connection details:

  1. Configure your session (hostname, port, settings).
  2. In Saved Sessions, type a name.
  3. Click Save.
  4. Double-click the saved session to connect.

SSH Key Authentication

  1. Generate a key pair with PuTTYgen.
  2. Upload the public key to your server's ~/.ssh/authorized_keys.
  3. In PuTTY, go to Connection → SSH → Auth → Credentials.
  4. Browse for your .ppk private key file.
  5. Save the session and connect.

Port Forwarding

Local Port Forwarding

Access a remote service through a local port:

PuTTY Configuration
Connection → SSH → Tunnels:
  Source port: 8080
  Destination: remote-db.internal:3306
  Type: Local
  Click "Add"

This forwards local port 8080 to remote-db.internal:3306 through the SSH tunnel.

Dynamic Port Forwarding (SOCKS Proxy)

PuTTY Configuration
Connection → SSH → Tunnels:
  Source port: 1080
  Type: Dynamic
  Click "Add"

X11 Forwarding

Run graphical Linux applications on your Windows desktop:

  1. Install an X server on Windows (e.g., VcXsrv, Xming).
  2. In PuTTY: Connection → SSH → X11 → Enable "X11 forwarding".
  3. Connect to your server and run GUI applications.

SSH Tunneling

SSH tunnels encrypt traffic between your local machine and a remote server. Use cases:

  • Database access — Securely connect to databases behind firewalls.
  • Web proxying — Route browser traffic through SSH.
  • Service access — Reach internal services from outside the network.

PSCP — Secure Copy

PSCP is PuTTY's command-line secure file copy tool:

Command Prompt
# Upload a file
pscp C:\local\file.txt user@server:/remote/path/

# Download a file
pscp user@server:/remote/file.txt C:\local\path\

# Copy a directory recursively
pscp -r C:\local\folder\ user@server:/remote/path/

# Using a specific SSH key
pscp -i mykey.ppk file.txt user@server:/path/

PSFTP — Secure FTP

PSFTP provides an interactive SFTP session:

Command Prompt
psftp user@server

psftp> pwd
Remote directory is /home/user
psftp> ls
psftp> get remote-file.txt
psftp> put local-file.txt
psftp> cd /var/www
psftp> mget *.log
psftp> quit

Terminal Settings

Font & Colors

Customize via Window → Appearance and Window → Colours:

  • Font — Change font face and size (default: Courier New, 10pt).
  • Colors — Customize the 16-color ANSI palette.
  • Cursor — Block, underline, or vertical bar style.

Scrollback

Set in Window: increase "Lines of scrollback" (default: 2000) for longer terminal history.

Proxy Configuration

Configure at Connection → Proxy:

  • HTTP — Standard HTTP proxy.
  • SOCKS 4/5 — SOCKS proxy support.
  • Telnet — Proxy via Telnet commands.

Troubleshooting

Connection Refused

  • Verify the server's SSH service is running: sudo systemctl status sshd
  • Check the port number (default: 22).
  • Ensure firewall allows SSH traffic.

Host Key Changed

If PuTTY warns about a changed host key, the server may have been reinstalled. Verify the new key fingerprint before accepting.

Authentication Failed

  • Verify username and password.
  • Check key permissions on server: chmod 600 ~/.ssh/authorized_keys
  • Ensure the correct .ppk key is loaded.

Timeout / Network Error

  • Check network connectivity: ping server.example.com
  • Increase keep-alive interval: Connection → Seconds between keepalives (set to 30).
  • Check firewall/proxy settings.