How to Install PuTTY on Debian 13, 12 and 11

Install PuTTY SSH on Debian 13, 12, and 11 with APT. Covers optional Flathub caveats, PSCP transfers, PuTTYgen keys, updates, and removal.

Last updatedAuthorJoshua JamesRead time10 minGuide typeDebian

Saved sessions, PPK key handling, and PuTTY’s companion tools make PuTTY useful on Debian when a plain terminal SSH command is not the whole workflow. Install PuTTY SSH on Debian with APT when you want the desktop client plus pscp, psftp, and puttygen on your normal shell path. A Flathub build also exists, but treat it as optional and verify the remote before using it, especially on Debian 13.

If you are searching for a PuTTY download for Debian, use Debian’s packages first and only use Flathub when its metadata verifies successfully. The official PuTTY download page publishes Windows installers and a Unix source archive, while Debian provides maintained binary packages through APT.

Install PuTTY SSH on Debian

APT is the best default for Debian 13, 12, and 11 because it installs PuTTY and its companion command-line tools from the distro package set. Flatpak is useful only when Flathub already works on your system and you do not need PuTTY’s host-side tools on $PATH.

MethodSource or ChannelStatusBest ForTrade-offs
APTDebian package repositoriesDefault path for Debian 13, 12, and 11Most users, local shell integration, and PSCP or PuTTYgen workflowsVersion follows the Debian release branch
FlatpakFlathub stable appOptional; proceed only when the Flathub remote verifies because Debian 13 may report a summary-signature key errorDesktop users who already use FlatpakDoes not replace the APT putty-tools package for host-side terminal examples

Use the APT method if you plan to follow the PSCP, PSFTP, or PuTTYgen command examples later. Use the Flatpak method only after Flathub metadata loads successfully; do not bypass Flatpak signature checks to force the install.

Refresh Debian Package Metadata

Refresh APT metadata before installing PuTTY so Debian sees the current package indexes from every enabled source.

sudo apt update

The package-management step uses sudo because APT changes system packages. If your account cannot use sudo yet, follow the guide to add a user to sudoers on Debian before continuing.

Install PuTTY with APT on Debian

Install the desktop client and PuTTY’s terminal helper tools from Debian’s default repositories.

sudo apt install putty putty-tools

The putty package installs the graphical client. The putty-tools package adds pscp, psftp, and puttygen for file transfers and PuTTY key work.

Verify the APT Installation

Check that the PuTTY client and companion tools are available from your shell.

command -v putty pscp psftp puttygen
/usr/bin/putty
/usr/bin/pscp
/usr/bin/psftp
/usr/bin/puttygen

Confirm the installed PuTTY branch when you need release-specific details.

pscp --version

Example output from Debian 13 includes:

pscp: Release 0.83
Build platform: 64-bit Unix
Compiler: gcc 14.2.0
Source commit: d2c178c49a0ae6fa9ef75ca84fb3c9d0d675ea85
Debian ReleaseDefault APT Package BranchNotes
Debian 13 (Trixie)0.83.xClosest Debian-packaged branch to current upstream PuTTY
Debian 12 (Bookworm)0.78.xStable oldstable package branch with security updates
Debian 11 (Bullseye)0.74.xOlder LTS package branch that still supports Ed25519 keys

The branch depends on the Debian release, but all three supported release paths provide the SSH, PSCP, PSFTP, and PuTTYgen features used in these workflows.

Install PuTTY from Flathub When Verification Works

Use the Flatpak path only when you want PuTTY as a desktop app from Flathub and the remote can verify its signed metadata. Install Debian’s Flatpak package first if your system does not already have it.

sudo apt install flatpak

If you need the full Flatpak setup explained from the beginning, follow the guide to install Flatpak on Debian before installing the PuTTY app.

Add Flathub at system scope so the remote, the app, and later updates use the same installation scope.

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

If this step fails with a signature error, use APT instead and do not add --no-gpg-verify or other trust-bypass options.

Can't check signature: public key not found

Confirm that Flathub can return the PuTTY app record before installing the app.

flatpak remote-info --system flathub uk.org.greenend.chiark.sgtatham.putty | grep -E '^[[:space:]]*(ID|Ref|Arch|Branch|Runtime):'

