Jacob's last-minute testing found a couple of trivial bugs in
[u/mdw/putty] / doc / faq.but
CommitLineData
a4f1d55c 1\versionid $Id: faq.but,v 1.56 2004/02/10 19:32:08 simon Exp $
8f1529bc 2
ee46ef84 3\A{faq} PuTTY FAQ
4
5This FAQ is published on the PuTTY web site, and also provided as an
6appendix in the manual.
7
64fb6efd 8\H{faq-intro} Introduction
9
10\S{faq-what} What is PuTTY?
11
12PuTTY is a client program for the SSH, Telnet and Rlogin network
13protocols.
14
15These protocols are all used to run a remote session on a computer,
16over a network. PuTTY implements the client end of that session: the
17end at which the session is displayed, rather than the end at which
18it runs.
19
20In really simple terms: you run PuTTY on a Windows machine, and tell
21it to connect to (for example) a Unix machine. PuTTY opens a window.
22Then, anything you type into that window is sent straight to the
23Unix machine, and everything the Unix machine sends back is
24displayed in the window. So you can work on the Unix machine as if
25you were sitting at its console, while actually sitting somewhere
26else.
27
ee46ef84 28\H{faq-support} Features supported in PuTTY
29
30In general, if you want to know if PuTTY supports a particular
31feature, you should look for it on the
32\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/}{PuTTY web site}.
33In particular:
34
35\b try the
36\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html}{changes
37page}, and see if you can find the feature on there. If a feature is
38listed there, it's been implemented. If it's listed as a change made
39\e{since} the latest version, it should be available in the
40development snapshots, in which case testing will be very welcome.
41
42\b try the
ebe9a956 43\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/}{Wishlist
ee46ef84 44page}, and see if you can find the feature there. If it's on there,
b21091fb 45and not in the \q{Recently fixed} section, it probably \e{hasn't} been
46implemented.
ee46ef84 47
a1d2976b 48\S{faq-ssh2}{Question} Does PuTTY support SSH v2?
ee46ef84 49
50Yes. SSH v2 support has been available in PuTTY since version 0.50.
ee46ef84 51
32c37ecd 52Public key authentication (both RSA and DSA) in SSH v2 is new in
53version 0.52.
ee46ef84 54
a1d2976b 55\S{faq-ssh2-keyfmt}{Question} Does PuTTY support reading OpenSSH or
ee46ef84 56\cw{ssh.com} SSHv2 private key files?
57
a58b605b 58PuTTY doesn't support this natively, but as of 0.53
59PuTTYgen can convert both OpenSSH and \cw{ssh.com} private key
60files into PuTTY's format.
ee46ef84 61
a1d2976b 62\S{faq-ssh1}{Question} Does PuTTY support SSH v1?
ee46ef84 63
64Yes. SSH 1 support has always been available in PuTTY.
65
a1d2976b 66\S{faq-localecho}{Question} Does PuTTY support local echo?
ee46ef84 67
32c37ecd 68Yes. Version 0.52 has proper support for local echo.
ee46ef84 69
32c37ecd 70In version 0.51 and before, local echo could not be separated from
ee46ef84 71local line editing (where you type a line of text locally, and it is
72not sent to the server until you press Return, so you have the
73chance to edit it and correct mistakes \e{before} the server sees
32c37ecd 74it). New in version 0.52, local echo and local line editing are
75separate options, and by default PuTTY will try to determine
76automatically whether to enable them or not, based on which protocol
77you have selected and also based on hints from the server. If you
78have a problem with PuTTY's default choice, you can force each
79option to be enabled or disabled as you choose. The controls are in
80the Terminal panel, in the section marked \q{Line discipline
81options}.
ee46ef84 82
a1d2976b 83\S{faq-disksettings}{Question} Does PuTTY support storing its
70706890 84settings in a disk file?
ee46ef84 85
86Not at present, although \k{config-file} in the documentation gives
87a method of achieving the same effect.
88
a1d2976b 89\S{faq-fullscreen}{Question} Does PuTTY support full-screen mode,
70706890 90like a DOS box?
ee46ef84 91
32c37ecd 92Yes; this is a new feature in version 0.52.
ee46ef84 93
babac7bd 94\S{faq-password-remember}{Question} Does PuTTY have the ability to
95remember my password so I don't have to type it every time?
ee46ef84 96
97No, it doesn't.
98
99Remembering your password is a bad plan for obvious security
100reasons: anyone who gains access to your machine while you're away
101from your desk can find out the remembered password, and use it,
102abuse it or change it.
103
104In addition, it's not even \e{possible} for PuTTY to automatically
105send your password in a Telnet session, because Telnet doesn't give
106the client software any indication of which part of the login
107process is the password prompt. PuTTY would have to guess, by
108looking for words like \q{password} in the session data; and if your
109login program is written in something other than English, this won't
110work.
111
112In SSH, remembering your password would be possible in theory, but
113there doesn't seem to be much point since SSH supports public key
114authentication, which is more flexible and more secure. See
115\k{pubkey} in the documentation for a full discussion of public key
116authentication.
117
a1d2976b 118\S{faq-hostkeys}{Question} Is there an option to turn off the
70706890 119annoying host key prompts?
cad566a9 120
121No, there isn't. And there won't be. Even if you write it yourself
122and send us the patch, we won't accept it.
123
124Those annoying host key prompts are the \e{whole point} of SSH.
125Without them, all the cryptographic technology SSH uses to secure
126your session is doing nothing more than making an attacker's job
127slightly harder; instead of sitting between you and the server with
128a packet sniffer, the attacker must actually subvert a router and
129start modifying the packets going back and forth. But that's not all
130that much harder than just sniffing; and without host key checking,
131it will go completely undetected by client or server.
132
133Host key checking is your guarantee that the encryption you put on
134your data at the client end is the \e{same} encryption taken off the
135data at the server end; it's your guarantee that it hasn't been
136removed and replaced somewhere on the way. Host key checking makes
137the attacker's job \e{astronomically} hard, compared to packet
138sniffing, and even compared to subverting a router. Instead of
139applying a little intelligence and keeping an eye on Bugtraq, the
140attacker must now perform a brute-force attack against at least one
141military-strength cipher. That insignificant host key prompt really
142does make \e{that} much difference.
143
144If you're having a specific problem with host key checking - perhaps
145you want an automated batch job to make use of PSCP or Plink, and
146the interactive host key prompt is hanging the batch process - then
147the right way to fix it is to add the correct host key to the
148Registry in advance. That way, you retain the \e{important} feature
149of host key checking: the right key will be accepted and the wrong
150ones will not. Adding an option to turn host key checking off
151completely is the wrong solution and we will not do it.
152
2981454b 153If you have host keys available in the common \c{known_hosts} format,
154we have a script called
155\W{http://cvs.tartarus.org/putty/contrib/kh2reg.py}\c{kh2reg.py}
156to convert them to a Windows .REG file, which can be installed ahead of
157time by double-clicking or using \c{REGEDIT}.
158
a1d2976b 159\S{faq-server}{Question} Will you write an SSH server for the PuTTY
70706890 160suite, to go with the client?
ae915483 161
162No. The only reason we might want to would be if we could easily
163re-use existing code and significantly cut down the effort. We don't
164believe this is the case; there just isn't enough common ground
165between an SSH client and server to make it worthwhile.
166
167If someone else wants to use bits of PuTTY in the process of writing
168a Windows SSH server, they'd be perfectly welcome to of course, but
169I really can't see it being a lot less effort for us to do that than
170it would be for us to write a server from the ground up. We don't
171have time, and we don't have motivation. The code is available if
172anyone else wants to try it.
173
67325335 174\S{faq-pscp-ascii}{Question} Can PSCP or PSFTP transfer files in
175ASCII mode?
176
d2df61b3 177Unfortunately not.
67325335 178
d2df61b3 179Until recently, this was a limitation of the file transfer protocols:
180the SCP and SFTP protocols had no notion of transferring a file in
181anything other than binary mode. (This is still true of SCP.)
182
183The current draft protocol spec of SFTP proposes a means of
184implementing ASCII transfer. At some point PSCP/PSFTP may implement
185this proposal.
67325335 186
ee46ef84 187\H{faq-ports} Ports to other operating systems
188
189The eventual goal is for PuTTY to be a multi-platform program, able
b18bcea3 190to run on at least Windows, Mac OS and Unix.
ee46ef84 191
192Porting will become easier once PuTTY has a generalised porting
193layer, drawing a clear line between platform-dependent and
59adac11 194platform-independent code. The general intention was for this
195porting layer to evolve naturally as part of the process of doing
5bcf5d50 196the first port; a Unix port has now been released and the plan
197seems to be working so far.
ee46ef84 198
aff5267a 199\S{faq-ports-general}{Question} What ports of PuTTY exist?
200
5bcf5d50 201Currently, release versions of PuTTY tools only run on full Win32
202systems and Unix. \q{Win32} includes Windows 95, 98, and ME, and it
203includes Windows NT, Windows 2000 and Windows XP.
204
205In the development code, a partial port to the Mac OS (see
206\k{faq-mac-port}) is under way.
aff5267a 207
59adac11 208Currently PuTTY does \e{not} run on Windows CE (see \k{faq-wince}),
209and it does not quite run on the Win32s environment under Windows
2103.1 (see \k{faq-win31}).
aff5267a 211
59adac11 212We do not have release-quality ports for any other systems at the
5bcf5d50 213present time. If anyone told you we had an EPOC port, or an iPaq port,
59adac11 214or any other port of PuTTY, they were mistaken. We don't.
215
5bcf5d50 216\S{faq-unix}{Question} Is there a port to Unix?
217
a4f1d55c 218As of 0.54 (out soon), there are Unix ports of most of the
219traditional PuTTY tools, and also one entirely new application.
59adac11 220
5bcf5d50 221If you look at the source release, you should find a \c{unix}
222subdirectory containing \c{Makefile.gtk}, which should build you Unix
223ports of Plink, PuTTY itself, PuTTYgen, PSCP, PSFTP, and also
224\c{pterm} - an \cw{xterm}-type program which supports the same
225terminal emulation as PuTTY. We do not yet have a Unix port of
6bbb19af 226Pageant.
aff5267a 227
5bcf5d50 228If you don't have Gtk, you should still be able to build the
229command-line tools.
230
231Note that Unix PuTTY has mostly only been tested on Linux so far;
232portability problems such as BSD-style ptys or different header file
233requirements are expected.
234
70cd2027 235\S{faq-wince}{Question} Will there be a port to Windows CE or PocketPC?
ee46ef84 236
4f2fd423 237It's currently being worked on, but it's only in its early stages yet,
238and certainly isn't yet useful. PuTTY on portable devices would
239clearly be a useful thing, so in the long term I hope it can be
240brought up to release quality.
ee46ef84 241
f82f00d0 242\S{faq-win31}{Question} Is there a port to Windows 3.1?
243
244PuTTY is a 32-bit application from the ground up, so it won't run on
245Windows 3.1 as a native 16-bit program; and it would be \e{very}
246hard to port it to do so, because of Windows 3.1's vile memory
247allocation mechanisms.
248
249However, it is possible in theory to compile the existing PuTTY
250source in such a way that it will run under Win32s (an extension to
251Windows 3.1 to let you run 32-bit programs). In order to do this
252you'll need the right kind of C compiler - modern versions of Visual
253C at least have stopped being backwards compatible to Win32s. Also,
254the last time we tried this it didn't work very well.
255
256If you're interested in running PuTTY under Windows 3.1, help and
257testing in this area would be very welcome!
258
babac7bd 259\S{faq-mac-port}{Question} Will there be a port to the Mac?
ee46ef84 260
4f2fd423 261There is a port to the Mac OS in progress. It's just about usable, but
262has an awful lot of gaps and rough edges that will need cleaning up
263before release.
ee46ef84 264
a1d2976b 265\S{faq-epoc}{Question} Will there be a port to EPOC?
ee46ef84 266
267I hope so, but given that ports aren't really progressing very fast
268even on systems the developers \e{do} already know how to program
269for, it might be a long time before any of us get round to learning
270a new system and doing the port for that.
271
4f2fd423 272However, some of the work has been done by other people, and a beta
273port of PuTTY for the Nokia 9200 Communicator series is available
274from \W{http://www.s2.org/putty/}\cw{http://www.s2.org/putty/}
275
ee46ef84 276\H{faq-embedding} Embedding PuTTY in other programs
277
a1d2976b 278\S{faq-dll}{Question} Is the SSH or Telnet code available as a DLL?
ee46ef84 279
280No, it isn't. It would take a reasonable amount of rewriting for
281this to be possible, and since the PuTTY project itself doesn't
282believe in DLLs (they make installation more error-prone) none of us
283has taken the time to do it.
284
285Most of the code cleanup work would be a good thing to happen in
286general, so if anyone feels like helping, we wouldn't say no.
287
a1d2976b 288\S{faq-vb}{Question} Is the SSH or Telnet code available as a Visual
70706890 289Basic component?
ee46ef84 290
291No, it isn't. None of the PuTTY team uses Visual Basic, and none of
292us has any particular need to make SSH connections from a Visual
293Basic application. In addition, all the preliminary work to turn it
294into a DLL would be necessary first; and furthermore, we don't even
295know how to write VB components.
296
297If someone offers to do some of this work for us, we might consider
298it, but unless that happens I can't see VB integration being
299anywhere other than the very bottom of our priority list.
300
a1d2976b 301\S{faq-ipc}{Question} How can I use PuTTY to make an SSH connection
70706890 302from within another program?
ee46ef84 303
304Probably your best bet is to use Plink, the command-line connection
305tool. If you can start Plink as a second Windows process, and
306arrange for your primary process to be able to send data to the
307Plink process, and receive data from it, through pipes, then you
308should be able to make SSH connections from your program.
309
310This is what CVS for Windows does, for example.
311
312\H{faq-details} Details of PuTTY's operation
313
a1d2976b 314\S{faq-term}{Question} What terminal type does PuTTY use?
ee46ef84 315
316For most purposes, PuTTY can be considered to be an \cw{xterm}
32c37ecd 317terminal.
ee46ef84 318
319PuTTY also supports some terminal control sequences not supported by
320the real \cw{xterm}: notably the Linux console sequences that
321reconfigure the colour palette, and the title bar control sequences
322used by \cw{DECterm} (which are different from the \cw{xterm} ones;
323PuTTY supports both).
324
325By default, PuTTY announces its terminal type to the server as
326\c{xterm}. If you have a problem with this, you can reconfigure it
327to say something else; \c{vt220} might help if you have trouble.
328
a1d2976b 329\S{faq-settings}{Question} Where does PuTTY store its data?
ee46ef84 330
331PuTTY stores most of its data (saved sessions, SSH host keys) in the
332Registry. The precise location is
333
334\c HKEY_CURRENT_USER\Software\SimonTatham\PuTTY
335
336and within that area, saved sessions are stored under \c{Sessions}
337while host keys are stored under \c{SshHostKeys}.
338
339PuTTY also requires a random number seed file, to improve the
340unpredictability of randomly chosen data needed as part of the SSH
341cryptography. This is stored by default in your Windows home
342directory (\c{%HOMEDRIVE%\\%HOMEPATH%}), or in the actual Windows
343directory (such as \c{C:\\WINDOWS}) if the home directory doesn't
344exist, for example if you're using Win95. If you want to change the
345location of the random number seed file, you can put your chosen
346pathname in the Registry, at
347
348\c HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\RandSeedFile
349
350\H{faq-howto} HOWTO questions
351
a1d2976b 352\S{faq-startmax}{Question} How can I make PuTTY start up maximised?
ee46ef84 353
354Create a Windows shortcut to start PuTTY from, and set it as \q{Run
355Maximized}.
356
a1d2976b 357\S{faq-startsess}{Question} How can I create a Windows shortcut to
70706890 358start a particular saved session directly?
ee46ef84 359
360To run a PuTTY session saved under the name \q{\cw{mysession}},
361create a Windows shortcut that invokes PuTTY with a command line
362like
363
a58b605b 364\c \path\name\to\putty.exe -load mysession
365
366(Note: prior to 0.53, the syntax was \c{@session}. This is now
367deprecated and may be removed at some point.)
ee46ef84 368
a1d2976b 369\S{faq-startssh}{Question} How can I start an SSH session straight
70706890 370from the command line?
ee46ef84 371
372Use the command line \c{putty -ssh host.name}. Alternatively, create
373a saved session that specifies the SSH protocol, and start the saved
374session as shown in \k{faq-startsess}.
375
a1d2976b 376\S{faq-cutpaste}{Question} How do I copy and paste between PuTTY and
70706890 377other Windows applications?
ee46ef84 378
379Copy and paste works similarly to the X Window System. You use the
380left mouse button to select text in the PuTTY window. The act of
381selection \e{automatically} copies the text to the clipboard: there
382is no need to press Ctrl-Ins or Ctrl-C or anything else. In fact,
383pressing Ctrl-C will send a Ctrl-C character to the other end of
384your connection (just like it does the rest of the time), which may
385have unpleasant effects. The \e{only} thing you need to do, to copy
386text to the clipboard, is to select it.
387
388To paste the clipboard contents into a PuTTY window, by default you
389click the right mouse button. If you have a three-button mouse and
390are used to X applications, you can configure pasting to be done by
391the middle button instead, but this is not the default because most
392Windows users don't have a middle button at all.
393
394You can also paste by pressing Shift-Ins.
395
a1d2976b 396\S{faq-tunnels}{Question} How do I use X forwarding and port
70706890 397forwarding? I can't find the Tunnels panel.
f2003e32 398
32c37ecd 399This is a new feature in version 0.52. You should upgrade.
f2003e32 400
a1d2976b 401\S{faq-options}{Question} How do I use all PuTTY's features (public
a58b605b 402keys, proxying, cipher selection, etc.) in PSCP, PSFTP and Plink?
403
404Most major features (e.g., public keys, port forwarding) are available
405through command line options. See the documentation.
72be5b5e 406
a58b605b 407Not all features are accessible from the command line yet, although
408we'd like to fix this. In the meantime, you can use most of
72be5b5e 409PuTTY's features if you create a PuTTY saved session, and then use
410the name of the saved session on the command line in place of a
411hostname. This works for PSCP, PSFTP and Plink (but don't expect
412port forwarding in the file transfer applications!).
f2003e32 413
a1d2976b 414\S{faq-pscp}{Question} How do I use PSCP.EXE? When I double-click it
70706890 415gives me a command prompt window which then closes instantly.
ee46ef84 416
417PSCP is a command-line application, not a GUI application. If you
418run it without arguments, it will simply print a help message and
419terminate.
420
421To use PSCP properly, run it from a Command Prompt window. See
422\k{pscp} in the documentation for more details.
423
a1d2976b 424\S{faq-pscp-spaces}{Question} How do I use PSCP to copy a file whose
70706890 425name has spaces in?
ee46ef84 426
427If PSCP is using the traditional SCP protocol, this is confusing. If
428you're specifying a file at the local end, you just use one set of
429quotes as you would normally do:
430
431\c pscp "local filename with spaces" user@host:
432\c pscp user@host:myfile "local filename with spaces"
433
434But if the filename you're specifying is on the \e{remote} side, you
435have to use backslashes and two sets of quotes:
436
437\c pscp user@host:"\"remote filename with spaces\"" local_filename
438\c pscp local_filename user@host:"\"remote filename with spaces\""
439
440Worse still, in a remote-to-local copy you have to specify the local
441file name explicitly, otherwise PSCP will complain that they don't
442match (unless you specified the \c{-unsafe} option). The following
443command will give an error message:
444
445\c c:\>pscp user@host:"\"oo er\"" .
e9cee352 446\c warning: remote host tried to write to a file called 'oo er'
447\c when we requested a file called '"oo er"'.
ee46ef84 448
e9cee352 449Instead, you need to specify the local file name in full:
450
451\c c:\>pscp user@host:"\"oo er\"" "oo er"
452
ee46ef84 453If PSCP is using the newer SFTP protocol, none of this is a problem,
454and all filenames with spaces in are specified using a single pair
455of quotes in the obvious way:
456
457\c pscp "local file" user@host:
458\c pscp user@host:"remote file" .
459
460\H{faq-trouble} Troubleshooting
461
babac7bd 462\S{faq-incorrect-mac}{Question} Why do I see \q{Incorrect MAC
463received on packet}?
ee46ef84 464
f348999d 465One possible cause of this that used to be common is a bug in old
466SSH 2 servers distributed by \cw{ssh.com}. (This is not the only
467possible cause; see \k{errors-crc} in the documentation.)
468Version 2.3.0 and below of their SSH 2 server
ee46ef84 469constructs Message Authentication Codes in the wrong way, and
470expects the client to construct them in the same wrong way. PuTTY
471constructs the MACs correctly by default, and hence these old
472servers will fail to work with it.
473
32c37ecd 474If you are using PuTTY version 0.52 or better, this should work
475automatically: PuTTY should detect the buggy servers from their
476version number announcement, and automatically start to construct
477its MACs in the same incorrect manner as they do, so it will be able
478to work with them.
ee46ef84 479
32c37ecd 480If you are using PuTTY version 0.51 or below, you can enable the
481workaround by going to the SSH panel and ticking the box labelled
482\q{Imitate SSH 2 MAC bug}. It's possible that you might have to do
483this with 0.52 as well, if a buggy server exists that PuTTY doesn't
484know about.
ee46ef84 485
b7e2c163 486In this context MAC stands for Message Authentication Code. It's a
487cryptographic term, and it has nothing at all to do with Ethernet
488MAC (Media Access Control) addresses.
489
67325335 490\S{faq-pscp-protocol}{Question} Why do I see \q{Fatal: Protocol
491error: Expected control record} in PSCP?
492
493This happens because PSCP was expecting to see data from the server
494that was part of the PSCP protocol exchange, and instead it saw data
495that it couldn't make any sense of at all.
496
497This almost always happens because the startup scripts in your
498account on the server machine are generating output. This is
499impossible for PSCP, or any other SCP client, to work around. You
500should never use startup files (\c{.bashrc}, \c{.cshrc} and so on)
501which generate output in non-interactive sessions.
502
503This is not actually a PuTTY problem. If PSCP fails in this way,
504then all other SCP clients are likely to fail in exactly the same
505way. The problem is at the server end.
506
a1d2976b 507\S{faq-colours}{Question} I clicked on a colour in the Colours
70706890 508panel, and the colour didn't change in my terminal.
ee46ef84 509
510That isn't how you're supposed to use the Colours panel.
511
512During the course of a session, PuTTY potentially uses \e{all} the
513colours listed in the Colours panel. It's not a question of using
514only one of them and you choosing which one; PuTTY will use them
515\e{all}. The purpose of the Colours panel is to let you adjust the
516appearance of all the colours. So to change the colour of the
517cursor, for example, you would select \q{Cursor Colour}, press the
518\q{Modify} button, and select a new colour from the dialog box that
519appeared. Similarly, if you want your session to appear in green,
520you should select \q{Default Foreground} and press \q{Modify}.
521Clicking on \q{ANSI Green} won't turn your session green; it will
522only allow you to adjust the \e{shade} of green used when PuTTY is
523instructed by the server to display green text.
524
a1d2976b 525\S{faq-winsock2}{Question} Plink on Windows 95 says it can't find
70706890 526\cw{WS2_32.DLL}.
ee46ef84 527
528Plink requires the extended Windows network library, WinSock version
5292. This is installed as standard on Windows 98 and above, and on
530Windows NT, and even on later versions of Windows 95; but early
531Win95 installations don't have it.
532
533In order to use Plink on these systems, you will need to download
534the
535\W{http://www.microsoft.com/windows95/downloads/contents/wuadmintools/s_wunetworkingtools/w95sockets2/}{WinSock 2 upgrade}:
536
537\c http://www.microsoft.com/windows95/downloads/contents/wuadmintools/
538\c s_wunetworkingtools/w95sockets2/
539
a1d2976b 540\S{faq-rekey}{Question} My PuTTY sessions close after an hour and
70706890 541tell me \q{Server failed host key check}.
ee46ef84 542
543This is a bug in all versions of PuTTY up to and including 0.51. SSH
544v2 servers from \cw{ssh.com} will require the key exchange to be
545repeated one hour after the start of the connection, and PuTTY will
546get this wrong.
547
a58b605b 548Upgrade to version 0.52 or better and the problem should go away.
ee46ef84 549
a1d2976b 550\S{faq-outofmem}{Question} After trying to establish an SSH 2
70706890 551connection, PuTTY says \q{Out of memory} and dies.
ee46ef84 552
553If this happens just while the connection is starting up, this often
554indicates that for some reason the client and server have failed to
555establish a session encryption key. Somehow, they have performed
556calculations that should have given each of them the same key, but
557have ended up with different keys; so data encrypted by one and
558decrypted by the other looks like random garbage.
559
560This causes an \q{out of memory} error because the first encrypted
561data PuTTY expects to see is the length of an SSH message. Normally
562this will be something well under 100 bytes. If the decryption has
563failed, PuTTY will see a completely random length in the region of
564two \e{gigabytes}, and will try to allocate enough memory to store
565this non-existent message. This will immediately lead to it thinking
566it doesn't have enough memory, and panicking.
567
568If this happens to you, it is quite likely to still be a PuTTY bug
569and you should report it (although it might be a bug in your SSH
570server instead); but it doesn't necessarily mean you've actually run
571out of memory.
572
9accb45d 573\S{faq-outofmem2}{Question} When attempting a file transfer, either
574PSCP or PSFTP says \q{Out of memory} and dies.
575
576This is almost always caused by your login scripts on the server
577generating output. PSCP or PSFTP will receive that output when they
578were expecting to see the start of a file transfer protocol, and
579they will attempt to interpret the output as file-transfer protocol.
580This will usually lead to an \q{out of memory} error for much the
581same reasons as given in \k{faq-outofmem}.
582
583This is a setup problem in your account on your server, \e{not} a
584PSCP/PSFTP bug. Your login scripts should \e{never} generate output
585during non-interactive sessions; secure file transfer is not the
586only form of remote access that will break if they do.
587
588On Unix, a simple fix is to ensure that all the parts of your login
589script that might generate output are in \c{.profile} (if you use a
590Bourne shell derivative) or \c{.login} (if you use a C shell).
591Putting them in more general files such as \c{.bashrc} or \c{.cshrc}
592is liable to lead to problems.
593
7b24f677 594\S{faq-psftp-slow}{Question} PSFTP transfers files much slower than PSCP.
9accb45d 595
596We believe this is because the SFTP and SSH2 protocols are less
597efficient at bulk data transfer than SCP and SSH1, because every
598block of data transferred requires an acknowledgment from the far
599end. It would in theory be possible to queue several blocks of data
600to get round this speed problem, but as yet we haven't done the
601coding. If you really want this fixed, feel free to offer to help.
602
a1d2976b 603\S{faq-bce}{Question} When I run full-colour applications, I see
70706890 604areas of black space where colour ought to be.
f1453e5c 605
606You almost certainly need to enable the \q{Use background colour to
607erase screen} setting in the Terminal panel. Note that if you do
5bcf5d50 608this in mid-session, it may not take effect until you reset the
f1453e5c 609terminal (see \k{faq-resetterm}).
610
a1d2976b 611\S{faq-resetterm}{Question} When I change some terminal settings,
70706890 612nothing happens.
f1453e5c 613
614Some of the terminal options (notably Auto Wrap and
615background-colour screen erase) actually represent the \e{default}
616setting, rather than the currently active setting. The server can
617send sequences that modify these options in mid-session, but when
618the terminal is reset (by server action, or by you choosing \q{Reset
619Terminal} from the System menu) the defaults are restored.
620
5bcf5d50 621In versions 0.53b and prior, if you change one of these options in
622the middle of a session, you will find that the change does not
623immediately take effect. It will only take effect once you reset
624the terminal.
625
a4f1d55c 626In version 0.54 (out soon), the behaviour has changed - changes to
627these settings take effect immediately.
f1453e5c 628
a1d2976b 629\S{faq-altgr}{Question} I can't type characters that require the
70706890 630AltGr key.
ee46ef84 631
32c37ecd 632In PuTTY version 0.51, the AltGr key was broken. Upgrade to version
a58b605b 6330.52 or better.
ee46ef84 634
a1d2976b 635\S{faq-idleout}{Question} My PuTTY sessions unexpectedly close after
70706890 636they are idle for a while.
ee46ef84 637
638Some types of firewall, and almost any router doing Network Address
639Translation (NAT, also known as IP masquerading), will forget about
640a connection through them if the connection does nothing for too
641long. This will cause the connection to be rudely cut off when
642contact is resumed.
643
644You can try to combat this by telling PuTTY to send \e{keepalives}:
645packets of data which have no effect on the actual session, but
646which reassure the router or firewall that the network connection is
647still active and worth remembering about.
648
649Keepalives don't solve everything, unfortunately; although they
650cause greater robustness against this sort of router, they can also
651cause a \e{loss} of robustness against network dropouts. See
652\k{config-keepalive} in the documentation for more discussion of
653this.
654
a1d2976b 655\S{faq-timeout}{Question} PuTTY's network connections time out too
70706890 656quickly when network connectivity is temporarily lost.
ee46ef84 657
658This is a Windows problem, not a PuTTY problem. The timeout value
659can't be set on per application or per session basis. To increase
660the TCP timeout globally, you need to tinker with the Registry.
661
662On Windows 95, 98 or ME, the registry key you need to change is
663
664\c HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\
665\c MSTCP\MaxDataRetries
666
667(it must be of type DWORD in Win95, or String in Win98/ME).
668
669On Windows NT or 2000, the registry key is
670
671\c HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\
672\c Parameters\TcpMaxDataRetransmissions
673
674and it must be of type DWORD.
675
676Set the key's value to something like 10. This will cause Windows to
677try harder to keep connections alive instead of abandoning them.
678
a1d2976b 679\S{faq-puttyputty}{Question} When I \cw{cat} a binary file, I get
ee46ef84 680`PuTTYPuTTYPuTTY' on my command line.
681
a5a6cb30 682Don't do that, then.
ee46ef84 683
684This is designed behaviour; when PuTTY receives the character
685Control-E from the remote server, it interprets it as a request to
686identify itself, and so it sends back the string \q{\cw{PuTTY}} as
687if that string had been entered at the keyboard. Control-E should
688only be sent by programs that are prepared to deal with the
689response. Writing a binary file to your terminal is likely to output
690many Control-E characters, and cause this behaviour. Don't do it.
691It's a bad plan.
692
a5a6cb30 693To mitigate the effects, you could configure the answerback string
694to be empty (see \k{config-answerback}); but writing binary files to
695your terminal is likely to cause various other unpleasant behaviour,
696so this is only a small remedy.
697
babac7bd 698\S{faq-wintitle}{Question} When I \cw{cat} a binary file, my window
699title changes to a nonsense string.
ee46ef84 700
a5a6cb30 701Don't do that, then.
ee46ef84 702
703It is designed behaviour that PuTTY should have the ability to
704adjust the window title on instructions from the server. Normally
705the control sequence that does this should only be sent
706deliberately, by programs that know what they are doing and intend
707to put meaningful text in the window title. Writing a binary file to
708your terminal runs the risk of sending the same control sequence by
709accident, and cause unexpected changes in the window title. Don't do
710it.
711
babac7bd 712\S{faq-password-fails}{Question} My keyboard stops working once
713PuTTY displays the password prompt.
59c1f1f6 714
715No, it doesn't. PuTTY just doesn't display the password you type, so
716that someone looking at your screen can't see what it is.
717
718Unlike the Windows login prompts, PuTTY doesn't display the password
719as a row of asterisks either. This is so that someone looking at
720your screen can't even tell how \e{long} your password is, which
721might be valuable information.
722
b5bee048 723\S{faq-keyboard}{Question} One or more function keys don't do what I
724expected in a server-side application.
725
726If you've already tried all the relevant options in the PuTTY
727Keyboard panel, you may need to mail the PuTTY maintainers and ask.
728
729It is \e{not} usually helpful just to tell us which application,
730which server operating system, and which key isn't working; in order
731to replicate the problem we would need to have a copy of every
732operating system, and every application, that anyone has ever
733complained about.
734
735PuTTY responds to function key presses by sending a sequence of
736control characters to the server. If a function key isn't doing what
737you expect, it's likely that the character sequence your application
738is expecting to receive is not the same as the one PuTTY is sending.
739Therefore what we really need to know is \e{what} sequence the
740application is expecting.
741
742The simplest way to investigate this is to find some other terminal
743environment, in which that function key \e{does} work; and then
744investigate what sequence the function key is sending in that
745situation. One reasonably easy way to do this on a Unix system is to
746type the command \c{cat}, and then press the function key. This is
747likely to produce output of the form \c{^[[11~}. You can also do
748this in PuTTY, to find out what sequence the function key is
749producing in that. Then you can mail the PuTTY maintainers and tell
750us \q{I wanted the F1 key to send \c{^[[11~}, but instead it's
751sending \c{^[OP}, can this be done?}, or something similar.
752
753You should still read the
754\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/feedback.html}{Feedback
755page} on the PuTTY website (also provided as \k{feedback} in the
756manual), and follow the guidelines contained in that.
757
941d39e2 758\S{faq-openssh-bad-openssl}{Question} Since my SSH server was upgraded
759to OpenSSH 3.1p1/3.4p1, I can no longer connect with PuTTY.
1d2a9c9c 760
761There is a known problem when OpenSSH has been built against an
762incorrect version of OpenSSL; the quick workaround is to configure
763PuTTY to use SSH protocol 2 and the Blowfish cipher.
764
941d39e2 765For more details and OpenSSH patches, see
766\W{http://bugzilla.mindrot.org/show_bug.cgi?id=138}{bug 138} in the
767OpenSSH BTS.
768
1d2a9c9c 769This is not a PuTTY-specific problem; if you try to connect with
941d39e2 770another client you'll likely have similar problems. (Although PuTTY's
771default cipher differs from many other clients.)
1d2a9c9c 772
941d39e2 773\e{OpenSSH 3.1p1:} configurations known to be broken (and symptoms):
1d2a9c9c 774
775\b SSH 2 with AES cipher (PuTTY says "Assertion failed! Expression:
776(len & 15) == 0" in sshaes.c, or "Out of memory", or crashes)
777
9712b085 778\b SSH 2 with 3DES (PuTTY says "Incorrect MAC received on packet")
779
1d2a9c9c 780\b SSH 1 with Blowfish (PuTTY says "Incorrect CRC received on
781packet")
782
783\b SSH 1 with 3DES
784
941d39e2 785\e{OpenSSH 3.4p1:} as of 3.4p1, only the problem with SSH 1 and
786Blowfish remains. Rebuild your server, apply the patch linked to from
787bug 138 above, or use another cipher (e.g., 3DES) instead.
59f76022 788
46ccbe20 789\e{Other versions:} we occasionally get reports of the same symptom
790and workarounds with older versions of OpenSSH, although it's not
791clear the underlying cause is the same.
792
1bb76745 793\S{faq-ssh2key-ssh1conn}{Question} Why do I see "Couldn't load private
794key from ..."? Why can PuTTYgen load my key but not PuTTY?
795
796It's likely that you've generated an SSH protocol 2 key with PuTTYgen,
797but you're trying to use it in an SSH 1 connection. SSH1 and SSH2 keys
798have different formats, and (at least in 0.52) PuTTY's reporting of a
799key in the wrong format isn't optimal.
800
801To connect using SSH 2 to a server that supports both versions, you
802need to change the configuration from the default (see \k{faq-ssh2}).
803
2c4b913d 804\S{faq-rh8-utf8}{Question} When I'm connected to a Red Hat Linux 8.0
805system, some characters don't display properly.
806
807A common complaint is that hyphens in man pages show up as a-acute.
808
809With release 8.0, Red Hat appear to have made UTF-8 the default
810character set. There appears to be no way for terminal emulators such
811as PuTTY to know this (as far as we know, the appropriate escape
812sequence to switch into UTF-8 mode isn't sent).
813
814A fix is to configure sessions to RH8 systems to use UTF-8
815translation - see \k{config-charset} in the documentation. (Note that
816if you use \q{Change Settings}, changes may not take place immediately
817- see \k{faq-resetterm}.)
818
819If you really want to change the character set used by the server, the
820right place is \c{/etc/sysconfig/i18n}, but this shouldn't be
821necessary.
822
ee46ef84 823\H{faq-secure} Security questions
824
a1d2976b 825\S{faq-publicpc}{Question} Is it safe for me to download PuTTY and
70706890 826use it on a public PC?
ee46ef84 827
828It depends on whether you trust that PC. If you don't trust the
829public PC, don't use PuTTY on it, and don't use any other software
830you plan to type passwords into either. It might be watching your
831keystrokes, or it might tamper with the PuTTY binary you download.
832There is \e{no} program safe enough that you can run it on an
833actively malicious PC and get away with typing passwords into it.
834
835If you do trust the PC, then it's probably OK to use PuTTY on it
836(but if you don't trust the network, then the PuTTY download might
837be tampered with, so it would be better to carry PuTTY with you on a
838floppy).
839
a1d2976b 840\S{faq-cleanup}{Question} What does PuTTY leave on a system? How can
70706890 841I clean up after it?
ee46ef84 842
843PuTTY will leave some Registry entries, and a random seed file, on
844the PC (see \k{faq-settings}). If you are using PuTTY on a public
845PC, or somebody else's PC, you might want to clean these up when you
846leave. You can do that automatically, by running the command
847\c{putty -cleanup}.
848
a1d2976b 849\S{faq-dsa}{Question} How come PuTTY now supports DSA, when the
70706890 850website used to say how insecure it was?
ee46ef84 851
852DSA has a major weakness \e{if badly implemented}: it relies on a
853random number generator to far too great an extent. If the random
854number generator produces a number an attacker can predict, the DSA
855private key is exposed - meaning that the attacker can log in as you
856on all systems that accept that key.
857
858The PuTTY policy changed because the developers were informed of
859ways to implement DSA which do not suffer nearly as badly from this
860weakness, and indeed which don't need to rely on random numbers at
861all. For this reason we now believe PuTTY's DSA implementation is
862probably OK. However, if you have the choice, we still recommend you
863use RSA instead.
864
ee4b471f 865\S{faq-virtuallock}{Question} Couldn't Pageant use
866\cw{VirtualLock()} to stop private keys being written to disk?
f9908cf7 867
ee4b471f 868Unfortunately not. The \cw{VirtualLock()} function in the Windows
869API doesn't do a proper job: it may prevent small pieces of a
870process's memory from being paged to disk while the process is
871running, but it doesn't stop the process's memory as a whole from
872being swapped completely out to disk when the process is long-term
873inactive. And Pageant spends most of its time inactive.
f9908cf7 874
ee46ef84 875\H{faq-admin} Administrative questions
876
a1d2976b 877\S{faq-domain}{Question} Would you like me to register you a nicer
70706890 878domain name?
ee46ef84 879
880No, thank you. Even if you can find one (most of them seem to have
881been registered already, by people who didn't ask whether we
882actually wanted it before they applied), we're happy with the PuTTY
883web site being exactly where it is. It's not hard to find (just type
884\q{putty} into \W{http://www.google.com/}{google.com} and we're the
885first link returned), and we don't believe the administrative hassle
886of moving the site would be worth the benefit.
887
888In addition, if we \e{did} want a custom domain name, we would want
889to run it ourselves, so we knew for certain that it would continue
890to point where we wanted it, and wouldn't suddenly change or do
891strange things. Having it registered for us by a third party who we
892don't even know is not the best way to achieve this.
893
a1d2976b 894\S{faq-webhosting}{Question} Would you like free web hosting for the
70706890 895PuTTY web site?
ee46ef84 896
897We already have some, thanks.
898
a1d2976b 899\S{faq-sourceforge}{Question} Why don't you move PuTTY to
70706890 900SourceForge?
ee46ef84 901
902Partly, because we don't want to move the web site location (see
903\k{faq-domain}).
904
905Also, security reasons. PuTTY is a security product, and as such it
906is particularly important to guard the code and the web site against
907unauthorised modifications which might introduce subtle security
908flaws. Therefore, we prefer that the CVS repository, web site and
909FTP site remain where they are, under the direct control of system
910administrators we know and trust personally, rather than being run
911by a large organisation full of people we've never met and which is
912known to have had breakins in the past.
913
914No offence to SourceForge; I think they do a wonderful job. But
915they're not ideal for everyone, and in particular they're not ideal
916for us.
917
a1d2976b 918\S{faq-mailinglist1}{Question} Why can't I subscribe to the
70706890 919putty-bugs mailing list?
ee46ef84 920
921Because you're not a member of the PuTTY core development team. The
922putty-bugs mailing list is not a general newsgroup-like discussion
923forum; it's a contact address for the core developers, and an
924\e{internal} mailing list for us to discuss things among ourselves.
925If we opened it up for everybody to subscribe to, it would turn into
926something more like a newsgroup and we would be completely
927overwhelmed by the volume of traffic. It's hard enough to keep up
928with the list as it is.
929
a1d2976b 930\S{faq-mailinglist2}{Question} If putty-bugs isn't a
70706890 931general-subscription mailing list, what is?
ee46ef84 932
933There isn't one, that we know of.
934
be86e512 935If someone else wants to set up a mailing list or other forum for
936PuTTY users to help each other with common problems, that would be
937fine with us, though the PuTTY team would almost certainly not have the
938time to read it. It's probably better to use the established
939newsgroup \cw{comp.security.ssh} for this purpose.
ee46ef84 940
a1d2976b 941\S{faq-donations}{Question} How can I donate to PuTTY development?
ee46ef84 942
943Please, \e{please} don't feel you have to. PuTTY is completely free
944software, and not shareware. We think it's very important that
945\e{everybody} who wants to use PuTTY should be able to, whether they
946have any money or not; so the last thing we would want is for a
947PuTTY user to feel guilty because they haven't paid us any money. If
948you want to keep your money, please do keep it. We wouldn't dream of
949asking for any.
950
951Having said all that, if you still really \e{want} to give us money,
952we won't argue :-) The easiest way for us to accept donations is if
953you go to \W{http://www.e-gold.com}\cw{www.e-gold.com}, and deposit
954your donation in account number 174769. Then send us e-mail to let
955us know you've done so (otherwise we might not notice for months!).
9cd3f7b0 956Alternatively, if e-gold isn't convenient for you, you can donate to
957\cw{<anakin@pobox.com>} using PayPal
958(\W{http://www.paypal.com/}\cw{www.paypal.com}).
ee46ef84 959
960Small donations (tens of dollars or tens of euros) will probably be
961spent on beer or curry, which helps motivate our volunteer team to
962continue doing this for the world. Larger donations will be spent on
963something that actually helps development, if we can find anything
9cd3f7b0 964(perhaps new hardware, or a copy of Windows XP), but if we can't
ee46ef84 965find anything then we'll just distribute the money among the
966developers. If you want to be sure your donation is going towards
967something worthwhile, ask us first. If you don't like these terms,
968feel perfectly free not to donate. We don't mind.
969
f9908cf7 970\H{faq-misc} Miscellaneous questions
971
972\S{faq-openssh}{Question} Is PuTTY a port of OpenSSH, or based on
973OpenSSH?
974
975No, it isn't. PuTTY is almost completely composed of code written
976from scratch for PuTTY. The only code we share with OpenSSH is the
977detector for SSH1 CRC compensation attacks, written by CORE SDI S.A.
978
606398fb 979\S{faq-sillyputty}{Question} Where can I buy silly putty?
980
981You're looking at the wrong web site; the only PuTTY we know about
982here is the name of a computer program.
983
984If you want the kind of putty you can buy as an executive toy, the
985PuTTY team can personally recommend Thinking Putty, which you can
986buy from Crazy Aaron's Putty World, at
987\W{http://www.puttyworld.com}\cw{www.puttyworld.com}.
988
fa58cf81 989\S{faq-meaning}{Question} What does \q{PuTTY} mean?
ee46ef84 990
fa58cf81 991It's the name of a popular SSH and Telnet client. Any other meaning
992is in the eye of the beholder. It's been rumoured that \q{PuTTY}
993is the antonym of \q{\cw{getty}}, or that it's the stuff that makes your
994Windows useful, or that it's a kind of plutonium Teletype. We
995couldn't possibly comment on such allegations.
996
997\S{faq-pronounce}{Question} How do I pronounce \q{PuTTY}?
998
999Exactly like the English word \q{putty}, which we pronounce
1000/\u02C8{'}p\u028C{V}t\u026A{I}/.