PuTTY

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port. The name "PuTTY" has no official meaning.

PuTTY was originally written for Microsoft Windows, but it has been ported to various other operating systems. Official ports are available for some Unix-like platforms, with work-in-progress ports to Classic Mac OS and macOS, and unofficial ports have been contributed to platforms such as Symbian, Windows Mobile and Windows Phone.

PuTTY was written and is maintained primarily by Simon Tatham, a British programmer.

Features
PuTTY supports many variations on the secure remote terminal, and provides user control over the SSH encryption key and protocol version, alternate ciphers such as AES, 3DES, RC4, Blowfish, DES, and public-key authentication. PuTTY uses its own format of key files – PPK (protected by Message Authentication Code). PuTTY supports SSO through GSSAPI, including user provided GSSAPI DLLs. It also can emulate control sequences from xterm, VT220, VT102 or ECMA-48 terminal emulation, and allows local, remote, or dynamic port forwarding with SSH (including X11 forwarding). The network communication layer supports IPv6, and the SSH protocol supports the zlib@openssh.com delayed compression scheme. It can also be used with local serial port connections.

PuTTY comes bundled with command-line SCP and SFTP clients, called "pscp" and "psftp" respectively, and plink, a command-line connection tool, used for non-interactive sessions.

PuTTY does not support session tabs directly, but many wrappers are available that do.

History
PuTTY development began late in 1998, and was a usable SSH-2 client by October 2000.

Components
PuTTY consists of several components:
 * PuTTY: the Telnet, rlogin, and SSH client itself, which can also connect to a serial port
 * PSCP: an SCP client, i.e. command-line secure file copy. Can also use SFTP to perform transfers
 * PSFTP: an SFTP client, i.e. general file transfer sessions much like FTP
 * PuTTYtel: a Telnet-only client
 * Plink: a command-line interface to the PuTTY back ends. Usually used for SSH Tunneling
 * Pageant: an SSH authentication agent for PuTTY, PSCP and Plink
 * PuTTYgen: an RSA, DSA, ECDSA and EdDSA key generation utility
 * pterm: (Unix version only) an X11 client which supports the same terminal emulation as PuTTY