Continue only if the command returns app metadata. Then install PuTTY from the Flathub app ID.

sudo flatpak install flathub uk.org.greenend.chiark.sgtatham.putty

Check the installed Flatpak metadata after installation. The version may move as Flathub publishes newer stable PuTTY builds.

flatpak info uk.org.greenend.chiark.sgtatham.putty | grep -E '^[[:space:]]*(ID|Ref|Arch|Branch|Version|Origin|Installation):'
          ID: uk.org.greenend.chiark.sgtatham.putty
         Ref: app/uk.org.greenend.chiark.sgtatham.putty/x86_64/stable
        Arch: x86_64
      Branch: stable
     Version: 0.83
      Origin: flathub
Installation: system

Flatpak confines the desktop app and can limit file access. If you need straightforward terminal tools for PSCP, PSFTP, or PuTTYgen, use the APT method instead.

Launch PuTTY on Debian

The package installs correctly from a terminal or SSH shell, but the main PuTTY window needs an active graphical desktop session.

Launch the APT-installed desktop client from a local desktop terminal.

putty

Launch the Flatpak build through Flatpak when that method installed successfully.

flatpak run uk.org.greenend.chiark.sgtatham.putty

Once launched, the PuTTY Configuration window opens with session settings for host, port, protocol, saved sessions, terminal behavior, SSH options, and connection-specific tweaks.

You can also open PuTTY from the desktop applications menu. On GNOME, open Activities, select Show Applications, search for PuTTY, and choose the PuTTY SSH Client icon.

Use PuTTY on Debian

PuTTY is a graphical SSH client, while OpenSSH is Debian’s standard command-line SSH stack. Use PuTTY when saved GUI sessions, PPK keys, or PuTTY’s companion tools fit your workflow; use OpenSSH when you want a terminal-first client or need to configure the remote SSH server. For command-line SSH syntax, see the SSH command reference for Linux.

Configure and Save PuTTY SSH Sessions

Save sessions when you connect to the same remote systems often and do not want to re-enter host, port, and SSH settings each time.

  1. Launch PuTTY.
  2. In the Session category, enter the remote server’s hostname or IP address in the Host Name (or IP address) field.
  3. Set the SSH port, usually 22 unless the remote server uses a custom port.
  4. Choose SSH as the connection type.
  5. Enter a clear name in the Saved Sessions field, then click Save.

Select the saved session later and click Load before opening the connection.

Customize PuTTY Appearance

Adjust terminal appearance from the left-side category tree before saving the session.

  • Open Window > Appearance to change the terminal font and size.
  • Open Window > Colours to adjust foreground, background, and ANSI color entries.
  • Open Terminal and Window sections when you need scrollback, bell, keyboard, or display behavior to differ by session.

Use Key-Based Authentication with PuTTY

Debian 13, 12, and 11 ship PuTTY branches new enough to generate Ed25519 keys. Ed25519 is a strong default for modern OpenSSH servers; use RSA only when an older server cannot accept Ed25519 keys.

Create the local SSH directory with permissions that keep private key material private.

mkdir -p ~/.ssh && chmod 700 ~/.ssh

Generate an Ed25519 key pair in PuTTY’s PPK format. Enter a passphrase when prompted so the private key is not usable by itself if copied from your account.

puttygen -t ed25519 -o ~/.ssh/putty-key.ppk

Export the public key in OpenSSH format so it can be added to the remote server.

puttygen -L ~/.ssh/putty-key.ppk > ~/.ssh/putty-key.pub

The exported public key should begin with ssh-ed25519. View it before copying it to the remote account.

cat ~/.ssh/putty-key.pub

Copy the public key with ssh-copy-id when the OpenSSH client tools are available on your Debian system.

ssh-copy-id -i ~/.ssh/putty-key.pub user@remote-server

If ssh-copy-id is unavailable, append the public key manually through a normal SSH session.

cat ~/.ssh/putty-key.pub | ssh user@remote-server 'install -m 700 -d ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys'

