How to Install PuTTy on Ubuntu (26.04, 24.04, 22.04)

Last updated Saturday, March 14, 2026 3:39 pm 9 min read 6 comments

A graphical SSH client with saved sessions, PuTTYgen, and PPK key support still makes PuTTY useful on Ubuntu when you want more than a plain terminal window for remote access. You can install PuTTY on Ubuntu from the default repositories for the distro-packaged build or from Flathub for a sandboxed release that stays consistent across supported LTS versions.

If you are looking for a PuTTY download on Ubuntu, the Ubuntu package and the Flathub build are safer choices than random third-party .deb mirrors. The package installs cleanly from a local terminal, an SSH session, or Ubuntu Server, but the main putty window still needs an active graphical session to open, and the steps below work on Ubuntu 26.04, 24.04, and 22.04.

Install PuTTY on Ubuntu

APT fits most Ubuntu systems because the distro maintains the package and the companion tools install directly into your shell. Flatpak is useful when you want the same newer PuTTY build across all supported Ubuntu LTS releases.

MethodChannelVersionUpdatesBest For
APTUbuntu repositoriesDistribution defaultUbuntu package updatesMost users, shell integration, direct access to plink, pscp, and puttygen
FlatpakFlathubLatest Flathub buildsudo flatpak updateSandboxed desktop install with the same PuTTY release across supported Ubuntu LTS versions

Update Ubuntu before installing PuTTY

Refresh the package index and install pending system updates before you add PuTTY.

sudo apt update && sudo apt upgrade

These commands use sudo for package-management tasks that need root privileges. If your account does not have sudo access yet, follow the guide to add a new user to sudoers on Ubuntu before you continue.

Install PuTTY with APT on Ubuntu

Install PuTTY on Ubuntu with the distro package when you want the GUI client and the companion shell tools in one APT-managed workflow.

sudo apt install putty putty-tools

The putty package installs the graphical client. The putty-tools package adds plink, pscp, and puttygen, which matters if you want PuTTY’s command-line tools instead of only the desktop window.

apt-cache policy putty
putty:
  Installed: 0.83-3build1
  Candidate: 0.83-3build1
  Version table:
 *** 0.83-3build1 500
        500 http://au.archive.ubuntu.com/ubuntu resolute/universe amd64 Packages
        100 /var/lib/dpkg/status

That is the current output on Ubuntu 26.04. Ubuntu 24.04 installs 0.81-1, and Ubuntu 22.04 installs 0.76-2, so the APT package version depends on the LTS release you are running.

Install PuTTY from Flathub on Ubuntu

Ubuntu does not preinstall Flatpak, so add it first if you want the sandboxed PuTTY build. If you need the full Flatpak setup first, follow the guide to install Flatpak on Ubuntu.

sudo apt install flatpak

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

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

The --if-not-exists flag avoids duplicate-remote errors, and sudo keeps Flathub in system scope instead of hitting the Ubuntu permission error that appears with a bare flatpak remote-add command.

sudo flatpak remotes
flathub system
sudo flatpak install -y flathub uk.org.greenend.chiark.sgtatham.putty

The -y flag answers the Flatpak confirmation prompt automatically, which makes the command easier to paste into a fresh terminal session.

The Flathub package is community built, not an upstream-verified PuTTY release. It is still a practical option when you want a sandboxed desktop install with the same build across Ubuntu 26.04, 24.04, and 22.04.

sudo flatpak info uk.org.greenend.chiark.sgtatham.putty | sed -n '1,10p'

The pipe to sed -n '1,10p' trims the metadata to the first 10 lines so you can focus on the app ID, version, origin, and installation scope.

PuTTY - SSH, Telnet and Rlogin client

          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

The Flathub build currently reports version 0.83 on Ubuntu. If you want the PuTTY companion tools directly in your shell, the APT method is still the cleaner Ubuntu fit.

Launch PuTTY on Ubuntu

The package installs fine from SSH or on Ubuntu Server, but the main putty window only opens from an active graphical session. For terminal-only SSH work, use plink, pscp, or Ubuntu’s native OpenSSH tools instead of the GUI client.

Launch PuTTY from a desktop terminal on Ubuntu

Start the graphical client from a local desktop terminal with the standard PuTTY command.

putty

If the shell prints Gtk-WARNING **: cannot open display:, you are in a headless shell and need to launch PuTTY from a logged-in desktop session instead.

