← New search

Software

PuTTY

PuTTY is a free and open-source terminal emulator, serial console, and network file transfer application. It supports several network protocols, including SSH, Telnet, rlogin, and raw socket connections. It also includes tools such as pscp (SCP client), psftp (SFTP client), and plink (command-line connection tool). Originally developed for Windows, it has been ported to various Unix-like platforms. PuTTY is widely used by system administrators and developers for remote server management.

0.81
Latest stable release (as of 2024)
Version
1998
Year of initial release
Year
MIT
License
License
C
Primary programming language
Language
1

History and development

PuTTY was created by Simon Tatham and first released in 1998 for Windows 95 and Windows NT. It was developed as a free alternative to proprietary SSH clients, and its source code was made available under the MIT license. The name "PuTTY" has no official meaning, though it is sometimes jokingly said to stand for "PuTTY Utility for Telnet and SSH". Over the years, PuTTY has been maintained by a small team of volunteers, with contributions from the open-source community. It has been ported to Unix-like systems, including Linux and macOS, and is included in many Linux distributions' package repositories.1

2

Features and protocols

PuTTY supports SSH (versions 1 and 2), Telnet, rlogin, and raw TCP connections. It includes a terminal emulator that supports xterm, VT100, and other terminal types, and it can be configured to handle various character encodings. PuTTY also provides session management, allowing users to save connection profiles with specific settings. The bundled tools extend its functionality: pscp and psftp enable secure file transfers, while plink allows scripting and automation of remote commands. PuTTY supports public-key authentication, including the use of SSH keys generated with the included PuTTYgen tool.2

3

Security and vulnerabilities

PuTTY has had a relatively strong security record, but it has not been immune to vulnerabilities. In 2024, a critical vulnerability (CVE-2024-31497) was discovered in PuTTY's use of the NIST P-521 elliptic curve for SSH key generation, which could allow an attacker to recover private keys from a limited number of signatures.3 The issue was fixed in version 0.81. Earlier, in 2019, PuTTY addressed a vulnerability that allowed a malicious server to cause a denial of service via a specially crafted SSH packet. The project maintains a security advisory page and encourages users to update regularly.

4

Lesser-known aspects

Beyond its primary use, PuTTY includes several lesser-known features. It can act as a serial console client, connecting to devices via COM ports, which is useful for network equipment configuration. PuTTY also supports local port forwarding, dynamic port forwarding (SOCKS proxy), and X11 forwarding. The plink tool can be used for automated remote commands in scripts, and it is often used in Windows batch files. PuTTY's terminal emulator supports a wide range of escape sequences, making it compatible with many text-based applications. Additionally, PuTTY has a companion tool called Pageant, which is an SSH agent that stores decrypted keys in memory for convenient authentication.4

Glossary

SSH
Secure Shell, a cryptographic network protocol for secure data communication, remote command-line login, and other secure network services.
Telnet
An application protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communication facility using a virtual terminal connection.
SCP
Secure Copy Protocol, a means of securely transferring computer files between a local host and a remote host or between two remote hosts, using SSH.
SFTP
SSH File Transfer Protocol, a network protocol that provides file access, file transfer, and file management over any reliable data stream, typically SSH.

PuTTY is a registered trademark of Simon Tatham.