Configure PuTTY to use the key after the public key is present on the remote server.

  1. Launch PuTTY and load or create the SSH session.
  2. Open Connection > SSH > Auth > Credentials.
  3. Browse to ~/.ssh/putty-key.ppk in the private-key field.
  4. Return to Session and save the session.

Enable X11 Forwarding with PuTTY

X11 forwarding lets a graphical application on the remote server display through your local desktop session. The remote OpenSSH server must allow forwarding, and the remote account needs the usual X11 authentication helper.

On the remote server, check the effective OpenSSH setting.

sudo /usr/sbin/sshd -T | grep -i '^x11forwarding'
x11forwarding yes

If the server reports x11forwarding no, change the remote server’s SSH policy only if you administer that host. Test the server configuration before reloading SSH.

sudo /usr/sbin/sshd -t
sudo systemctl reload ssh

Install xauth on the remote server if the forwarding check succeeds but graphical apps still cannot create the forwarded display cookie.

sudo apt install xauth

In PuTTY, open Connection > SSH > X11, enable X11 forwarding, save the session, and reconnect. After connecting, the remote shell should receive a forwarded display value.

echo "$DISPLAY"
localhost:10.0

Test with a small X11 app only when the remote server has one installed.

xeyes

If xeyes is missing on the remote Debian server, install the x11-apps package or test with another known graphical program. On a local Debian desktop, Xwayland usually handles X11 clients under a Wayland session, but a Windows client needs a separate X server such as VcXsrv before forwarded apps can appear.

Transfer Files with PSCP on Debian

PSCP comes from the APT putty-tools package. Use it when you want PuTTY’s SCP/SFTP-style transfer tool from a Debian shell, especially for workflows that already use PuTTY key files.

Basic PSCP Transfers

Upload a file from Debian to the remote server.

pscp local-file.txt user@remote-server:/path/to/destination

Download a remote file to the current Debian system.

pscp user@remote-server:/path/to/remote-file.txt local-destination

Transfer a directory recursively when the remote path should receive the whole directory tree.

pscp -r local-directory user@remote-server:/path/to/destination

The -r flag enables recursive mode. Preview the local directory contents first if you are unsure what will be copied.

Use a PuTTY private key file for authentication when the remote account expects the matching public key.

pscp -i ~/.ssh/putty-key.ppk local-file.txt user@remote-server:/path/to/destination

Useful PSCP Options

Use uppercase -P for a custom SSH port. Lowercase -p is not the same option in PuTTY tools.

pscp -P 2222 local-file.txt user@remote-server:/path/to/destination

Force SCP or SFTP only when the remote server or policy requires a specific transfer protocol.

pscp -scp local-file.txt user@remote-server:/path/to/destination
pscp -sftp local-file.txt user@remote-server:/path/to/destination

Add verbose output when you need to see connection negotiation, authentication, and transfer details while diagnosing a failed copy.

pscp -v local-file.txt user@remote-server:/path/to/destination

Troubleshoot PuTTY Issues on Debian

PuTTY errors usually point to the remote SSH service, firewall access, or a key-format mismatch. Start with the symptom, check the remote layer that can cause it, then retry the same connection.

Handle Flathub Signature Errors

If the Flatpak remote or PuTTY app metadata fails with Can't check signature: public key not found, the Flathub trust path did not verify cleanly on that Debian system. Use the APT package instead of disabling GPG verification.

Check the remote state before retrying later, especially if you already had other Flatpak apps installed.

flatpak remotes --show-disabled --columns=name,options

Fix Connection Refused Errors

A refused connection means the remote host answered the network request, but nothing accepted SSH on the port PuTTY tried to use.

Network error: Connection refused

On the remote Debian server, check whether the SSH service is active.

systemctl is-active ssh
active

If the unit is missing or inactive, repair the remote SSH service before changing PuTTY. The Debian SSH setup guide covers the server-side package and service path: install and enable SSH on Debian.

If SSH is active, check whether UFW is active and missing the SSH port rule.

sudo ufw status verbose

For a default SSH listener on port 22, allow the TCP port only when UFW is active and the rule is absent.

sudo ufw allow 22/tcp

Review the full UFW setup on Debian if the server uses custom ports, source-restricted rules, or another firewall layer.

