PuTTY Change Log
Home |
Licence |
FAQ |
Docs |
Download |
Keys
Mirrors |
Updates |
Feedback |
Changes |
Wishlist
These features are planned for the next release (and should
therefore be available in the development snapshots, unless they're
not updating, which happens sometimes):
-
The feature everyone's been asking for: ANSI printer support.
Currently this sends data to the printer in completely raw mode,
without benefit of Windows GDI or the printer driver; so it will be
fine for anyone whose server already knows what type of printer it
expects to be talking to, but probably not ideal for someone who
wants to print a text file and have it look nice. A less raw mode of
printer access is still on the Wishlist, but is quite a big piece of
coding work so it's in the Implausible section.
-
The other feature everyone's been asking for: PuTTYgen can
now import OpenSSH SSH2 private keys, and save them back out in
PuTTY's own format. We also plan to add an export feature (so you
can convert the other way), and similar support for ssh.com keys,
but OpenSSH imports seem to have been the most popular request.
-
The right-button menu on Pageant's System tray icon now offers the
option to start PuTTY (New Session plus the Saved Sessions submenu).
This feature is disabled if Pageant can't find the PuTTY binary on
startup. Thanks to Dominique Faure.
-
Added the Features control panel, allowing the user to disable some
of the more controversial terminal capabilities.
These features are new in beta 0.52 (released 2002-01-14):
-
A full manual has been written, and is supplied as a Windows Help
file alongside the program executables.
-
Support for public keys in SSH2, both RSA and DSA. Agent forwarding
is supported, but only to OpenSSH servers, because ssh.com have a
different agent protocol which they haven't published.
-
(Yes, I know I've been claiming DSA is horrifically insecure for
ages, but now I've been told about a clever way to get round the
insecurity. Details are in
sshdss.c
for anyone who's
interested; credit mostly goes to Colin Plumb for letting me know
about it. We still think RSA is better, and recommend you use it if
you have the choice.)
-
PSCP now uses the new SFTP protocol if possible, and only falls back
to the old scp1 form if SFTP can't be found (for example, if your
connection is SSH1). This should allow it to interoperate cleanly
with ssh.com's product, and is a security improvement besides.
-
PSCP, in old-style scp1 mode, is now much tighter on security. It
will refuse to let the remote host write to a file that doesn't have
the same name as the file that was requested. NOTE WELL that
this disallows remote-to-local wildcards such as "
pscp
server:*.c .
". scp1's implementation of server-side wildcards
is inherently unsafe. If you are sure you trust your scp server not
to be malicious, you can use the "-unsafe
" command line
option to re-enable this behaviour. When using the new SFTP-based
back end none of this is a problem, because SFTP is better designed.
-
Generic port forwarding support is now supported, thanks to a very
comprehensive contribution from Nicolas Barry.
-
X11 forwarding support. Thanks to Andreas Schultz for doing a large
part of the coding for this. Authentication munging is supported.
However, PuTTY does not currently attempt to authenticate
connections to the local X server, because finding the
authentication data to do so is server-dependent and complex and I
thought I'd wait to see what servers people actually want to use
this with.
-
Added an SFTP client, for the improved file transfer protocol that
comes with SSH2.
-
Full-screen mode, "like a DOS box". Not really like a DOS box, since
it works within the current graphics mode rather than shifting into
text mode, but it seems to work.
-
Support for resizing the font rather than the terminal when the user
changes the window size. Also supports a hybrid mode, in which
window resizes change the terminal size but maximising or going
full-screen changes the font size. Patch due to Robert de Bath.
-
Unicode support in the terminal emulator. In the first place this
allows us to support servers which actually send UTF-8 down their
terminal sessions; but the architecture changes also mean that
instead of specifying the local and remote character sets
in the Translation panel, you simply specify what character set you
expect the server to be talking, and PuTTY handles the rest
automatically. Many thanks to Robert de Bath.
-
Experimental rlogin support. Thanks to Delian Delchev for the patch.
Note that this may fail because the rlogin protocol relies on TCP
Urgent data, which not all operating systems get right, and which
not all firewalls pass through correctly. Also, local flow control
is unsupported as yet, and the "flush" command is not handled
correctly. Despite all this, it worked fine for me!
-
Improved support for local echo and local line editing. These are
now separate options, controllable independently. PuTTY will make
sensible guesses at the right settings, but those guesses can
always be overridden by the user.
-
Improved bell support. There's now a whole configuration panel; you
can choose a bell that plays the Windows default sound, or plays a
sound of your choice, or flashes the window, or does nothing. In
addition the window's Taskbar entry can be made to flash if a bell
goes off when the window is minimised, and also there's an option
that disables all bells if it receives them too fast (so that if you
cat
a binary file into your terminal it won't bleep for
a week).
-
Support for AES in SSH 2.
-
Default Settings can now be used to save a default protocol and port
number.
-
Scrollback should now automatically scroll if you try to drag-select
off the top of the window (or off the bottom of the window when it's
scrolled back), so you can easily select more than a screenful.
-
We now support rectangular-block selection, triggered by holding Alt
while you drag the mouse. (You can also configure rectangular
selection to be the default and Alt-drag to be conventional
line-by-line selection.)
-
The mouse pointer can now be configured to disappear when the PuTTY
window is active and text is typed, and reappear when the mouse is
moved, à la MS Word. Particularly useful for those of us
using focus-follows-mouse, where the pointer is quite likely to be
inside the window and obscuring the view.
-
The cursor can now be displayed as an underline or as a vertical
line, as well as a block. When it's a vertical line, it does
something useful when not-quite-wrapping in the rightmost column.
-
Keepalive timeouts can now be specified in seconds rather than
minutes.
-
Support for Diffie-Hellman group exchange in SSH2.
-
If you don't supply a username, PSCP now guesses your remote
username to be the same as your local username. (On Win95/98, this
might not be useful to everybody, but it's at least no worse than
bombing out with a complaint. On WinNT, it might be seriously
useful.) Patch due to Christian Biesinger.
-
You can now enter a service name such as "finger", in place of a
port number. Patch due to Christian Biesinger.
-
It's now possible to invoke a second Pageant with some key files on
the command line and have it feed those key files to the first
Pageant. Also, you can make Pageant start another command once it's
initialised itself; for example, "
pageant -c
wincvs.exe
" to start Pageant and then start WinCVS.
-
Scrollback on the terminal is no longer implemented by physically
copying a huge array. It should now be safe to use very large
scrollback buffers without suffering noticeable slowdown.
-
Patch due to Roman Pompejus: the "
-log
" command line
option on PuTTY is gone, replaced by a proper GUI-configurable
logging facility.
-
Implemented a selection option to paste line drawing as the
underlying characters or as poor-man's. Thanks to to Robert
de Bath.
-
Ctrl+Alt can be configured to either have the traditional
PuTTY behaviour (Ctrl+Alt+X is equivalent to ESC then Ctrl+X),
or to behave like AltGr. Thanks to Robert de Bath.
-
Added SCO ANSI function key support (F1 is ESC [ M and F12 is ESC [
X, with all obvious points in between).
-
Font changes when the window is maximised now keep it maximised.
Thanks to Robert de Bath.
-
The Application key on Windows keyboards now behaves like a Compose
key all the time. Compose behaviour on AltGr can still be configured
on and off. Thanks to Robert de Bath.
-
The terminal driver now returns a configurable string when it sees
^E. Thanks to Robert de Bath.
-
The About box now has a button that brings up a browser pointing at
the PuTTY web site. Thanks to Eric Theriault.
-
Bug fix: the long-standing socket buffering bug should now be gone
forever. If PuTTY is receiving data faster than it can send it out,
it will attempt to slow down the entity it's receiving from rather
than continuing to grow its buffers without bound.
-
Bug fix: AltGr should now be fixed. It was broken in 0.51.
-
Bug fix: repeat key exchange in SSH2 is now handled correctly. You
should no longer see "Server failed host key check" after your
session has been running for an hour.
-
Bug fix: various socket-handling problems should be corrected.
Crashes on network errors, bad handling of TCP Urgent data in telnet
and rlogin, and truncation of output when the remote server sends a
lot of data and then immediately closes the connection. Thanks to
Robert de Bath for the TCP Urgent stuff.
-
Bug fix: the cascading-error-boxes bug should be fixed. (This
occurred when you had keepalives enabled and got Connection
Aborted.)
-
Bug fix in the configuration box: controls in panels other than the
visible one should now not be able to get keyboard focus.
-
Bug fix: Tab and accelerator keys now work in the Event Log and in
the About box while a session is running. Thanks to Roman Pompejus
for the fix.
These features are new in beta 0.51 (released 2000-12-14):
-
Addition of PuTTYgen, an RSA key generation utility. Since PuTTY
uses the same RSA key file format as SSH 1, keys generated by
PuTTYgen are usable with SSH 1 as well.
-
SSH compression is now implemented.
-
Security improvement: better collection of randomness for the
cryptographic random number generator. Thanks to Peter Gutmann of
cryptlib
for ideas.
-
Security improvement: PSCP should now not be vulnerable to malicious
servers sending deliberately incorrect and harmful filenames down
the SCP connection. (The problem was reported in Bugtraq
#1742.)
-
Security improvement: the ssh client will not open agent forwarding
channels unless agent forwarding has genuinely been enabled, by the
user and the server. This allows a user to disable agent forwarding
if they suspect the server might abuse the agent. (The problem was
reported in Bugtraq
#1949.)
-
New configurable option: the Compose key support is now off by
default and configurable on.
-
New configurable option: whether or not Alt on its own brings up the
System menu.
-
New configurable option: whether or not scrollback resets to the
bottom when the display changes. (Previously you could control
whether it reset on a keypress.)
-
New configurable options: application keypad mode and application
cursor keys mode can be completely disabled. (Independently.)
-
New configurable options: Always On Top for the PuTTY window, so you
can use it to keep system logs on-screen the whole time. (Might work
particularly well with a really small font.)
-
Better network error handling. All errors are now translated into
plain text: "Unexpected network error 10053" is a thing of the past.
-
Added a small patch to improve Chinese support. Thanks to Zhong
Ming-Xun.
-
Bug fix: ISO8859-2 to Win1250 translation accidentally got broken in
the 0.50 release. It should be back to normal now.
-
Bug fix: restore the SSH back end's ability to distinguish stderr
output from stdout output. This was breaking PSCP and potentially
also Plink.
-
Bug fix: correct the "Lost connection while sending" problem when
pasting large amounts of data into PuTTY. This should also have
fixed random connection loss in Plink. Note: some of my
experiments suggest that some SSH servers are not entirely
happy with very large (80Kb or so) pastes, so if you still have
problems, they may not be PuTTY's fault.
-
Bug fix: PuTTY proper now ignores trailing whitespace on the command
line (this was causing problems with
"
putty @sessionname
" and similar.
-
Bug fix: the scrollbar is now reset to the bottom whenever the
scrollback is, so they don't end up out of sync any more.
-
Bug fix: both PuTTY and Pageant, when trying to load a private key
file that turned out to be the wrong format, failed to close the
file, so you couldn't delete it until the app had shut down.
-
Bug fix: some SSH2 connections were reporting "Server failed host
key check" on session startup. This was a bug in PuTTY's DSA
implementation.
-
Bug fix: the "Default Settings" pseudo-saved-session was often
missing from the saved session list. This was causing chaos, as the
rest of the code assumed it was there and so treated the first item
in the list specially. It's now back.
-
Bug fix: Plink and PSCP didn't load the Default Settings when
presented with a simple hostname. (So a default username, default
private key, etc, didn't get used.) Now they do.
-
Bug fix: terminal resize events weren't being sent in SSH2. Now they
are.
-
Bug fix: although local terminal line discipline was being turned
off correctly on receipt of
IAC WILL ECHO
, it wasn't
being turned on again on receipt of IAC WONT ECHO
. This
was breaking some BBS/MUD connections. Now fixed.
-
Bug fix: pscp's GUI interface was computing wrong percentages for
very large files (within a factor of 100 of 2^32).
-
Bug fix: the Compose key now doesn't randomly trigger and cause
keystroke loss on switching back into the PuTTY window.
-
Bug fix: the Colours panel now works again. (The RGB values weren't
updating when the selection changed in the list box.)
-
Bug fix: if you tried to use a local wildcard with PSCP (for
example, "
pscp * remotehost:
", that wildcard would
match the special directories ".
" and
"..
". It now doesn't; ".
" and
"..
" can only be specified explicitly.
These features were new in beta 0.50 (released 2000-10-16):
-
Keep-alives to prevent overzealous idle detectors in firewalls from
closing connections down. Done by sending Telnet NOP or
SSH_MSG_IGNORE, so as to avoid affecting the actual data stream.
-
In PuTTY proper, in SSH mode, you can now specify a command to be
run at the remote end. (The SSH functionality was already there,
because it was required for PSCP and Plink. All it took was a bit of
GUI work to make it accessible from PuTTY itself.)
-
You can now configure the initial window title.
-
Running "
putty -cleanup
" will now remove all files and
registry entries created by PuTTY. If you've used PuTTY on somebody
else's machine and don't want to leave any mess behind, you can run
this before deleting the PuTTY executable.
-
The Event Log now scrolls down when new events appear on it, so that
if you leave it up all the time you can watch things happen. Also,
you can select items from the Event Log and copy them to the
clipboard (should help for debugging).
-
When using NT's opaque resize feature, resizing the window doesn't
send resize events at every step of the process, but
instead sends a single one at the end. (I'd have quite liked it to
do a resize event if the drag paused for maybe a second, but
WM_TIMER doesn't seem to get through in the middle of a resize. Oh
well, this is good enough.)
-
Everyone's favourite trivial change: Shift+Ins pastes. (No
configurable option to control this: it wasn't doing anything
interesting anyway.)
-
Included two extra Makefile options:
/DAUTO_WINSOCK
makes the build process assume that <windows.h>
implicitly includes a WinSock header file, and
/DWINSOCK_TWO
makes PuTTY include
<winsock2.h>
instead of
<winsock.h>
.
-
Bug fix for a bug nobody had ever noticed: if you hit About
twice, you only get one About box (as designed), except
that if you open and close the Licence box then PuTTY forgets about
the About box, so it will then let you open another. Now the
behaviour is sane, and you can never open more than one About box.
-
Bug fix: choosing local-terminal line discipline together with SSH
password authentication now doesn't cause the password to be echoed
to the screen.
-
Bug fix: network errors now do not close the window if Close On Exit
isn't set.
-
Bug fix: fonts such as 9-point (12-pixel) Courier New, which
previously failed to display underlines, now do so.
-
Bug fix: stopped the saved-configuration-name box getting blanked
when you swap away from and back to the Connection panel.
-
Bug fix: closing the About box returns focus to the config box, and
closing the View Licence box returns focus to the About box.
-
The moment you've all been waiting for: RSA public key
authentication is here! You can enter a public-key file name in the
SSH configuration panel, and PuTTY will attempt to authenticate with
that before falling back to passwords or TIS. Key file format is the
same as "regular" ssh. Decryption of the key using a passphrase is
supported. No key generation utility is provided, yet.
-
Created Pageant, a PuTTY authentication agent. PuTTY can use RSA
keys from this for authentication, and can also forward agent
communications to the remote end. Keys can be added and removed
either locally or remotely.
-
Created Plink, a command-line version of PuTTY suitable for use as a
component of a pipe assembly (for example, Windows NT CVS can use it
as a transport).
-
SSH protocol version 2 support. This is disabled by default unless
you connect to a v2-only server. Public key authentication isn't
supported (this places PuTTY technically in violation of the SSH 2
specification).
-
Enable handling of
telnet://hostname:port/
URLs on the
command line. With this feature, you can now set PuTTY as the
default handler for Telnet URLs. If you run the Registry Editor and
set the value in
HKEY_CLASSES_ROOT\telnet\shell\open\command
to be
"\path\to\putty.exe %1
" (with the full pathname of your
PuTTY executable), you should find that clicking on telnet links in
your web browser now runs PuTTY.
-
Re-merge the two separate forks of the ssh protocol code. PuTTY and
PSCP now use the same protocol module, meaning that further SSH
developments will be easily able to affect both.
These features were new in beta 0.49 (released 2000-06-28):
-
Stop the SSH protocol code from sending zero-length
SSH_CMSG_STDIN_DATA
packets when Shift is pressed.
These appear to be harmless to Unix sshd, but cause VMS sshd to
generate an Exit signal.
-
Fix a small bug about using special port numbers in pscp; thanks to
Joris van Rantwijk.
-
Three security improvements. PuTTY now checks the CRC on incoming
packets, checks that the packet length and string length fields on
incoming
SSH_SMSG_*_DATA
packets are consistent, and
outlaws attempts to set the terminal size too big by escape
sequences (countering the xterm DoS attack shown in bugtraq #1298).
-
High-half characters (160 and above) are now supported in username
and password input.
-
Bug fix: RSA keys whose storage format used an odd number of bytes
(i.e. the bit length of the key, mod 16, was between 1 and 8
inclusive) were being handled incorrectly. An sshd with an 850-bit
server key wasn't able to accept connections from PuTTY as a result.
-
pscp now has the "
-ls
" option to get a directory
listing of a remote host. It does this by sending the command
"ls -la
<dirspec>", so it might well not work
on non-Unix ssh servers. It's mainly there to allow a useful
directory listing facility for potential GUI front ends.
-
Local line discipline is now invoked in more sensible circumstances,
and understands Telnet Erase Line. Thanks to Robert de Bath.
-
Blinking cursor support (off by default). Thanks to Robert de Bath.
-
xterm mouse tracking support, thanks to Wez Furlong.
-
Hopefully vastly improved PuTTY's behaviour under load; also we can
process incoming data even during a window move/resize. Thanks to
Robert de Bath.
-
Better handling of the bug in which underlines are drawn outside the
character cell. Now they don't get drawn at _all_, which is still
non-ideal but it's better than rampaging screen corruption. Thanks
to Robert de Bath.
-
Various terminal emulation upgrades. Thanks to Robert de Bath.
-
By popular demand, Shift-Tab now sends ESC [ Z instead of being
indistinguishable from ordinary Tab.
-
^C, ^Z and ^D now instruct the local-terminal line discipline to
send Telnet special control codes. The local line discipline can
also be enabled and disabled in mid-session without dropping data,
and it's also linked to the Telnet ECHO option. Patch due to Robert
de Bath.
-
Telnet SYNCH is now preceded by IAC, which it wasn't previously.
Patch due to Robert de Bath.
-
Fixed the long-standing bug in which CSI ? Q and CSI Q were treated
identically for most values of Q. Patch due to Robert de Bath.
-
Pressing Return in a Telnet session now sends Telnet NL instead of
Telnet CR (in raw data, that's CR-LF not CR-NUL; ^J continues to
send just LF). Unix telnetds should not notice any difference;
others might suddenly start working. Patch due to Robert de Bath.
-
Much patchery in font selection code; with any luck, mixed OEM+ANSI
line drawing mode will now be more reliable. Patch due to Robert de
Bath.
-
An attempt has been made to deal with the dropping of incoming data
between decoding and display.
-
Replaced all the algorithms that weren't already my own code. The
DES, MD5, SHA, and CRC32 implementations used in PuTTY are now all
written by me and distributable under the PuTTY licence, instead of
being borrowed from a variety of other places. Better still, there
are comments: the DES implementation contains a careful
description of how the algorithm given in the spec was transformed
into the optimised algorithm in the code, and the CRC32
implementation explains what a CRC is and how the table lookup
algorithm works.
-
Scrollback behaviour has changed. ANSI Delete Line at the top of the
screen now inserts the lines into the scrollback (previously, only
genuine scroll-up would do this). However, the scrollback is never
touched by scroll operations in the alternate screen.
-
The response to Ctrl-E is now "PuTTY" instead of the xtermalike
sequence it was previously.
-
The command line option
-log
will now cause all data
received from the remote host to be logged to a file
putty.log
.
-
PSCP now doesn't try to "recurse" into the directories
.
and ..
like it did before.
-
Add keyboard accelerators on the System menu.
-
"Warn On Close" no longer applies to inactive windows: you can close
one of those without complaint.
-
There is now a system to generate Borland and Cygnus makefiles from
the master makefile, so that people can build PuTTY with other
compilers but I still only have to maintain one makefile.
These features were new in beta 0.48 (released 1999-11-18):
-
Cyrillic support: optional KOI8 to Win1251 translation, an internal
version of the Cyrillic key map for machines that don't have it
installed systemwide, and support for selecting a character set in
the font configuration. All thanks to Oleg Panashchenko.
-
Support for the TIS authentication option (to the client, this looks
much like a form of password authentication, so there's no local
state involved).
-
SSH mode now shows an Event Log of all the initial protocol setup,
to match the Telnet negotiation log.
-
Alt-F4 as "close window" can be configured off. Alt-Space as System
menu is now an option and can be configured on, although it doesn't
work very well (you have to press Down after hitting Alt-Space).
-
NetHack keypad mode mapping (shift-with-)numeric-keypad to
(shift-with-)hjklyubn. Unfortunately Shift only works when NumLock
is off, which is a bit odd.
-
An implementation of the scp client, as a separate binary.
Many thanks to Joris van Rantwijk.
-
Change the default title bar format to "host.name - PuTTY" rather
than "PuTTY: host.name", so as to be more useful in the taskbar.
-
Warning box "are you sure you want to disconnect?" on hitting the
Close button or Alt-F4 or whatever.
-
Telnet mode was reported to drop char-255, presumably due to
mishandling IAC IAC. Fix due to Robert de Bath.
-
Add some keyboard accelerators in the configuration box.
-
A raw-TCP connection option, alongside Telnet and SSH. Thanks to
Mark Baker.
-
A local line-editing line discipline, which can be layered over any
of the back end connection options. Most usefully, this can be used
to make the raw-TCP back end suitable for talking to finger, SMTP,
POP, NNTP etc. servers.
-
A small tool-tip that shows the size of the terminal window in
character cells while it's being resized, so you can drag it out to
a precise size. Many thanks to John Sullivan, who achieved this
despite other people supporting my belief that it was impossible.
-
Single DES as an SSH encryption option, as well as triple DES.
Thanks to Murphy Lam.
-
Support for using ssh by default: a
-ssh
command line
option, a compile-time definition SSH_DEFAULT
, and the
ability to honour port and protocol (and host!) settings in the
"Default Settings" part of the registry if they've been manually
inserted.
-
Made stored sessions available as a submenu from the system menu.
Thanks to Owen Dunn.
-
Minimal Win32s compatibility, as a compile-time option (so
it's not in the snapshot binaries but is in the snapshot source
releases). The configuration box apparently doesn't work, but the
actual sessions will run OK. Thanks to Owen Dunn.
This feature was new in beta 0.47 (released 1999-08-27):
-
Fixed a potential security flaw in the random number generator.
These features were new in beta 0.46 (released 1999-07-09):
- Fixed a bug causing hangs when an SSH window was resized after
the connection was closed. I'd never spotted it, because I never use
Close Window On Exit...
- Default mouse pointer inside the PuTTY window is now an I-beam.
- Support for AltGr. As it turns out, it is possible to do
this without also changing the behaviour of Ctrl/LeftAlt. Many
thanks to <andre@via.ecp.fr> for inventing a way to achieve
this.
-
Resource/memory leaks are apparently fixed. I'm going to assume they
are completely fixed, unless someone mails me to suggest
otherwise.
-
Fixed the bug in the configuration box whereby double-clicking on a
saved session leaked the double click through to the window below.
-
ESC[?9r was being interpreted just like ESC[9r, with disastrous
results (the former turns off mouse click reporting, which PuTTY
doesn't support yet anyway; the latter munges the scroll region
horribly). Fixed, in a temporary sort of way.
-
Added Blowfish encryption as an alternative to triple-DES.
These features were new in beta 0.45 (released 1999-01-22):
-
Fix the GPF on maximise-then-restore.
-
Fix the delayed update of the window title when in
always-use-window-title mode and iconic.
-
Employ SetCapture() to allow drag-selects to continue to work when
the pointer drifts out of the window.
-
Some platforms apparently define the identifier "environ" as a
macro; stop using it inside PuTTY.
-
Add an option to ask SSH not to allocate a pty.
-
Add a terminal setting to cause LF to imply CR (useful with the
above).
Comments to
putty@projects.tartarus.org
(last modified on Sun, 12 May 2002, 09:37:03 GMT)