Launch PuTTY from the applications menu on Ubuntu

Open the launcher when you prefer starting PuTTY from the Ubuntu desktop menu.

  • Click Activities in the top-left corner of the desktop.
  • Open Show Applications to browse installed software.
  • Type PuTTY into the search field.
  • Select the PuTTY icon to open the client.

Review the PuTTY interface on Ubuntu

The main PuTTY window groups the settings you need for saved sessions, protocols, and connection details.

  • Enter the hostname or IP address of the remote system.
  • Choose the connection type, such as SSH, Telnet, or Raw TCP.
  • Save session profiles, adjust ports, and tune terminal behavior before you connect.

Use PuTTY tools on Ubuntu

The putty-tools package is where PuTTY becomes useful beyond the GUI. It installs plink for terminal-only SSH sessions, pscp for transfers, and puttygen for key generation and key conversion.

Open terminal-only SSH sessions with Plink on Ubuntu

Use plink when you want PuTTY’s terminal-side SSH client instead of the graphical window.

plink user@host

For example, this connects to a remote host as root:

plink root@192.168.1.100

Transfer files with PSCP on Ubuntu

Use pscp when you need PuTTY’s SCP-style transfer tool, especially in workflows that still revolve around PuTTY key files.

Upload a file to a remote server with:

pscp local_file user@host:remote_path

This example uploads document.txt to the remote /root directory:

pscp /home/user/document.txt root@192.168.1.100:/root/document.txt

Download a remote file back to the local system with:

pscp user@host:remote_file local_path

This example downloads the same file into the local home directory:

pscp root@192.168.1.100:/root/document.txt /home/user/

Ubuntu already includes OpenSSH tools, so scp is often enough once you install OpenSSH on Ubuntu. Keep PSCP when you want PuTTY’s own transfer tool or PPK-oriented workflows.

Generate and convert keys with PuTTYgen on Ubuntu

Run puttygen from a desktop session when you want the graphical key generator for RSA, ECDSA, or Ed25519 keys.

puttygen

In headless shells, puttygen falls back to usage text instead of opening a window. To convert an existing OpenSSH private key into PuTTY’s PPK format, use the command-line mode instead:

puttygen openssh_key -O private -o converted_key.ppk

Compare PuTTY versions on Ubuntu

The Ubuntu repository version depends on the LTS release, while the Flathub build stays on the same branch across supported Ubuntu versions.

Ubuntu releaseDefault APT packageSupport statusBest fit
Ubuntu 26.040.83.xCurrent LTS in scopeClosest Ubuntu-packaged branch to current upstream
Ubuntu 24.040.81.xEstablished LTSStable Noble package with full APT integration
Ubuntu 22.040.76.xOldest supported LTSJammy users who prefer distro packages over Flatpak

If you want the same newer PuTTY release on every supported Ubuntu LTS version, the Flathub build currently reports 0.83 across the board.

Troubleshoot PuTTY on Ubuntu

Most PuTTY problems on Ubuntu come down to display access, remote SSH availability, or key-format mismatches. These checks keep each issue tied to a clear cause and a quick fix.

Fix PuTTY display errors on Ubuntu

When PuTTY is installed from SSH or on a minimal Ubuntu system, the package can be present even though the GUI cannot open yet.

(putty:12345): Gtk-WARNING **: cannot open display:

Check whether your current shell has a live graphical display before you try to launch the client.

echo $DISPLAY
:0

If the variable is empty, sign into a local Ubuntu desktop session and run putty there. For headless work, use plink, pscp, or Ubuntu’s OpenSSH tools instead of the GUI client.

Fix refused SSH connections in PuTTY on Ubuntu

A connection-refused error means the remote side is reachable but nothing is accepting the SSH session on the requested port.

Network error: Connection refused

Use verbose SSH output to confirm the refusal before you troubleshoot the remote host.

ssh -v root@192.168.1.100
debug1: Connecting to 192.168.1.100 [192.168.1.100] port 22.
debug1: connect to address 192.168.1.100 port 22: Connection refused
ssh: connect to host 192.168.1.100 port 22: Connection refused

If you see those lines, the remote SSH service is down, listening on a different port, or blocked by a firewall. On Ubuntu targets, follow the guide to install OpenSSH on Ubuntu if the host is missing sshd, or install and configure UFW on Ubuntu so port 22 is reachable.

Fix PPK authentication errors in PuTTY on Ubuntu