Check Host Key Warnings

PuTTY shows a security alert the first time you connect to a server because it has not saved that host key yet. Verify the fingerprint through your server inventory, hosting panel, or administrator before accepting it.

If the warning appears for a server you have used before, stop and confirm why the key changed. Reinstallation, rebuilt cloud instances, reused IP addresses, or a real interception risk can all produce a new host key prompt.

Fix Permission Denied Public Key Errors

PuTTY reports a public-key failure when the remote account rejects the key, cannot read authorized_keys, or receives a key in the wrong format.

Disconnected: No supported authentication methods available (server sent: publickey)

On the remote server, inspect the SSH directory permissions for the target account.

ls -ld ~/.ssh ~/.ssh/authorized_keys
drwx------ 2 user user 4096 Dec  5 10:00 /home/user/.ssh
-rw------- 1 user user  738 Dec  5 10:00 /home/user/.ssh/authorized_keys

Fix the permissions if the directory or key file is too open. For a deeper permission walkthrough, use the chmod command guide.

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Then confirm the PuTTY session points to the correct .ppk file, the matching public key exists in ~/.ssh/authorized_keys on the remote account, and the public key was exported with puttygen -L in OpenSSH format.

Update or Remove PuTTY from Debian

APT owns the default Debian install. Flatpak update and removal commands apply only to systems where the Flathub app installed successfully.

Update APT-Installed PuTTY

Refresh package metadata, then upgrade only the installed PuTTY packages.

sudo apt update
sudo apt install --only-upgrade putty putty-tools

The --only-upgrade option updates packages that are already installed. If APT says the packages are not installed, use the install command from the APT section instead.

Update an Existing Flatpak PuTTY

Update the system-scope Flatpak app through Flatpak only when the Flathub installation exists on that system.

sudo flatpak update uk.org.greenend.chiark.sgtatham.putty

Flatpak reports that there is nothing to do when the installed app is already current.

Remove APT-Installed PuTTY

Remove the Debian packages first.

sudo apt remove putty putty-tools

Preview orphaned dependencies before deleting anything else. Reused systems can already have unrelated packages marked autoremovable.

sudo apt autoremove --dry-run

Continue only if the preview lists packages you actually want to remove.

sudo apt autoremove

Confirm that the APT packages no longer have installed ii rows.

dpkg -l putty putty-tools 2>/dev/null | grep '^ii' || echo "NOT_INSTALLED"
NOT_INSTALLED

Remove an Existing Flatpak PuTTY

Remove the Flatpak app by its application ID when it exists on the system.

sudo flatpak uninstall uk.org.greenend.chiark.sgtatham.putty

Remove unused Flatpak runtimes only after reviewing the prompt, because another Flatpak app may still need them.

sudo flatpak uninstall --unused

Verify that the PuTTY app ID no longer appears in the installed Flatpak app list.

flatpak list --system --app --columns=application | grep -Fx uk.org.greenend.chiark.sgtatham.putty || echo "NOT_INSTALLED"
NOT_INSTALLED

Remove PuTTY User Settings

Package removal does not delete saved sessions, host keys, or per-user preferences. APT-installed PuTTY commonly stores these under ~/.putty/, while Flatpak user data can remain under ~/.var/app/uk.org.greenend.chiark.sgtatham.putty/.

Back up the APT profile directory before deleting it if you may need saved sessions later.

if [ -d ~/.putty ]; then
  cp -a ~/.putty ~/putty-backup
else
  echo "No ~/.putty directory found"
fi

The cleanup commands in this section permanently delete saved PuTTY sessions, remembered host keys, and local preferences for the current user. Keep a backup if you may need those profiles again.

rm -rf ~/.putty

Remove Flatpak user data only when you also want to delete the Flatpak app’s local state for your account.

rm -rf ~/.var/app/uk.org.greenend.chiark.sgtatham.putty

Conclusion

PuTTY is ready on Debian for saved desktop SSH sessions, PPK key work, and PSCP transfers when you used the APT method. For the server side of the connection, enable SSH on Debian, then consider installing Fail2ban on Debian to reduce brute-force login noise.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Verify before posting: