Complete guides for PuTTY, PuTTYgen, PSCP, PSFTP, and Plink. From first SSH connection to advanced tunneling.
.msi file and follow the setup wizard.Download individual .exe files from the download page. No installation needed — just run directly.
brew install putty
# Debian/Ubuntu
sudo apt install putty putty-tools
# Fedora/RHEL
sudo dnf install putty
# Arch Linux
sudo pacman -S putty
22 (default SSH port).On first connection, PuTTY will display the server's host key fingerprint. Verify and accept it.
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:~$
Save sessions to avoid re-entering connection details:
~/.ssh/authorized_keys..ppk private key file.Access a remote service through a local port:
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.
Connection → SSH → Tunnels:
Source port: 1080
Type: Dynamic
Click "Add"
Run graphical Linux applications on your Windows desktop:
SSH tunnels encrypt traffic between your local machine and a remote server. Use cases:
PSCP is PuTTY's command-line secure file copy tool:
# 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 provides an interactive SFTP session:
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
Plink is PuTTY's command-line connection tool, ideal for scripting:
# Run a remote command
plink user@server "ls -la /var/www"
# Interactive session
plink -ssh -i mykey.ppk user@server
# Use saved session
plink -load "My Server" "uptime"
# Port forwarding via command line
plink -L 8080:localhost:80 user@server
Customize via Window → Appearance and Window → Colours:
Set in Window: increase "Lines of scrollback" (default: 2000) for longer terminal history.
Configure at Connection → Proxy:
sudo systemctl status sshdIf PuTTY warns about a changed host key, the server may have been reinstalled. Verify the new key fingerprint before accepting.
chmod 600 ~/.ssh/authorized_keys.ppk key is loaded.ping server.example.com