OpenSSH servers usually expect standard OpenSSH keys, not PuTTY’s PPK format.

PuTTY Fatal Error: Unable to use key file

Convert the private key to OpenSSH format when the remote host rejects the PPK file.

puttygen mykey.ppk -O private-openssh -o mykey_openssh

After the conversion, use mykey_openssh with ssh, scp, or any server that only accepts the standard OpenSSH key format.

Update or remove PuTTY on Ubuntu

APT and Flatpak handle PuTTY updates differently, so keep the maintenance commands tied to the method you installed.

Update APT-installed PuTTY on Ubuntu

Update the distro package without upgrading unrelated packages by targeting PuTTY directly.

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

The --only-upgrade flag tells APT to refresh packages that are already installed without pulling in new package names you were not using before.

Check the installed APT version afterward.

apt-cache policy putty
putty:
  Installed: 0.83-3build1
  Candidate: 0.83-3build1
  Version table:
 *** 0.83-3build1 500
        500 http://au.archive.ubuntu.com/ubuntu resolute/universe amd64 Packages
        100 /var/lib/dpkg/status

Update Flatpak PuTTY on Ubuntu

Update the system-scope Flatpak build with Flatpak’s normal application update command.

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

Flatpak prints Nothing to do. when the installed PuTTY app is already current.

Remove APT-installed PuTTY on Ubuntu

Remove the package first, then clear any orphaned dependencies that are no longer needed.

sudo apt remove putty putty-tools
sudo apt autoremove -y

Package removal does not delete saved sessions automatically. PuTTY stores saved sessions in ~/.putty/sessions, so remove the ~/.putty directory only if you want to wipe those profiles and any other PuTTY user settings.

Delete the PuTTY profile directory only when you are sure you no longer need its saved data.

rm -rf ~/.putty

Confirm that the APT package is no longer installed.

apt-cache policy putty
putty:
  Installed: (none)
  Candidate: 0.83-3build1
  Version table:
     0.83-3build1 500
        500 http://au.archive.ubuntu.com/ubuntu resolute/universe amd64 Packages

On Ubuntu 24.04 the candidate line shows 0.81-1, and on Ubuntu 22.04 it shows 0.76-2, but Installed: (none) is the part that confirms removal.

Remove Flatpak PuTTY on Ubuntu

Remove the app first, then clear any unused runtimes that were only there for PuTTY.

sudo flatpak uninstall -y uk.org.greenend.chiark.sgtatham.putty
sudo flatpak uninstall -y --unused

The first command removes the app, and --unused cleans runtimes that nothing else still depends on. The -y flag answers the removal prompt automatically.

Verify the result with the installed-app list. No output means the PuTTY Flatpak is gone.

sudo flatpak list --app | grep -i putty

The grep -i putty filter shows only PuTTY rows, so blank output means the app is gone.

PuTTY on Ubuntu FAQ

Does Ubuntu’s PuTTY package include PuTTYgen and PSCP?

Yes. Installing putty with putty-tools adds the GUI client plus plink, pscp, and puttygen. The companion putty-tools package is what exposes those extra shell commands.

Can I install PuTTY on Ubuntu Server or over SSH?

Yes. The package installs cleanly from a remote shell or on Ubuntu Server, but the main putty window still needs a graphical session to open. For headless systems, use plink, pscp, or Ubuntu’s built-in OpenSSH tools instead of the GUI client.

Should I use APT or Flatpak for PuTTY on Ubuntu?

Use APT when you want the most natural Ubuntu integration and direct shell access to plink, pscp, and puttygen. Use Flatpak when you want a sandboxed desktop install and the same newer PuTTY branch across Ubuntu 26.04, 24.04, and 22.04.

Is there a direct PuTTY download for Ubuntu?

Ubuntu already ships PuTTY in the universe repository, and Flathub offers a community-built Flatpak for supported Ubuntu LTS releases. Those package-managed installs are the safest way to get PuTTY on Ubuntu instead of pulling random .deb files from third-party mirrors.

Conclusion

PuTTY is installed on Ubuntu with the desktop client ready for GUI sessions and the companion tools ready for file transfers, key conversion, and terminal-only SSH work. If you want to lean harder on Ubuntu’s native stack next, install OpenSSH on Ubuntu for the server side or install and configure UFW on Ubuntu so remote access stays reachable without opening more than you need.

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 coffee Buy me a coffee

6 thoughts on “How to Install PuTTy on Ubuntu (26.04, 24.04, 22.04)”

  1. Good morning, I have the following error

    (putty:49401): Gtk-CRITICAL **: 09:10:26.330: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar

    (putty:49401): Gtk-CRITICAL **: 09:10:26.334: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar

    (putty:49401): Gtk-CRITICAL **: 09:10:26.337: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar

    Reply
    • Thanks for reporting this, ysa. These GTK-CRITICAL warnings about scrollbar distribution are cosmetic rendering messages from PuTTY’s GTK interface. They do not affect PuTTY’s functionality or SSH connections. The warnings appear because PuTTY’s GTK code encounters edge cases with certain scrollbar sizes during window initialization.

      PuTTY should work normally despite these messages. If the application is otherwise functional, you can safely ignore the warnings. They only appear in the terminal you launched PuTTY from, not in PuTTY’s own terminal window. To avoid seeing these warnings, launch PuTTY from your applications menu instead of the command line.

      If PuTTY crashes or fails to display properly, verify your GTK libraries are up to date with sudo apt update && sudo apt upgrade. Alternatively, try the Flatpak version documented in the guide, which bundles its own GTK runtime and avoids conflicts with system libraries.

      Reply
    • Thanks for your comment, Bruno. Serial ports on Linux are restricted to the root user and dialout group by default for security reasons. To allow your user account to access serial devices without root privileges, follow these steps:

      First, add your user to the dialout group:

      sudo usermod -aG dialout $USER

      After running the command, log out completely and log back in for the group membership to take effect. Verify the change with:

      groups

      Expected output showing dialout in your groups:

      username adm cdrom sudo dip plugdev dialout lpadmin

      Next, verify the serial port permissions. Check the device file you want to use:

      ls -l /dev/ttyUSB0

      Expected output showing dialout group ownership:

      crw-rw---- 1 root dialout 188, 0 Dec 26 11:56 /dev/ttyUSB0

      The rw- permissions for the dialout group allow read and write access. Once you are in the dialout group and logged back in, PuTTY will connect to serial ports without requiring root access.

      Reply
        • Thanks for the follow-up, Bruno. Since you are already in the dialout group and Minicom works without root, this points to a PuTTY-specific configuration issue rather than system permissions. Let me walk you through diagnosing this.

          First, verify PuTTY can see the serial device. Launch PuTTY from the terminal to see any error messages:

          putty

          In the PuTTY configuration window, select Serial as the connection type and enter your serial port path (for example, /dev/ttyUSB0). If PuTTY shows a permissions error in the terminal when you click Open, run this command to check the exact device permissions:

          ls -l /dev/ttyUSB0
          id

          Expected output confirming group membership and permissions:

          crw-rw---- 1 root dialout 188, 0 Jun 21 20:46 /dev/ttyUSB0
          uid=1000(bruno) gid=1000(bruno) groups=1000(bruno),20(dialout),27(sudo)

          If the output shows you are in the dialout group but PuTTY still fails, this is typically caused by one of three issues. First, some Ubuntu systems have AppArmor or SELinux policies that restrict PuTTY specifically. Check if AppArmor is blocking PuTTY:

          sudo aa-status | grep putty

          If PuTTY appears in the output, temporarily disable the AppArmor profile to test:

          sudo aa-complain /usr/bin/putty

          Second, verify the serial device node has correct permissions. Some systems recreate device nodes with restrictive permissions on boot. If ls -l /dev/ttyUSB0 shows anything other than crw-rw---- with dialout group, create a udev rule to fix permissions permanently:

          echo 'KERNEL=="ttyUSB[0-9]*", MODE="0660", GROUP="dialout"' | sudo tee /etc/udev/rules.d/50-serial.rules
          sudo udevadm control --reload-rules
          sudo udevadm trigger

          Third, if you installed PuTTY via Flatpak, the sandboxed environment may block direct hardware access. Flatpak applications require explicit permissions for device access. Grant PuTTY access to serial devices:

          flatpak override --user --device=all uk.org.greenend.chiark.sgtatham.putty

          After running the override command, restart PuTTY and try connecting again. If you installed PuTTY via APT instead of Flatpak, this step does not apply. Let me know which of these resolves the issue, or if you see specific error messages when launching PuTTY from the terminal.

          Reply
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:

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

Leave a Comment

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

Let us know you are human: