OSDN Git Service

Modify documents for 1.98d.
[ffftp/ffftp.git] / contrib / putty / DOC / CONFIG.BUT
1 \define{versionidconfig} \versionid $Id: config.but 9063 2010-12-29 14:11:25Z simon $\r
2 \r
3 \C{config} Configuring PuTTY\r
4 \r
5 This chapter describes all the \i{configuration options} in PuTTY.\r
6 \r
7 PuTTY is configured using the control panel that comes up before you\r
8 start a session. Some options can also be changed in the middle of a\r
9 session, by selecting \q{Change Settings} from the window menu.\r
10 \r
11 \H{config-session} The Session panel\r
12 \r
13 The Session configuration panel contains the basic options you need\r
14 to specify in order to open a session at all, and also allows you to\r
15 save your settings to be reloaded later.\r
16 \r
17 \S{config-hostname} The \i{host name} section\r
18 \r
19 \cfg{winhelp-topic}{session.hostname}\r
20 \r
21 The top box on the Session panel, labelled \q{Specify your\r
22 connection by host name}, contains the details that need to be\r
23 filled in before PuTTY can open a session at all.\r
24 \r
25 \b The \q{Host Name} box is where you type the name, or the \i{IP\r
26 address}, of the server you want to connect to.\r
27 \r
28 \b The \q{Connection type} radio buttons let you choose what type of\r
29 connection you want to make: a \I{raw TCP connections}raw\r
30 connection, a \i{Telnet} connection, an \i{Rlogin} connection, an\r
31 \i{SSH} connection, or a connection to a local \i{serial line}. (See\r
32 \k{which-one} for a summary of the differences between SSH, Telnet\r
33 and rlogin; see \k{using-rawprot} for an explanation of \q{raw}\r
34 connections; see \k{using-serial} for information about using a\r
35 serial line.)\r
36 \r
37 \b The \q{Port} box lets you specify which \i{port number} on the\r
38 server to connect to. If you select Telnet, Rlogin, or SSH, this box\r
39 will be filled in automatically to the usual value, and you will\r
40 only need to change it if you have an unusual server. If you select\r
41 Raw mode, you will almost certainly need to fill in the \q{Port} box\r
42 yourself.\r
43 \r
44 If you select \q{Serial} from the \q{Connection type} radio buttons,\r
45 the \q{Host Name} and \q{Port} boxes are replaced by \q{Serial line}\r
46 and \q{Speed}; see \k{config-serial} for more details of these.\r
47 \r
48 \S{config-saving} \ii{Loading and storing saved sessions}\r
49 \r
50 \cfg{winhelp-topic}{session.saved}\r
51 \r
52 The next part of the Session configuration panel allows you to save\r
53 your preferred PuTTY options so they will appear automatically the\r
54 next time you start PuTTY. It also allows you to create \e{saved\r
55 sessions}, which contain a full set of configuration options plus a\r
56 host name and protocol. A saved session contains all the information\r
57 PuTTY needs to start exactly the session you want.\r
58 \r
59 \b To save your default settings: first set up the settings the way\r
60 you want them saved. Then come back to the Session panel. Select the\r
61 \q{\i{Default Settings}} entry in the saved sessions list, with a single\r
62 click. Then press the \q{Save} button.\r
63 \r
64 If there is a specific host you want to store the details of how to\r
65 connect to, you should create a saved session, which will be\r
66 separate from the Default Settings.\r
67 \r
68 \b To save a session: first go through the rest of the configuration\r
69 box setting up all the options you want. Then come back to the\r
70 Session panel. Enter a name for the saved session in the \q{Saved\r
71 Sessions} input box. (The server name is often a good choice for a\r
72 saved session name.) Then press the \q{Save} button. Your saved\r
73 session name should now appear in the list box.\r
74 \r
75 \lcont{\r
76 You can also save settings in mid-session, from the \q{Change Settings}\r
77 dialog. Settings changed since the start of the session will be saved\r
78 with their current values; as well as settings changed through the\r
79 dialog, this includes changes in window size, window title changes\r
80 sent by the server, and so on.\r
81 }\r
82 \r
83 \b To reload a saved session: single-click to select the session\r
84 name in the list box, and then press the \q{Load} button. Your saved\r
85 settings should all appear in the configuration panel.\r
86 \r
87 \b To modify a saved session: first load it as described above. Then\r
88 make the changes you want. Come back to the Session panel, and press\r
89 the \q{Save} button. The new settings will be saved over the top of\r
90 the old ones.\r
91 \r
92 \lcont{\r
93 To save the new settings under a different name, you can enter the new\r
94 name in the \q{Saved Sessions} box, or single-click to select a\r
95 session name in the list box to overwrite that session. To save\r
96 \q{Default Settings}, you must single-click the name before saving.\r
97 }\r
98 \r
99 \b To start a saved session immediately: double-click on the session\r
100 name in the list box.\r
101 \r
102 \b To delete a saved session: single-click to select the session\r
103 name in the list box, and then press the \q{Delete} button.\r
104 \r
105 Each saved session is independent of the Default Settings\r
106 configuration. If you change your preferences and update Default\r
107 Settings, you must also update every saved session separately.\r
108 \r
109 Saved sessions are stored in the \i{Registry}, at the location\r
110 \r
111 \c HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\r
112 \r
113 If you need to store them in a file, you could try the method\r
114 described in \k{config-file}.\r
115 \r
116 \S{config-closeonexit} \q{\ii{Close Window} on Exit}\r
117 \r
118 \cfg{winhelp-topic}{session.coe}\r
119 \r
120 Finally in the Session panel, there is an option labelled \q{Close\r
121 Window on Exit}. This controls whether the PuTTY \i{terminal window}\r
122 disappears as soon as the session inside it terminates. If you are\r
123 likely to want to copy and paste text out of the session after it\r
124 has terminated, or restart the session, you should arrange for this\r
125 option to be off.\r
126 \r
127 \q{Close Window On Exit} has three settings. \q{Always} means always\r
128 close the window on exit; \q{Never} means never close on exit\r
129 (always leave the window open, but \I{inactive window}inactive). The\r
130 third setting, and the default one, is \q{Only on clean exit}. In this\r
131 mode, a session which terminates normally will cause its window to\r
132 close, but one which is aborted unexpectedly by network trouble or a\r
133 confusing message from the server will leave the window up.\r
134 \r
135 \H{config-logging} The Logging panel\r
136 \r
137 \cfg{winhelp-topic}{logging.main}\r
138 \r
139 The Logging configuration panel allows you to save \i{log file}s of your\r
140 PuTTY sessions, for debugging, analysis or future reference.\r
141 \r
142 The main option is a radio-button set that specifies whether PuTTY\r
143 will log anything at all. The options are:\r
144 \r
145 \b \q{None}. This is the default option; in this mode PuTTY will not\r
146 create a log file at all.\r
147 \r
148 \b \q{Printable output}. In this mode, a log file will be\r
149 created and written to, but only printable text will be saved into\r
150 it. The various terminal control codes that are typically sent down\r
151 an interactive session alongside the printable text will be omitted.\r
152 This might be a useful mode if you want to read a log file in a text\r
153 editor and hope to be able to make sense of it.\r
154 \r
155 \b \q{All session output}. In this mode, \e{everything} sent by\r
156 the server into your terminal session is logged. If you view the log\r
157 file in a text editor, therefore, you may well find it full of\r
158 strange control characters. This is a particularly useful mode if\r
159 you are experiencing problems with PuTTY's terminal handling: you\r
160 can record everything that went to the terminal, so that someone\r
161 else can replay the session later in slow motion and watch to see\r
162 what went wrong.\r
163 \r
164 \b \I{SSH packet log}\q{SSH packets}. In this mode (which is only used\r
165 by SSH connections), the SSH message packets sent over the encrypted\r
166 connection are written to the log file (as well as \i{Event Log}\r
167 entries). You might need this to debug a network-level problem, or\r
168 more likely to send to the PuTTY authors as part of a bug report.\r
169 \e{BE WARNED} that if you log in using a password, the password can\r
170 appear in the log file; see \k{config-logssh} for options that may\r
171 help to remove sensitive material from the log file before you send it\r
172 to anyone else.\r
173 \r
174 \b \q{SSH packets and raw data}. In this mode, as well as the\r
175 decrypted packets (as in the previous mode), the \e{raw} (encrypted,\r
176 compressed, etc) packets are \e{also} logged. This could be useful to\r
177 diagnose corruption in transit. (The same caveats as the previous mode\r
178 apply, of course.)\r
179 \r
180 Note that the non-SSH logging options (\q{Printable output} and\r
181 \q{All session output}) only work with PuTTY proper; in programs\r
182 without terminal emulation (such as Plink), they will have no effect,\r
183 even if enabled via saved settings.\r
184 \r
185 \S{config-logfilename} \q{Log file name}\r
186 \r
187 \cfg{winhelp-topic}{logging.filename}\r
188 \r
189 In this edit box you enter the name of the file you want to log the\r
190 session to. The \q{Browse} button will let you look around your file\r
191 system to find the right place to put the file; or if you already\r
192 know exactly where you want it to go, you can just type a pathname\r
193 into the edit box.\r
194 \r
195 There are a few special features in this box. If you use the \c{&}\r
196 character in the file name box, PuTTY will insert details of the\r
197 current session in the name of the file it actually opens. The\r
198 precise replacements it will do are:\r
199 \r
200 \b \c{&Y} will be replaced by the current year, as four digits.\r
201 \r
202 \b \c{&M} will be replaced by the current month, as two digits.\r
203 \r
204 \b \c{&D} will be replaced by the current day of the month, as two\r
205 digits.\r
206 \r
207 \b \c{&T} will be replaced by the current time, as six digits\r
208 (HHMMSS) with no punctuation.\r
209 \r
210 \b \c{&H} will be replaced by the host name you are connecting to.\r
211 \r
212 For example, if you enter the host name\r
213 \c{c:\\puttylogs\\log-&h-&y&m&d-&t.dat}, you will end up with files looking\r
214 like\r
215 \r
216 \c log-server1.example.com-20010528-110859.dat\r
217 \c log-unixbox.somewhere.org-20010611-221001.dat\r
218 \r
219 \S{config-logfileexists} \q{What to do if the log file already exists}\r
220 \r
221 \cfg{winhelp-topic}{logging.exists}\r
222 \r
223 This control allows you to specify what PuTTY should do if it tries\r
224 to start writing to a log file and it finds the file already exists.\r
225 You might want to automatically destroy the existing log file and\r
226 start a new one with the same name. Alternatively, you might want to\r
227 open the existing log file and add data to the \e{end} of it.\r
228 Finally (the default option), you might not want to have any\r
229 automatic behaviour, but to ask the user every time the problem\r
230 comes up.\r
231 \r
232 \S{config-logflush} \I{log file, flushing}\q{Flush log file frequently}\r
233 \r
234 \cfg{winhelp-topic}{logging.flush}\r
235 \r
236 This option allows you to control how frequently logged data is\r
237 flushed to disc. By default, PuTTY will flush data as soon as it is\r
238 displayed, so that if you view the log file while a session is still\r
239 open, it will be up to date; and if the client system crashes, there's\r
240 a greater chance that the data will be preserved.\r
241 \r
242 However, this can incur a performance penalty. If PuTTY is running\r
243 slowly with logging enabled, you could try unchecking this option. Be\r
244 warned that the log file may not always be up to date as a result\r
245 (although it will of course be flushed when it is closed, for instance\r
246 at the end of a session).\r
247 \r
248 \S{config-logssh} Options specific to \i{SSH packet log}ging\r
249 \r
250 These options only apply if SSH packet data is being logged.\r
251 \r
252 The following options allow particularly sensitive portions of\r
253 unencrypted packets to be automatically left out of the log file.\r
254 They are only intended to deter casual nosiness; an attacker could\r
255 glean a lot of useful information from even these obfuscated logs\r
256 (e.g., length of password).\r
257 \r
258 \S2{config-logssh-omitpw} \q{Omit known password fields}\r
259 \r
260 \cfg{winhelp-topic}{logging.ssh.omitpassword}\r
261 \r
262 When checked, decrypted password fields are removed from the log of\r
263 transmitted packets. (This includes any user responses to\r
264 challenge-response authentication methods such as\r
265 \q{keyboard-interactive}.) This does not include X11 authentication\r
266 data if using X11 forwarding.\r
267 \r
268 Note that this will only omit data that PuTTY \e{knows} to be a\r
269 password. However, if you start another login session within your\r
270 PuTTY session, for instance, any password used will appear in the\r
271 clear in the packet log. The next option may be of use to protect\r
272 against this.\r
273 \r
274 This option is enabled by default.\r
275 \r
276 \S2{config-logssh-omitdata} \q{Omit session data}\r
277 \r
278 \cfg{winhelp-topic}{logging.ssh.omitdata}\r
279 \r
280 When checked, all decrypted \q{session data} is omitted; this is\r
281 defined as data in terminal sessions and in forwarded channels (TCP,\r
282 X11, and authentication agent). This will usually substantially reduce\r
283 the size of the resulting log file.\r
284 \r
285 This option is disabled by default.\r
286 \r
287 \H{config-terminal} The Terminal panel\r
288 \r
289 The Terminal configuration panel allows you to control the behaviour\r
290 of PuTTY's \i{terminal emulation}.\r
291 \r
292 \S{config-autowrap} \q{Auto wrap mode initially on}\r
293 \r
294 \cfg{winhelp-topic}{terminal.autowrap}\r
295 \r
296 \ii{Auto wrap mode} controls what happens when text printed in a PuTTY\r
297 window reaches the right-hand edge of the window.\r
298 \r
299 With auto wrap mode on, if a long line of text reaches the\r
300 right-hand edge, it will wrap over on to the next line so you can\r
301 still see all the text. With auto wrap mode off, the cursor will\r
302 stay at the right-hand edge of the screen, and all the characters in\r
303 the line will be printed on top of each other.\r
304 \r
305 If you are running a full-screen application and you occasionally\r
306 find the screen scrolling up when it looks as if it shouldn't, you\r
307 could try turning this option off.\r
308 \r
309 Auto wrap mode can be turned on and off by \i{control sequence}s sent by\r
310 the server. This configuration option controls the \e{default}\r
311 state, which will be restored when you reset the terminal (see\r
312 \k{reset-terminal}). However, if you modify this option in\r
313 mid-session using \q{Change Settings}, it will take effect\r
314 immediately.\r
315 \r
316 \S{config-decom} \q{DEC Origin Mode initially on}\r
317 \r
318 \cfg{winhelp-topic}{terminal.decom}\r
319 \r
320 \i{DEC Origin Mode} is a minor option which controls how PuTTY\r
321 interprets cursor-position \i{control sequence}s sent by the server.\r
322 \r
323 The server can send a control sequence that restricts the \i{scrolling\r
324 region} of the display. For example, in an editor, the server might\r
325 reserve a line at the top of the screen and a line at the bottom,\r
326 and might send a control sequence that causes scrolling operations\r
327 to affect only the remaining lines.\r
328 \r
329 With DEC Origin Mode on, \i{cursor coordinates} are counted from the top\r
330 of the scrolling region. With it turned off, cursor coordinates are\r
331 counted from the top of the whole screen regardless of the scrolling\r
332 region.\r
333 \r
334 It is unlikely you would need to change this option, but if you find\r
335 a full-screen application is displaying pieces of text in what looks\r
336 like the wrong part of the screen, you could try turning DEC Origin\r
337 Mode on to see whether that helps.\r
338 \r
339 DEC Origin Mode can be turned on and off by control sequences sent\r
340 by the server. This configuration option controls the \e{default}\r
341 state, which will be restored when you reset the terminal (see\r
342 \k{reset-terminal}). However, if you modify this option in\r
343 mid-session using \q{Change Settings}, it will take effect\r
344 immediately.\r
345 \r
346 \S{config-crlf} \q{Implicit CR in every LF}\r
347 \r
348 \cfg{winhelp-topic}{terminal.lfhascr}\r
349 \r
350 Most servers send two control characters, \i{CR} and \i{LF}, to start a\r
351 \i{new line} of the screen. The CR character makes the cursor return to the\r
352 left-hand side of the screen. The LF character makes the cursor move\r
353 one line down (and might make the screen scroll).\r
354 \r
355 Some servers only send LF, and expect the terminal to move the\r
356 cursor over to the left automatically. If you come across a server\r
357 that does this, you will see a \I{stair-stepping}stepped effect on the\r
358 screen, like this:\r
359 \r
360 \c First line of text\r
361 \c                   Second line\r
362 \c                              Third line\r
363 \r
364 If this happens to you, try enabling the \q{Implicit CR in every LF}\r
365 option, and things might go back to normal:\r
366 \r
367 \c First line of text\r
368 \c Second line\r
369 \c Third line\r
370 \r
371 \S{config-lfcr} \q{Implicit LF in every CR}\r
372 \r
373 \cfg{winhelp-topic}{terminal.crhaslf}\r
374 \r
375 Most servers send two control characters, \i{CR} and \i{LF}, to start a\r
376 \i{new line} of the screen. The CR character makes the cursor return to the\r
377 left-hand side of the screen. The LF character makes the cursor move\r
378 one line down (and might make the screen scroll).\r
379 \r
380 Some servers only send CR, and so the newly \r
381 written line is overwritten by the following line. This option causes \r
382 a line feed so that all lines are displayed.\r
383 \r
384 \S{config-erase} \q{Use \i{background colour} to erase screen}\r
385 \r
386 \cfg{winhelp-topic}{terminal.bce}\r
387 \r
388 Not all terminals agree on what colour to turn the screen when the\r
389 server sends a \q{\i{clear screen}} sequence. Some terminals believe the\r
390 screen should always be cleared to the \e{default} background\r
391 colour. Others believe the screen should be cleared to whatever the\r
392 server has selected as a background colour.\r
393 \r
394 There exist applications that expect both kinds of behaviour.\r
395 Therefore, PuTTY can be configured to do either.\r
396 \r
397 With this option disabled, screen clearing is always done in the\r
398 default background colour. With this option enabled, it is done in\r
399 the \e{current} background colour.\r
400 \r
401 Background-colour erase can be turned on and off by \i{control\r
402 sequences} sent by the server. This configuration option controls the\r
403 \e{default} state, which will be restored when you reset the\r
404 terminal (see \k{reset-terminal}). However, if you modify this\r
405 option in mid-session using \q{Change Settings}, it will take effect\r
406 immediately.\r
407 \r
408 \S{config-blink} \q{Enable \i{blinking text}}\r
409 \r
410 \cfg{winhelp-topic}{terminal.blink}\r
411 \r
412 The server can ask PuTTY to display text that blinks on and off.\r
413 This is very distracting, so PuTTY allows you to turn blinking text\r
414 off completely.\r
415 \r
416 When blinking text is disabled and the server attempts to make some\r
417 text blink, PuTTY will instead display the text with a \I{background\r
418 colour, bright}bolded background colour.\r
419 \r
420 Blinking text can be turned on and off by \i{control sequence}s sent by\r
421 the server. This configuration option controls the \e{default}\r
422 state, which will be restored when you reset the terminal (see\r
423 \k{reset-terminal}). However, if you modify this option in\r
424 mid-session using \q{Change Settings}, it will take effect\r
425 immediately.\r
426 \r
427 \S{config-answerback} \q{\ii{Answerback} to ^E}\r
428 \r
429 \cfg{winhelp-topic}{terminal.answerback}\r
430 \r
431 This option controls what PuTTY will send back to the server if the\r
432 server sends it the ^E \i{enquiry character}. Normally it just sends\r
433 the string \q{PuTTY}.\r
434 \r
435 If you accidentally write the contents of a binary file to your\r
436 terminal, you will probably find that it contains more than one ^E\r
437 character, and as a result your next command line will probably read\r
438 \q{PuTTYPuTTYPuTTY...} as if you had typed the answerback string\r
439 multiple times at the keyboard. If you set the answerback string to\r
440 be empty, this problem should go away, but doing so might cause\r
441 other problems.\r
442 \r
443 Note that this is \e{not} the feature of PuTTY which the server will\r
444 typically use to determine your terminal type. That feature is the\r
445 \q{\ii{Terminal-type} string} in the Connection panel; see\r
446 \k{config-termtype} for details.\r
447 \r
448 You can include control characters in the answerback string using\r
449 \c{^C} notation. (Use \c{^~} to get a literal \c{^}.)\r
450 \r
451 \S{config-localecho} \q{\ii{Local echo}}\r
452 \r
453 \cfg{winhelp-topic}{terminal.localecho}\r
454 \r
455 With local echo disabled, characters you type into the PuTTY window\r
456 are not echoed in the window \e{by PuTTY}. They are simply sent to\r
457 the server. (The \e{server} might choose to \I{remote echo}echo them\r
458 back to you; this can't be controlled from the PuTTY control panel.)\r
459 \r
460 Some types of session need local echo, and many do not. In its\r
461 default mode, PuTTY will automatically attempt to deduce whether or\r
462 not local echo is appropriate for the session you are working in. If\r
463 you find it has made the wrong decision, you can use this\r
464 configuration option to override its choice: you can force local\r
465 echo to be turned on, or force it to be turned off, instead of\r
466 relying on the automatic detection.\r
467 \r
468 \S{config-localedit} \q{\ii{Local line editing}}\r
469 \r
470 \cfg{winhelp-topic}{terminal.localedit}\r
471 \r
472 Normally, every character you type into the PuTTY window is sent\r
473 immediately to the server the moment you type it.\r
474 \r
475 If you enable local line editing, this changes. PuTTY will let you\r
476 edit a whole line at a time locally, and the line will only be sent\r
477 to the server when you press Return. If you make a mistake, you can\r
478 use the Backspace key to correct it before you press Return, and the\r
479 server will never see the mistake.\r
480 \r
481 Since it is hard to edit a line locally without being able to see\r
482 it, local line editing is mostly used in conjunction with \i{local echo}\r
483 (\k{config-localecho}). This makes it ideal for use in raw mode\r
484 \#{FIXME} or when connecting to \i{MUD}s or \i{talker}s. (Although some more\r
485 advanced MUDs do occasionally turn local line editing on and turn\r
486 local echo off, in order to accept a password from the user.)\r
487 \r
488 Some types of session need local line editing, and many do not. In\r
489 its default mode, PuTTY will automatically attempt to deduce whether\r
490 or not local line editing is appropriate for the session you are\r
491 working in. If you find it has made the wrong decision, you can use\r
492 this configuration option to override its choice: you can force\r
493 local line editing to be turned on, or force it to be turned off,\r
494 instead of relying on the automatic detection.\r
495 \r
496 \S{config-printing} \ii{Remote-controlled printing}\r
497 \r
498 \cfg{winhelp-topic}{terminal.printing}\r
499 \r
500 A lot of VT100-compatible terminals support printing under control\r
501 of the remote server. PuTTY supports this feature as well, but it is\r
502 turned off by default.\r
503 \r
504 To enable remote-controlled printing, choose a printer from the\r
505 \q{Printer to send ANSI printer output to} drop-down list box. This\r
506 should allow you to select from all the printers you have installed\r
507 drivers for on your computer. Alternatively, you can type the\r
508 network name of a networked printer (for example,\r
509 \c{\\\\printserver\\printer1}) even if you haven't already\r
510 installed a driver for it on your own machine.\r
511 \r
512 When the remote server attempts to print some data, PuTTY will send\r
513 that data to the printer \e{raw} - without translating it,\r
514 attempting to format it, or doing anything else to it. It is up to\r
515 you to ensure your remote server knows what type of printer it is\r
516 talking to.\r
517 \r
518 Since PuTTY sends data to the printer raw, it cannot offer options\r
519 such as portrait versus landscape, print quality, or paper tray\r
520 selection. All these things would be done by your PC printer driver\r
521 (which PuTTY bypasses); if you need them done, you will have to find\r
522 a way to configure your remote server to do them.\r
523 \r
524 To disable remote printing again, choose \q{None (printing\r
525 disabled)} from the printer selection list. This is the default\r
526 state.\r
527 \r
528 \H{config-keyboard} The Keyboard panel\r
529 \r
530 The Keyboard configuration panel allows you to control the behaviour\r
531 of the \i{keyboard} in PuTTY.  The correct state for many of these\r
532 settings depends on what the server to which PuTTY is connecting\r
533 expects.  With a \i{Unix} server, this is likely to depend on the\r
534 \i\c{termcap} or \i\c{terminfo} entry it uses, which in turn is likely to\r
535 be controlled by the \q{\ii{Terminal-type} string} setting in the Connection\r
536 panel; see \k{config-termtype} for details.  If none of the settings here\r
537 seems to help, you may find \k{faq-keyboard} to be useful.\r
538 \r
539 \S{config-backspace} Changing the action of the \ii{Backspace key}\r
540 \r
541 \cfg{winhelp-topic}{keyboard.backspace}\r
542 \r
543 Some terminals believe that the Backspace key should send the same\r
544 thing to the server as \i{Control-H} (ASCII code 8). Other terminals\r
545 believe that the Backspace key should send ASCII code 127 (usually\r
546 known as \i{Control-?}) so that it can be distinguished from Control-H.\r
547 This option allows you to choose which code PuTTY generates when you\r
548 press Backspace.\r
549 \r
550 If you are connecting over SSH, PuTTY by default tells the server\r
551 the value of this option (see \k{config-ttymodes}), so you may find\r
552 that the Backspace key does the right thing either way. Similarly,\r
553 if you are connecting to a \i{Unix} system, you will probably find that\r
554 the Unix \i\c{stty} command lets you configure which the server\r
555 expects to see, so again you might not need to change which one PuTTY\r
556 generates. On other systems, the server's expectation might be fixed\r
557 and you might have no choice but to configure PuTTY.\r
558 \r
559 If you do have the choice, we recommend configuring PuTTY to\r
560 generate Control-? and configuring the server to expect it, because\r
561 that allows applications such as \c{emacs} to use Control-H for\r
562 help.\r
563 \r
564 (Typing \i{Shift-Backspace} will cause PuTTY to send whichever code\r
565 isn't configured here as the default.)\r
566 \r
567 \S{config-homeend} Changing the action of the \i{Home and End keys}\r
568 \r
569 \cfg{winhelp-topic}{keyboard.homeend}\r
570 \r
571 The Unix terminal emulator \i\c{rxvt} disagrees with the rest of the\r
572 world about what character sequences should be sent to the server by\r
573 the Home and End keys.\r
574 \r
575 \i\c{xterm}, and other terminals, send \c{ESC [1~} for the Home key,\r
576 and \c{ESC [4~} for the End key. \c{rxvt} sends \c{ESC [H} for the\r
577 Home key and \c{ESC [Ow} for the End key.\r
578 \r
579 If you find an application on which the Home and End keys aren't\r
580 working, you could try switching this option to see if it helps.\r
581 \r
582 \S{config-funkeys} Changing the action of the \i{function keys} and\r
583 \i{keypad}\r
584 \r
585 \cfg{winhelp-topic}{keyboard.funkeys}\r
586 \r
587 This option affects the function keys (F1 to F12) and the top row of\r
588 the numeric keypad.\r
589 \r
590 \b In the default mode, labelled \c{ESC [n~}, the function keys\r
591 generate sequences like \c{ESC [11~}, \c{ESC [12~} and so on. This\r
592 matches the general behaviour of Digital's terminals.\r
593 \r
594 \b In Linux mode, F6 to F12 behave just like the default mode, but\r
595 F1 to F5 generate \c{ESC [[A} through to \c{ESC [[E}. This mimics the\r
596 \i{Linux virtual console}.\r
597 \r
598 \b In \I{xterm}Xterm R6 mode, F5 to F12 behave like the default mode, but F1\r
599 to F4 generate \c{ESC OP} through to \c{ESC OS}, which are the\r
600 sequences produced by the top row of the \e{keypad} on Digital's\r
601 terminals.\r
602 \r
603 \b In \i{VT400} mode, all the function keys behave like the default\r
604 mode, but the actual top row of the numeric keypad generates \c{ESC\r
605 OP} through to \c{ESC OS}.\r
606 \r
607 \b In \i{VT100+} mode, the function keys generate \c{ESC OP} through to\r
608 \c{ESC O[}\r
609 \r
610 \b In \i{SCO} mode, the function keys F1 to F12 generate \c{ESC [M}\r
611 through to \c{ESC [X}.  Together with shift, they generate \c{ESC [Y}\r
612 through to \c{ESC [j}.  With control they generate \c{ESC [k} through\r
613 to \c{ESC [v}, and with shift and control together they generate\r
614 \c{ESC [w} through to \c{ESC [\{}.\r
615 \r
616 If you don't know what any of this means, you probably don't need to\r
617 fiddle with it.\r
618 \r
619 \S{config-appcursor} Controlling \i{Application Cursor Keys} mode\r
620 \r
621 \cfg{winhelp-topic}{keyboard.appcursor}\r
622 \r
623 Application Cursor Keys mode is a way for the server to change the\r
624 control sequences sent by the arrow keys. In normal mode, the arrow\r
625 keys send \c{ESC [A} through to \c{ESC [D}. In application mode,\r
626 they send \c{ESC OA} through to \c{ESC OD}.\r
627 \r
628 Application Cursor Keys mode can be turned on and off by the server,\r
629 depending on the application. PuTTY allows you to configure the\r
630 initial state.\r
631 \r
632 You can also disable application cursor keys mode completely, using\r
633 the \q{Features} configuration panel; see\r
634 \k{config-features-application}.\r
635 \r
636 \S{config-appkeypad} Controlling \i{Application Keypad} mode\r
637 \r
638 \cfg{winhelp-topic}{keyboard.appkeypad}\r
639 \r
640 Application Keypad mode is a way for the server to change the\r
641 behaviour of the numeric keypad.\r
642 \r
643 In normal mode, the keypad behaves like a normal Windows keypad:\r
644 with \i{NumLock} on, the number keys generate numbers, and with NumLock\r
645 off they act like the arrow keys and Home, End etc.\r
646 \r
647 In application mode, all the keypad keys send special control\r
648 sequences, \e{including} Num Lock. Num Lock stops behaving like Num\r
649 Lock and becomes another function key.\r
650 \r
651 Depending on which version of Windows you run, you may find the Num\r
652 Lock light still flashes on and off every time you press Num Lock,\r
653 even when application mode is active and Num Lock is acting like a\r
654 function key. This is unavoidable.\r
655 \r
656 Application keypad mode can be turned on and off by the server,\r
657 depending on the application. PuTTY allows you to configure the\r
658 initial state.\r
659 \r
660 You can also disable application keypad mode completely, using the\r
661 \q{Features} configuration panel; see\r
662 \k{config-features-application}.\r
663 \r
664 \S{config-nethack} Using \i{NetHack keypad mode}\r
665 \r
666 \cfg{winhelp-topic}{keyboard.nethack}\r
667 \r
668 PuTTY has a special mode for playing NetHack. You can enable it by\r
669 selecting \q{NetHack} in the \q{Initial state of numeric keypad}\r
670 control.\r
671 \r
672 In this mode, the numeric keypad keys 1-9 generate the NetHack\r
673 movement commands (\cw{hjklyubn}). The 5 key generates the \c{.}\r
674 command (do nothing).\r
675 \r
676 In addition, pressing Shift or Ctrl with the keypad keys generate\r
677 the Shift- or Ctrl-keys you would expect (e.g. keypad-7 generates\r
678 \cq{y}, so Shift-keypad-7 generates \cq{Y} and Ctrl-keypad-7\r
679 generates Ctrl-Y); these commands tell NetHack to keep moving you in\r
680 the same direction until you encounter something interesting.\r
681 \r
682 For some reason, this feature only works properly when \i{Num Lock} is\r
683 on. We don't know why.\r
684 \r
685 \S{config-compose} Enabling a DEC-like \ii{Compose key}\r
686 \r
687 \cfg{winhelp-topic}{keyboard.compose}\r
688 \r
689 DEC terminals have a Compose key, which provides an easy-to-remember\r
690 way of typing \i{accented characters}. You press Compose and then type\r
691 two more characters. The two characters are \q{combined} to produce\r
692 an accented character. The choices of character are designed to be\r
693 easy to remember; for example, composing \q{e} and \q{`} produces\r
694 the \q{\u00e8{e-grave}} character.\r
695 \r
696 If your keyboard has a Windows \i{Application key}, it acts as a Compose\r
697 key in PuTTY. Alternatively, if you enable the \q{\i{AltGr} acts as\r
698 Compose key} option, the AltGr key will become a Compose key.\r
699 \r
700 \S{config-ctrlalt} \q{Control-Alt is different from \i{AltGr}}\r
701 \r
702 \cfg{winhelp-topic}{keyboard.ctrlalt}\r
703 \r
704 Some old keyboards do not have an AltGr key, which can make it\r
705 difficult to type some characters. PuTTY can be configured to treat\r
706 the key combination Ctrl + Left Alt the same way as the AltGr key.\r
707 \r
708 By default, this checkbox is checked, and the key combination Ctrl +\r
709 Left Alt does something completely different. PuTTY's usual handling\r
710 of the left Alt key is to prefix the Escape (Control-\cw{[})\r
711 character to whatever character sequence the rest of the keypress\r
712 would generate. For example, Alt-A generates Escape followed by\r
713 \c{a}. So Alt-Ctrl-A would generate Escape, followed by Control-A.\r
714 \r
715 If you uncheck this box, Ctrl-Alt will become a synonym for AltGr,\r
716 so you can use it to type extra graphic characters if your keyboard\r
717 has any.\r
718 \r
719 (However, Ctrl-Alt will never act as a Compose key, regardless of the\r
720 setting of \q{AltGr acts as Compose key} described in\r
721 \k{config-compose}.)\r
722 \r
723 \H{config-bell} The Bell panel\r
724 \r
725 The Bell panel controls the \i{terminal bell} feature: the server's\r
726 ability to cause PuTTY to beep at you.\r
727 \r
728 In the default configuration, when the server sends the character\r
729 with ASCII code 7 (Control-G), PuTTY will play the \i{Windows Default\r
730 Beep} sound. This is not always what you want the terminal bell\r
731 feature to do; the Bell panel allows you to configure alternative\r
732 actions.\r
733 \r
734 \S{config-bellstyle} \q{Set the style of bell}\r
735 \r
736 \cfg{winhelp-topic}{bell.style}\r
737 \r
738 This control allows you to select various different actions to occur\r
739 on a terminal bell:\r
740 \r
741 \b Selecting \q{None} \I{terminal bell, disabling}disables the bell\r
742 completely. In this mode, the server can send as many Control-G\r
743 characters as it likes and nothing at all will happen.\r
744 \r
745 \b \q{Make default system alert sound} is the default setting. It\r
746 causes the Windows \q{Default Beep} sound to be played. To change\r
747 what this sound is, or to test it if nothing seems to be happening,\r
748 use the Sound configurer in the Windows Control Panel.\r
749 \r
750 \b \q{\ii{Visual bell}} is a silent alternative to a beeping computer. In\r
751 this mode, when the server sends a Control-G, the whole PuTTY window\r
752 will flash white for a fraction of a second.\r
753 \r
754 \b \q{Beep using the \i{PC speaker}} is self-explanatory.\r
755 \r
756 \b \q{Play a custom \i{sound file}} allows you to specify a particular\r
757 sound file to be used by PuTTY alone, or even by a particular\r
758 individual PuTTY session. This allows you to distinguish your PuTTY\r
759 beeps from any other beeps on the system. If you select this option,\r
760 you will also need to enter the name of your sound file in the edit\r
761 control \q{Custom sound file to play as a bell}.\r
762 \r
763 \S{config-belltaskbar} \q{\ii{Taskbar}/\I{window caption}caption\r
764 indication on bell}\r
765 \r
766 \cfg{winhelp-topic}{bell.taskbar}\r
767 \r
768 This feature controls what happens to the PuTTY window's entry in\r
769 the Windows Taskbar if a bell occurs while the window does not have\r
770 the input focus.\r
771 \r
772 In the default state (\q{Disabled}) nothing unusual happens.\r
773 \r
774 If you select \q{Steady}, then when a bell occurs and the window is\r
775 not in focus, the window's Taskbar entry and its title bar will\r
776 change colour to let you know that PuTTY session is asking for your\r
777 attention. The change of colour will persist until you select the\r
778 window, so you can leave several PuTTY windows minimised in your\r
779 terminal, go away from your keyboard, and be sure not to have missed\r
780 any important beeps when you get back.\r
781 \r
782 \q{Flashing} is even more eye-catching: the Taskbar entry will\r
783 continuously flash on and off until you select the window.\r
784 \r
785 \S{config-bellovl} \q{Control the \i{bell overload} behaviour}\r
786 \r
787 \cfg{winhelp-topic}{bell.overload}\r
788 \r
789 A common user error in a terminal session is to accidentally run the\r
790 Unix command \c{cat} (or equivalent) on an inappropriate file type,\r
791 such as an executable, image file, or ZIP file. This produces a huge\r
792 stream of non-text characters sent to the terminal, which typically\r
793 includes a lot of bell characters. As a result of this the terminal\r
794 often doesn't stop beeping for ten minutes, and everybody else in\r
795 the office gets annoyed.\r
796 \r
797 To try to avoid this behaviour, or any other cause of excessive\r
798 beeping, PuTTY includes a bell overload management feature. In the\r
799 default configuration, receiving more than five bell characters in a\r
800 two-second period will cause the overload feature to activate. Once\r
801 the overload feature is active, further bells will \I{terminal bell,\r
802 disabling} have no effect at all, so the rest of your binary file\r
803 will be sent to the screen in silence. After a period of five seconds\r
804 during which no further bells are received, the overload feature will\r
805 turn itself off again and bells will be re-enabled.\r
806 \r
807 If you want this feature completely disabled, you can turn it off\r
808 using the checkbox \q{Bell is temporarily disabled when over-used}.\r
809 \r
810 Alternatively, if you like the bell overload feature but don't agree\r
811 with the settings, you can configure the details: how many bells\r
812 constitute an overload, how short a time period they have to arrive\r
813 in to do so, and how much silent time is required before the\r
814 overload feature will deactivate itself.\r
815 \r
816 Bell overload mode is always deactivated by any keypress in the\r
817 terminal. This means it can respond to large unexpected streams of\r
818 data, but does not interfere with ordinary command-line activities\r
819 that generate beeps (such as filename completion).\r
820 \r
821 \H{config-features} The Features panel\r
822 \r
823 PuTTY's \i{terminal emulation} is very highly featured, and can do a lot\r
824 of things under remote server control. Some of these features can\r
825 cause problems due to buggy or strangely configured server\r
826 applications.\r
827 \r
828 The Features configuration panel allows you to disable some of\r
829 PuTTY's more advanced terminal features, in case they cause trouble.\r
830 \r
831 \S{config-features-application} Disabling application keypad and cursor keys\r
832 \r
833 \cfg{winhelp-topic}{features.application}\r
834 \r
835 \I{Application Keypad}Application keypad mode (see\r
836 \k{config-appkeypad}) and \I{Application Cursor Keys}application\r
837 cursor keys mode (see \k{config-appcursor}) alter the behaviour of\r
838 the keypad and cursor keys. Some applications enable these modes but\r
839 then do not deal correctly with the modified keys. You can force\r
840 these modes to be permanently disabled no matter what the server\r
841 tries to do.\r
842 \r
843 \S{config-features-mouse} Disabling \cw{xterm}-style \i{mouse reporting}\r
844 \r
845 \cfg{winhelp-topic}{features.mouse}\r
846 \r
847 PuTTY allows the server to send \i{control codes} that let it take over\r
848 the mouse and use it for purposes other than \i{copy and paste}.\r
849 Applications which use this feature include the text-mode web\r
850 browser \i\c{links}, the Usenet newsreader \i\c{trn} version 4, and the\r
851 file manager \i\c{mc} (Midnight Commander).\r
852 \r
853 If you find this feature inconvenient, you can disable it using the\r
854 \q{Disable xterm-style mouse reporting} control. With this box\r
855 ticked, the mouse will \e{always} do copy and paste in the normal\r
856 way.\r
857 \r
858 Note that even if the application takes over the mouse, you can\r
859 still manage PuTTY's copy and paste by holding down the Shift key\r
860 while you select and paste, unless you have deliberately turned this\r
861 feature off (see \k{config-mouseshift}).\r
862 \r
863 \S{config-features-resize} Disabling remote \i{terminal resizing}\r
864 \r
865 \cfg{winhelp-topic}{features.resize}\r
866 \r
867 PuTTY has the ability to change the terminal's size and position in\r
868 response to commands from the server. If you find PuTTY is doing\r
869 this unexpectedly or inconveniently, you can tell PuTTY not to\r
870 respond to those server commands.\r
871 \r
872 \S{config-features-altscreen} Disabling switching to the \i{alternate screen}\r
873 \r
874 \cfg{winhelp-topic}{features.altscreen}\r
875 \r
876 Many terminals, including PuTTY, support an \q{alternate screen}.\r
877 This is the same size as the ordinary terminal screen, but separate.\r
878 Typically a screen-based program such as a text editor might switch\r
879 the terminal to the alternate screen before starting up. Then at the\r
880 end of the run, it switches back to the primary screen, and you see\r
881 the screen contents just as they were before starting the editor.\r
882 \r
883 Some people prefer this not to happen. If you want your editor to\r
884 run in the same screen as the rest of your terminal activity, you\r
885 can disable the alternate screen feature completely.\r
886 \r
887 \S{config-features-retitle} Disabling remote \i{window title} changing\r
888 \r
889 \cfg{winhelp-topic}{features.retitle}\r
890 \r
891 PuTTY has the ability to change the window title in response to\r
892 commands from the server. If you find PuTTY is doing this\r
893 unexpectedly or inconveniently, you can tell PuTTY not to respond to\r
894 those server commands.\r
895 \r
896 \S{config-features-qtitle} Response to remote \i{window title} querying\r
897 \r
898 \cfg{winhelp-topic}{features.qtitle}\r
899 \r
900 PuTTY can optionally provide the xterm service of allowing server\r
901 applications to find out the local window title. This feature is\r
902 disabled by default, but you can turn it on if you really want it.\r
903 \r
904 NOTE that this feature is a \e{potential \i{security hazard}}. If a\r
905 malicious application can write data to your terminal (for example,\r
906 if you merely \c{cat} a file owned by someone else on the server\r
907 machine), it can change your window title (unless you have disabled\r
908 this as mentioned in \k{config-features-retitle}) and then use this\r
909 service to have the new window title sent back to the server as if\r
910 typed at the keyboard. This allows an attacker to fake keypresses\r
911 and potentially cause your server-side applications to do things you\r
912 didn't want. Therefore this feature is disabled by default, and we\r
913 recommend you do not set it to \q{Window title} unless you \e{really}\r
914 know what you are doing.\r
915 \r
916 There are three settings for this option:\r
917 \r
918 \dt \q{None}\r
919 \r
920 \dd PuTTY makes no response whatsoever to the relevant escape\r
921 sequence. This may upset server-side software that is expecting some\r
922 sort of response.\r
923 \r
924 \dt \q{Empty string}\r
925 \r
926 \dd PuTTY makes a well-formed response, but leaves it blank. Thus,\r
927 server-side software that expects a response is kept happy, but an\r
928 attacker cannot influence the response string. This is probably the\r
929 setting you want if you have no better ideas.\r
930 \r
931 \dt \q{Window title}\r
932 \r
933 \dd PuTTY responds with the actual window title. This is dangerous for\r
934 the reasons described above.\r
935 \r
936 \S{config-features-dbackspace} Disabling \i{destructive backspace}\r
937 \r
938 \cfg{winhelp-topic}{features.dbackspace}\r
939 \r
940 Normally, when PuTTY receives character 127 (^?) from the server, it\r
941 will perform a \q{destructive backspace}: move the cursor one space\r
942 left and delete the character under it. This can apparently cause\r
943 problems in some applications, so PuTTY provides the ability to\r
944 configure character 127 to perform a normal backspace (without\r
945 deleting a character) instead.\r
946 \r
947 \S{config-features-charset} Disabling remote \i{character set}\r
948 configuration\r
949 \r
950 \cfg{winhelp-topic}{features.charset}\r
951 \r
952 PuTTY has the ability to change its character set configuration in\r
953 response to commands from the server. Some programs send these\r
954 commands unexpectedly or inconveniently. In particular, \i{BitchX} (an\r
955 IRC client) seems to have a habit of reconfiguring the character set\r
956 to something other than the user intended.\r
957 \r
958 If you find that accented characters are not showing up the way you\r
959 expect them to, particularly if you're running BitchX, you could try\r
960 disabling the remote character set configuration commands.\r
961 \r
962 \S{config-features-shaping} Disabling \i{Arabic text shaping}\r
963 \r
964 \cfg{winhelp-topic}{features.arabicshaping}\r
965 \r
966 PuTTY supports shaping of Arabic text, which means that if your\r
967 server sends text written in the basic \i{Unicode} Arabic alphabet then\r
968 it will convert it to the correct display forms before printing it\r
969 on the screen.\r
970 \r
971 If you are using full-screen software which was not expecting this\r
972 to happen (especially if you are not an Arabic speaker and you\r
973 unexpectedly find yourself dealing with Arabic text files in\r
974 applications which are not Arabic-aware), you might find that the\r
975 \i{display becomes corrupted}. By ticking this box, you can disable\r
976 Arabic text shaping so that PuTTY displays precisely the characters\r
977 it is told to display.\r
978 \r
979 You may also find you need to disable bidirectional text display;\r
980 see \k{config-features-bidi}.\r
981 \r
982 \S{config-features-bidi} Disabling \i{bidirectional text} display\r
983 \r
984 \cfg{winhelp-topic}{features.bidi}\r
985 \r
986 PuTTY supports bidirectional text display, which means that if your\r
987 server sends text written in a language which is usually displayed\r
988 from right to left (such as \i{Arabic} or \i{Hebrew}) then PuTTY will\r
989 automatically flip it round so that it is displayed in the right\r
990 direction on the screen.\r
991 \r
992 If you are using full-screen software which was not expecting this\r
993 to happen (especially if you are not an Arabic speaker and you\r
994 unexpectedly find yourself dealing with Arabic text files in\r
995 applications which are not Arabic-aware), you might find that the\r
996 \i{display becomes corrupted}. By ticking this box, you can disable\r
997 bidirectional text display, so that PuTTY displays text from left to\r
998 right in all situations.\r
999 \r
1000 You may also find you need to disable Arabic text shaping;\r
1001 see \k{config-features-shaping}.\r
1002 \r
1003 \H{config-window} The Window panel\r
1004 \r
1005 The Window configuration panel allows you to control aspects of the\r
1006 \i{PuTTY window}.\r
1007 \r
1008 \S{config-winsize} Setting the \I{window size}size of the PuTTY window\r
1009 \r
1010 \cfg{winhelp-topic}{window.size}\r
1011 \r
1012 The \q{\ii{Columns}} and \q{\ii{Rows}} boxes let you set the PuTTY\r
1013 window to a precise size. Of course you can also \I{window resizing}drag\r
1014 the window to a new size while a session is running.\r
1015 \r
1016 \S{config-winsizelock} What to do when the window is resized\r
1017 \r
1018 \cfg{winhelp-topic}{window.resize}\r
1019 \r
1020 These options allow you to control what happens when the user tries\r
1021 to \I{window resizing}resize the PuTTY window using its window furniture.\r
1022 \r
1023 There are four options here:\r
1024 \r
1025 \b \q{Change the number of rows and columns}: the font size will not\r
1026 change. (This is the default.)\r
1027 \r
1028 \b \q{Change the size of the font}: the number of rows and columns in\r
1029 the terminal will stay the same, and the \i{font size} will change.\r
1030 \r
1031 \b \q{Change font size when maximised}: when the window is resized,\r
1032 the number of rows and columns will change, \e{except} when the window\r
1033 is \i{maximise}d (or restored), when the font size will change. (In\r
1034 this mode, holding down the Alt key while resizing will also cause the\r
1035 font size to change.)\r
1036 \r
1037 \b \q{Forbid resizing completely}: the terminal will refuse to be\r
1038 resized at all.\r
1039 \r
1040 \S{config-scrollback} Controlling \i{scrollback}\r
1041 \r
1042 \cfg{winhelp-topic}{window.scrollback}\r
1043 \r
1044 These options let you configure the way PuTTY keeps text after it\r
1045 scrolls off the top of the screen (see \k{using-scrollback}).\r
1046 \r
1047 The \q{Lines of scrollback} box lets you configure how many lines of\r
1048 text PuTTY keeps. The \q{Display scrollbar} options allow you to\r
1049 hide the \i{scrollbar} (although you can still view the scrollback using\r
1050 the keyboard as described in \k{using-scrollback}). You can separately\r
1051 configure whether the scrollbar is shown in \i{full-screen} mode and in\r
1052 normal modes.\r
1053 \r
1054 If you are viewing part of the scrollback when the server sends more\r
1055 text to PuTTY, the screen will revert to showing the current\r
1056 terminal contents. You can disable this behaviour by turning off\r
1057 \q{Reset scrollback on display activity}. You can also make the\r
1058 screen revert when you press a key, by turning on \q{Reset\r
1059 scrollback on keypress}.\r
1060 \r
1061 \S{config-erasetoscrollback} \q{Push erased text into scrollback}\r
1062 \r
1063 \cfg{winhelp-topic}{window.erased}\r
1064 \r
1065 When this option is enabled, the contents of the terminal screen\r
1066 will be pushed into the scrollback when a server-side application\r
1067 clears the screen, so that your scrollback will contain a better\r
1068 record of what was on your screen in the past.\r
1069 \r
1070 If the application switches to the \i{alternate screen} (see\r
1071 \k{config-features-altscreen} for more about this), then the\r
1072 contents of the primary screen will be visible in the scrollback\r
1073 until the application switches back again.\r
1074 \r
1075 This option is enabled by default.\r
1076 \r
1077 \H{config-appearance} The Appearance panel\r
1078 \r
1079 The Appearance configuration panel allows you to control aspects of\r
1080 the appearance of \I{PuTTY window}PuTTY's window.\r
1081 \r
1082 \S{config-cursor} Controlling the appearance of the \i{cursor}\r
1083 \r
1084 \cfg{winhelp-topic}{appearance.cursor}\r
1085 \r
1086 The \q{Cursor appearance} option lets you configure the cursor to be\r
1087 a block, an underline, or a vertical line. A block cursor becomes an\r
1088 empty box when the window loses focus; an underline or a vertical\r
1089 line becomes dotted.\r
1090 \r
1091 The \q{\ii{Cursor blinks}} option makes the cursor blink on and off. This\r
1092 works in any of the cursor modes.\r
1093 \r
1094 \S{config-font} Controlling the \i{font} used in the terminal window\r
1095 \r
1096 \cfg{winhelp-topic}{appearance.font}\r
1097 \r
1098 This option allows you to choose what font, in what \I{font size}size,\r
1099 the PuTTY terminal window uses to display the text in the session.\r
1100 \r
1101 By default, you will be offered a choice from all the fixed-width\r
1102 fonts installed on the system, since VT100-style terminal handling\r
1103 expects a fixed-width font. If you tick the box marked \q{Allow\r
1104 selection of variable-pitch fonts}, however, PuTTY will offer\r
1105 variable-width fonts as well: if you select one of these, the font\r
1106 will be coerced into fixed-size character cells, which will probably\r
1107 not look very good (but can work OK with some fonts).\r
1108 \r
1109 \S{config-mouseptr} \q{Hide \i{mouse pointer} when typing in window}\r
1110 \r
1111 \cfg{winhelp-topic}{appearance.hidemouse}\r
1112 \r
1113 If you enable this option, the mouse pointer will disappear if the\r
1114 PuTTY window is selected and you press a key. This way, it will not\r
1115 obscure any of the text in the window while you work in your\r
1116 session. As soon as you move the mouse, the pointer will reappear.\r
1117 \r
1118 This option is disabled by default, so the mouse pointer remains\r
1119 visible at all times.\r
1120 \r
1121 \S{config-winborder} Controlling the \i{window border}\r
1122 \r
1123 \cfg{winhelp-topic}{appearance.border}\r
1124 \r
1125 PuTTY allows you to configure the appearance of the window border to\r
1126 some extent.\r
1127 \r
1128 The checkbox marked \q{Sunken-edge border} changes the appearance of\r
1129 the window border to something more like a DOS box: the inside edge\r
1130 of the border is highlighted as if it sank down to meet the surface\r
1131 inside the window. This makes the border a little bit thicker as\r
1132 well. It's hard to describe well. Try it and see if you like it.\r
1133 \r
1134 You can also configure a completely blank gap between the text in\r
1135 the window and the border, using the \q{Gap between text and window\r
1136 edge} control. By default this is set at one pixel. You can reduce\r
1137 it to zero, or increase it further.\r
1138 \r
1139 \H{config-behaviour} The Behaviour panel\r
1140 \r
1141 The Behaviour configuration panel allows you to control aspects of\r
1142 the behaviour of \I{PuTTY window}PuTTY's window.\r
1143 \r
1144 \S{config-title} Controlling the \i{window title}\r
1145 \r
1146 \cfg{winhelp-topic}{appearance.title}\r
1147 \r
1148 The \q{Window title} edit box allows you to set the title of the\r
1149 PuTTY window. By default the window title will contain the \i{host name}\r
1150 followed by \q{PuTTY}, for example \c{server1.example.com - PuTTY}.\r
1151 If you want a different window title, this is where to set it.\r
1152 \r
1153 PuTTY allows the server to send \c{xterm} \i{control sequence}s which\r
1154 modify the title of the window in mid-session (unless this is disabled -\r
1155 see \k{config-features-retitle}); the title string set here\r
1156 is therefore only the \e{initial} window title.\r
1157 \r
1158 As well as the \e{window} title, there is also an \c{xterm}\r
1159 sequence to modify the \I{icon title}title of the window's \e{icon}.\r
1160 This makes sense in a windowing system where the window becomes an\r
1161 icon when minimised, such as Windows 3.1 or most X Window System\r
1162 setups; but in the Windows 95-like user interface it isn't as\r
1163 applicable.\r
1164 \r
1165 By default, PuTTY only uses the server-supplied \e{window} title, and\r
1166 ignores the icon title entirely. If for some reason you want to see\r
1167 both titles, check the box marked \q{Separate window and icon titles}.\r
1168 If you do this, PuTTY's window title and Taskbar \I{window caption}caption will\r
1169 change into the server-supplied icon title if you \i{minimise} the PuTTY\r
1170 window, and change back to the server-supplied window title if you\r
1171 restore it. (If the server has not bothered to supply a window or\r
1172 icon title, none of this will happen.)\r
1173 \r
1174 \S{config-warnonclose} \q{Warn before \i{closing window}}\r
1175 \r
1176 \cfg{winhelp-topic}{behaviour.closewarn}\r
1177 \r
1178 If you press the \i{Close button} in a PuTTY window that contains a\r
1179 running session, PuTTY will put up a warning window asking if you\r
1180 really meant to close the window. A window whose session has already\r
1181 terminated can always be closed without a warning.\r
1182 \r
1183 If you want to be able to close a window quickly, you can disable\r
1184 the \q{Warn before closing window} option.\r
1185 \r
1186 \S{config-altf4} \q{Window closes on \i{ALT-F4}}\r
1187 \r
1188 \cfg{winhelp-topic}{behaviour.altf4}\r
1189 \r
1190 By default, pressing ALT-F4 causes the \I{closing window}window to\r
1191 close (or a warning box to appear; see \k{config-warnonclose}). If you\r
1192 disable the \q{Window closes on ALT-F4} option, then pressing ALT-F4\r
1193 will simply send a key sequence to the server.\r
1194 \r
1195 \S{config-altspace} \q{\ii{System menu} appears on \i{ALT-Space}}\r
1196 \r
1197 \cfg{winhelp-topic}{behaviour.altspace}\r
1198 \r
1199 If this option is enabled, then pressing ALT-Space will bring up the\r
1200 PuTTY window's menu, like clicking on the top left corner. If it is\r
1201 disabled, then pressing ALT-Space will just send \c{ESC SPACE} to\r
1202 the server.\r
1203 \r
1204 Some \i{accessibility} programs for Windows may need this option\r
1205 enabling to be able to control PuTTY's window successfully. For\r
1206 instance, \i{Dragon NaturallySpeaking} requires it both to open the\r
1207 system menu via voice, and to close, minimise, maximise and restore\r
1208 the window.\r
1209 \r
1210 \S{config-altonly} \q{\ii{System menu} appears on \i{Alt} alone}\r
1211 \r
1212 \cfg{winhelp-topic}{behaviour.altonly}\r
1213 \r
1214 If this option is enabled, then pressing and releasing ALT will\r
1215 bring up the PuTTY window's menu, like clicking on the top left\r
1216 corner. If it is disabled, then pressing and releasing ALT will have\r
1217 no effect.\r
1218 \r
1219 \S{config-alwaysontop} \q{Ensure window is \i{always on top}}\r
1220 \r
1221 \cfg{winhelp-topic}{behaviour.alwaysontop}\r
1222 \r
1223 If this option is enabled, the PuTTY window will stay on top of all\r
1224 other windows.\r
1225 \r
1226 \S{config-fullscreen} \q{\ii{Full screen} on Alt-Enter}\r
1227 \r
1228 \cfg{winhelp-topic}{behaviour.altenter}\r
1229 \r
1230 If this option is enabled, then pressing Alt-Enter will cause the\r
1231 PuTTY window to become full-screen. Pressing Alt-Enter again will\r
1232 restore the previous window size.\r
1233 \r
1234 The full-screen feature is also available from the \ii{System menu}, even\r
1235 when it is configured not to be available on the Alt-Enter key. See\r
1236 \k{using-fullscreen}.\r
1237 \r
1238 \H{config-translation} The Translation panel\r
1239 \r
1240 The Translation configuration panel allows you to control the\r
1241 translation between the \i{character set} understood by the server and\r
1242 the character set understood by PuTTY.\r
1243 \r
1244 \S{config-charset} Controlling character set translation\r
1245 \r
1246 \cfg{winhelp-topic}{translation.codepage}\r
1247 \r
1248 During an interactive session, PuTTY receives a stream of 8-bit\r
1249 bytes from the server, and in order to display them on the screen it\r
1250 needs to know what character set to interpret them in. Similarly,\r
1251 PuTTY needs to know how to translate your keystrokes into the encoding\r
1252 the server expects. Unfortunately, there is no satisfactory\r
1253 mechanism for PuTTY and the server to communicate this information,\r
1254 so it must usually be manually configured.\r
1255 \r
1256 There are a lot of character sets to choose from. The \q{Remote\r
1257 character set} option lets you select one. By default PuTTY will\r
1258 attempt to choose a character set that is right for your \i{locale} as\r
1259 reported by Windows; if it gets it wrong, you can select a different\r
1260 one using this control.\r
1261 \r
1262 A few notable character sets are:\r
1263 \r
1264 \b The \i{ISO-8859} series are all standard character sets that include\r
1265 various accented characters appropriate for different sets of\r
1266 languages.\r
1267 \r
1268 \b The \i{Win125x} series are defined by Microsoft, for similar\r
1269 purposes. In particular Win1252 is almost equivalent to ISO-8859-1,\r
1270 but contains a few extra characters such as matched quotes and the\r
1271 Euro symbol.\r
1272 \r
1273 \b If you want the old IBM PC character set with block graphics and\r
1274 line-drawing characters, you can select \q{\i{CP437}}.\r
1275 \r
1276 \b PuTTY also supports \i{Unicode} mode, in which the data coming from\r
1277 the server is interpreted as being in the \i{UTF-8} encoding of Unicode,\r
1278 and keystrokes are sent UTF-8 encoded. If you select \q{UTF-8} as a\r
1279 character set you can use this mode. Not all server-side applications\r
1280 will support it.\r
1281 \r
1282 If you need support for a numeric \i{code page} which is not listed in\r
1283 the drop-down list, such as code page 866, then you can try entering\r
1284 its name manually (\c{\i{CP866}} for example) in the list box. If the\r
1285 underlying version of Windows has the appropriate translation table\r
1286 installed, PuTTY will use it.\r
1287 \r
1288 \S{config-cjk-ambig-wide} \q{Treat \i{CJK} ambiguous characters as wide}\r
1289 \r
1290 \cfg{winhelp-topic}{translation.cjkambigwide}\r
1291 \r
1292 There are \I{East Asian Ambiguous characters}some Unicode characters\r
1293 whose \I{character width}width is not well-defined. In most contexts, such\r
1294 characters should be treated as single-width for the purposes of \I{wrapping,\r
1295 terminal}wrapping and so on; however, in some CJK contexts, they are better\r
1296 treated as double-width for historical reasons, and some server-side\r
1297 applications may expect them to be displayed as such. Setting this option\r
1298 will cause PuTTY to take the double-width interpretation. \r
1299 \r
1300 If you use legacy CJK applications, and you find your lines are\r
1301 wrapping in the wrong places, or you are having other display\r
1302 problems, you might want to play with this setting.\r
1303 \r
1304 This option only has any effect in \i{UTF-8} mode (see \k{config-charset}).\r
1305 \r
1306 \S{config-cyr} \q{\i{Caps Lock} acts as \i{Cyrillic} switch}\r
1307 \r
1308 \cfg{winhelp-topic}{translation.cyrillic}\r
1309 \r
1310 This feature allows you to switch between a US/UK keyboard layout\r
1311 and a Cyrillic keyboard layout by using the Caps Lock key, if you\r
1312 need to type (for example) \i{Russian} and English side by side in the\r
1313 same document.\r
1314 \r
1315 Currently this feature is not expected to work properly if your\r
1316 native keyboard layout is not US or UK.\r
1317 \r
1318 \S{config-linedraw} Controlling display of \i{line-drawing characters}\r
1319 \r
1320 \cfg{winhelp-topic}{translation.linedraw}\r
1321 \r
1322 VT100-series terminals allow the server to send \i{control sequence}s that\r
1323 shift temporarily into a separate character set for drawing simple\r
1324 lines and boxes. However, there are a variety of ways in which PuTTY\r
1325 can attempt to find appropriate characters, and the right one to use\r
1326 depends on the locally configured \i{font}. In general you should probably\r
1327 try lots of options until you find one that your particular font\r
1328 supports.\r
1329 \r
1330 \b \q{Use Unicode line drawing code points} tries to use the box\r
1331 characters that are present in \i{Unicode}. For good Unicode-supporting\r
1332 fonts this is probably the most reliable and functional option.\r
1333 \r
1334 \b \q{Poor man's line drawing} assumes that the font \e{cannot}\r
1335 generate the line and box characters at all, so it will use the\r
1336 \c{+}, \c{-} and \c{|} characters to draw approximations to boxes.\r
1337 You should use this option if none of the other options works.\r
1338 \r
1339 \b \q{Font has XWindows encoding} is for use with fonts that have a\r
1340 special encoding, where the lowest 32 character positions (below the\r
1341 ASCII printable range) contain the line-drawing characters. This is\r
1342 unlikely to be the case with any standard Windows font; it will\r
1343 probably only apply to custom-built fonts or fonts that have been\r
1344 automatically converted from the X Window System.\r
1345 \r
1346 \b \q{Use font in both ANSI and OEM modes} tries to use the same\r
1347 font in two different character sets, to obtain a wider range of\r
1348 characters. This doesn't always work; some fonts claim to be a\r
1349 different size depending on which character set you try to use.\r
1350 \r
1351 \b \q{Use font in OEM mode only} is more reliable than that, but can\r
1352 miss out other characters from the main character set.\r
1353 \r
1354 \S{config-linedrawpaste} Controlling \i{copy and paste} of line drawing\r
1355 characters\r
1356 \r
1357 \cfg{winhelp-topic}{selection.linedraw}\r
1358 \r
1359 By default, when you copy and paste a piece of the PuTTY screen that\r
1360 contains VT100 line and box drawing characters, PuTTY will paste\r
1361 them in the form they appear on the screen: either \i{Unicode} line\r
1362 drawing code points, or the \q{poor man's} line-drawing characters\r
1363 \c{+}, \c{-} and \c{|}. The checkbox \q{Copy and paste VT100 line\r
1364 drawing chars as lqqqk} disables this feature, so line-drawing\r
1365 characters will be pasted as the \i{ASCII} characters that were printed\r
1366 to produce them. This will typically mean they come out mostly as\r
1367 \c{q} and \c{x}, with a scattering of \c{jklmntuvw} at the corners.\r
1368 This might be useful if you were trying to recreate the same box\r
1369 layout in another program, for example.\r
1370 \r
1371 Note that this option only applies to line-drawing characters which\r
1372 \e{were} printed by using the VT100 mechanism. Line-drawing\r
1373 characters that were received as Unicode code points will paste as\r
1374 Unicode always.\r
1375 \r
1376 \H{config-selection} The Selection panel\r
1377 \r
1378 The Selection panel allows you to control the way \i{copy and paste}\r
1379 work in the PuTTY window.\r
1380 \r
1381 \S{config-rtfpaste} Pasting in \i{Rich Text Format}\r
1382 \r
1383 \cfg{winhelp-topic}{selection.rtf}\r
1384 \r
1385 If you enable \q{Paste to clipboard in RTF as well as plain text},\r
1386 PuTTY will write formatting information to the clipboard as well as\r
1387 the actual text you copy. The effect of this is\r
1388 that if you paste into (say) a word processor, the text will appear\r
1389 in the word processor in the same \i{font}, \i{colour}, and style \r
1390 (e.g. bold, underline) PuTTY was using to display it.\r
1391 \r
1392 This option can easily be inconvenient, so by default it is\r
1393 disabled.\r
1394 \r
1395 \S{config-mouse} Changing the actions of the mouse buttons\r
1396 \r
1397 \cfg{winhelp-topic}{selection.buttons}\r
1398 \r
1399 PuTTY's copy and paste mechanism is by default modelled on the Unix\r
1400 \c{xterm} application. The X Window System uses a three-button mouse,\r
1401 and the convention is that the \i{left button} \I{selecting text}selects,\r
1402 the \i{right button} extends an existing selection, and the\r
1403 \i{middle button} pastes.\r
1404 \r
1405 Windows often only has two mouse buttons, so in PuTTY's default\r
1406 configuration (\q{Compromise}), the \e{right} button pastes, and the\r
1407 \e{middle} button (if you have one) \I{adjusting a selection}extends\r
1408 a selection.\r
1409 \r
1410 If you have a \i{three-button mouse} and you are already used to the\r
1411 \c{xterm} arrangement, you can select it using the \q{Action of\r
1412 mouse buttons} control.\r
1413 \r
1414 Alternatively, with the \q{Windows} option selected, the middle\r
1415 button extends, and the right button brings up a \i{context menu} (on\r
1416 which one of the options is \q{Paste}). (This context menu is always\r
1417 available by holding down Ctrl and right-clicking, regardless of the\r
1418 setting of this option.)\r
1419 \r
1420 \S{config-mouseshift} \q{Shift overrides application's use of mouse}\r
1421 \r
1422 \cfg{winhelp-topic}{selection.shiftdrag}\r
1423 \r
1424 PuTTY allows the server to send \i{control codes} that let it\r
1425 \I{mouse reporting}take over the mouse and use it for purposes other\r
1426 than \i{copy and paste}.\r
1427 Applications which use this feature include the text-mode web\r
1428 browser \c{links}, the Usenet newsreader \c{trn} version 4, and the\r
1429 file manager \c{mc} (Midnight Commander).\r
1430 \r
1431 When running one of these applications, pressing the mouse buttons\r
1432 no longer performs copy and paste. If you do need to copy and paste,\r
1433 you can still do so if you hold down Shift while you do your mouse\r
1434 clicks.\r
1435 \r
1436 However, it is possible in theory for applications to even detect\r
1437 and make use of Shift + mouse clicks. We don't know of any\r
1438 applications that do this, but in case someone ever writes one,\r
1439 unchecking the \q{Shift overrides application's use of mouse}\r
1440 checkbox will cause Shift + mouse clicks to go to the server as well\r
1441 (so that mouse-driven copy and paste will be completely disabled).\r
1442 \r
1443 If you want to prevent the application from taking over the mouse at\r
1444 all, you can do this using the Features control panel; see\r
1445 \k{config-features-mouse}.\r
1446 \r
1447 \S{config-rectselect} Default selection mode\r
1448 \r
1449 \cfg{winhelp-topic}{selection.rect}\r
1450 \r
1451 As described in \k{using-selection}, PuTTY has two modes of\r
1452 selecting text to be copied to the clipboard. In the default mode\r
1453 (\q{Normal}), dragging the mouse from point A to point B selects to\r
1454 the end of the line containing A, all the lines in between, and from\r
1455 the very beginning of the line containing B. In the other mode\r
1456 (\q{Rectangular block}), dragging the mouse between two points\r
1457 defines a rectangle, and everything within that rectangle is copied.\r
1458 \r
1459 Normally, you have to hold down Alt while dragging the mouse to\r
1460 select a rectangular block. Using the \q{Default selection mode}\r
1461 control, you can set \i{rectangular selection} as the default, and then\r
1462 you have to hold down Alt to get the \e{normal} behaviour.\r
1463 \r
1464 \S{config-charclasses} Configuring \i{word-by-word selection}\r
1465 \r
1466 \cfg{winhelp-topic}{selection.charclasses}\r
1467 \r
1468 PuTTY will select a word at a time in the terminal window if you\r
1469 \i{double-click} to begin the drag. This panel allows you to control\r
1470 precisely what is considered to be a word.\r
1471 \r
1472 Each character is given a \e{class}, which is a small number\r
1473 (typically 0, 1 or 2). PuTTY considers a single word to be any\r
1474 number of adjacent characters in the same class. So by modifying the\r
1475 assignment of characters to classes, you can modify the word-by-word\r
1476 selection behaviour.\r
1477 \r
1478 In the default configuration, the \i{character classes} are:\r
1479 \r
1480 \b Class 0 contains \i{white space} and control characters.\r
1481 \r
1482 \b Class 1 contains most \i{punctuation}.\r
1483 \r
1484 \b Class 2 contains letters, numbers and a few pieces of punctuation\r
1485 (the double quote, minus sign, period, forward slash and\r
1486 underscore).\r
1487 \r
1488 So, for example, if you assign the \c{@} symbol into character class\r
1489 2, you will be able to select an e-mail address with just a double\r
1490 click.\r
1491 \r
1492 In order to adjust these assignments, you start by selecting a group\r
1493 of characters in the list box. Then enter a class number in the edit\r
1494 box below, and press the \q{Set} button.\r
1495 \r
1496 This mechanism currently only covers ASCII characters, because it\r
1497 isn't feasible to expand the list to cover the whole of Unicode.\r
1498 \r
1499 Character class definitions can be modified by \i{control sequence}s\r
1500 sent by the server. This configuration option controls the\r
1501 \e{default} state, which will be restored when you reset the\r
1502 terminal (see \k{reset-terminal}). However, if you modify this\r
1503 option in mid-session using \q{Change Settings}, it will take effect\r
1504 immediately.\r
1505 \r
1506 \H{config-colours} The Colours panel\r
1507 \r
1508 The Colours panel allows you to control PuTTY's use of \i{colour}.\r
1509 \r
1510 \S{config-ansicolour} \q{Allow terminal to specify \i{ANSI colours}}\r
1511 \r
1512 \cfg{winhelp-topic}{colours.ansi}\r
1513 \r
1514 This option is enabled by default. If it is disabled, PuTTY will\r
1515 ignore any \i{control sequence}s sent by the server to request coloured\r
1516 text.\r
1517 \r
1518 If you have a particularly garish application, you might want to\r
1519 turn this option off and make PuTTY only use the default foreground\r
1520 and background colours.\r
1521 \r
1522 \S{config-xtermcolour} \q{Allow terminal to use xterm \i{256-colour mode}}\r
1523 \r
1524 \cfg{winhelp-topic}{colours.xterm256}\r
1525 \r
1526 This option is enabled by default. If it is disabled, PuTTY will\r
1527 ignore any control sequences sent by the server which use the\r
1528 extended 256-colour mode supported by recent versions of \cw{xterm}.\r
1529 \r
1530 If you have an application which is supposed to use 256-colour mode\r
1531 and it isn't working, you may find you need to tell your server that\r
1532 your terminal supports 256 colours. On Unix, you do this by ensuring\r
1533 that the setting of \i\cw{TERM} describes a 256-colour-capable\r
1534 terminal. You can check this using a command such as \c{infocmp}:\r
1535 \r
1536 \c $ infocmp | grep colors\r
1537 \c         colors#256, cols#80, it#8, lines#24, pairs#256,\r
1538 \e         bbbbbbbbbb\r
1539 \r
1540 If you do not see \cq{colors#256} in the output, you may need to\r
1541 change your terminal setting. On modern Linux machines, you could\r
1542 try \cq{xterm-256color}.\r
1543 \r
1544 \S{config-boldcolour} \q{Bolded text is a different colour}\r
1545 \r
1546 \cfg{winhelp-topic}{colours.bold}\r
1547 \r
1548 When the server sends a \i{control sequence} indicating that some text\r
1549 should be displayed in \i{bold}, PuTTY can handle this two ways. It can\r
1550 either change the \i{font} for a bold version, or use the same font in a\r
1551 brighter colour. This control lets you choose which.\r
1552 \r
1553 By default the box is checked, so non-bold text is displayed in\r
1554 light grey and bold text is displayed in bright white (and similarly\r
1555 in other colours). If you uncheck the box, bold and non-bold text\r
1556 will be displayed in the same colour, and instead the font will\r
1557 change to indicate the difference.\r
1558 \r
1559 \S{config-logpalette} \q{Attempt to use \i{logical palettes}}\r
1560 \r
1561 \cfg{winhelp-topic}{colours.logpal}\r
1562 \r
1563 Logical palettes are a mechanism by which a Windows application\r
1564 running on an \i{8-bit colour} display can select precisely the colours\r
1565 it wants instead of going with the Windows standard defaults.\r
1566 \r
1567 If you are not getting the colours you ask for on an 8-bit display,\r
1568 you can try enabling this option. However, be warned that it's never\r
1569 worked very well.\r
1570 \r
1571 \S{config-syscolour} \q{Use \i{system colours}}\r
1572 \r
1573 \cfg{winhelp-topic}{colours.system}\r
1574 \r
1575 Enabling this option will cause PuTTY to ignore the configured colours\r
1576 for \I{default background}\I{default foreground}\q{Default\r
1577 Background/Foreground} and \I{cursor colour}\q{Cursor Colour/Text} (see\r
1578 \k{config-colourcfg}), instead going with the system-wide defaults.\r
1579 \r
1580 Note that non-bold and \i{bold text} will be the same colour if this\r
1581 option is enabled. You might want to change to indicating bold text\r
1582 by font changes (see \k{config-boldcolour}).\r
1583 \r
1584 \S{config-colourcfg} Adjusting the colours in the \i{terminal window}\r
1585 \r
1586 \cfg{winhelp-topic}{colours.config}\r
1587 \r
1588 The main colour control allows you to specify exactly what colours\r
1589 things should be displayed in. To modify one of the PuTTY colours,\r
1590 use the list box to select which colour you want to modify. The \i{RGB\r
1591 values} for that colour will appear on the right-hand side of the\r
1592 list box. Now, if you press the \q{Modify} button, you will be\r
1593 presented with a colour selector, in which you can choose a new\r
1594 colour to go in place of the old one. (You may also edit the RGB\r
1595 values directly in the edit boxes, if you wish; each value is an\r
1596 integer from 0 to 255.)\r
1597 \r
1598 PuTTY allows you to set the \i{cursor colour}, the \i{default foreground}\r
1599 and \I{default background}background, and the precise shades of all the\r
1600 \I{ANSI colours}ANSI configurable colours (black, red, green, yellow, blue,\r
1601 magenta, cyan, and white). You can also modify the precise shades used for\r
1602 the \i{bold} versions of these colours; these are used to display bold text\r
1603 if you have selected \q{Bolded text is a different colour}, and can also be\r
1604 used if the server asks specifically to use them. (Note that \q{Default\r
1605 Bold Background} is \e{not} the background colour used for bold text;\r
1606 it is only used if the server specifically asks for a bold\r
1607 background.)\r
1608 \r
1609 \H{config-connection} The Connection panel\r
1610 \r
1611 The Connection panel allows you to configure options that apply to\r
1612 more than one type of \i{connection}.\r
1613 \r
1614 \S{config-keepalive} Using \i{keepalives} to prevent disconnection\r
1615 \r
1616 \cfg{winhelp-topic}{connection.keepalive}\r
1617 \r
1618 If you find your sessions are closing unexpectedly (most often with\r
1619 \q{Connection reset by peer}) after they have been idle for a while,\r
1620 you might want to try using this option.\r
1621 \r
1622 Some network \i{routers} and \i{firewalls} need to keep track of all\r
1623 connections through them. Usually, these firewalls will assume a\r
1624 connection is dead if no data is transferred in either direction\r
1625 after a certain time interval. This can cause PuTTY sessions to be\r
1626 unexpectedly closed by the firewall if no traffic is seen in the\r
1627 session for some time.\r
1628 \r
1629 The keepalive option (\q{Seconds between keepalives}) allows you to\r
1630 configure PuTTY to send data through the session at regular\r
1631 intervals, in a way that does not disrupt the actual terminal\r
1632 session. If you find your firewall is cutting \i{idle connections} off,\r
1633 you can try entering a non-zero value in this field. The value is\r
1634 measured in seconds; so, for example, if your firewall cuts\r
1635 connections off after ten minutes then you might want to enter 300\r
1636 seconds (5 minutes) in the box.\r
1637 \r
1638 Note that keepalives are not always helpful. They help if you have a\r
1639 firewall which drops your connection after an idle period; but if\r
1640 the network between you and the server suffers from \i{breaks in\r
1641 connectivity} then keepalives can actually make things worse. If a\r
1642 session is idle, and connectivity is temporarily lost between the\r
1643 endpoints, but the connectivity is restored before either side tries\r
1644 to send anything, then there will be no problem - neither endpoint\r
1645 will notice that anything was wrong. However, if one side does send\r
1646 something during the break, it will repeatedly try to re-send, and\r
1647 eventually give up and abandon the connection. Then when\r
1648 connectivity is restored, the other side will find that the first\r
1649 side doesn't believe there is an open connection any more.\r
1650 Keepalives can make this sort of problem worse, because they\r
1651 increase the probability that PuTTY will attempt to send data during\r
1652 a break in connectivity. (Other types of periodic network activity\r
1653 can cause this behaviour; in particular, SSH-2 re-keys can have\r
1654 this effect. See \k{config-ssh-kex-rekey}.)\r
1655 \r
1656 Therefore, you might find that keepalives help\r
1657 connection loss, or you might find they make it worse, depending on\r
1658 what \e{kind} of network problems you have between you and the\r
1659 server.\r
1660 \r
1661 Keepalives are only supported in Telnet and SSH; the Rlogin and Raw\r
1662 protocols offer no way of implementing them. (For an alternative, see\r
1663 \k{config-tcp-keepalives}.)\r
1664 \r
1665 Note that if you are using \i{SSH-1} and the server has a bug that makes\r
1666 it unable to deal with SSH-1 ignore messages (see\r
1667 \k{config-ssh-bug-ignore1}), enabling keepalives will have no effect.\r
1668 \r
1669 \S{config-nodelay} \q{Disable \i{Nagle's algorithm}}\r
1670 \r
1671 \cfg{winhelp-topic}{connection.nodelay}\r
1672 \r
1673 Nagle's algorithm is a detail of TCP/IP implementations that tries\r
1674 to minimise the number of small data packets sent down a network\r
1675 connection. With Nagle's algorithm enabled, PuTTY's \i{bandwidth} usage\r
1676 will be slightly more efficient; with it disabled, you may find you\r
1677 get a faster response to your keystrokes when connecting to some\r
1678 types of server.\r
1679 \r
1680 The Nagle algorithm is disabled by default for \i{interactive connections}.\r
1681 \r
1682 \S{config-tcp-keepalives} \q{Enable \i{TCP keepalives}}\r
1683 \r
1684 \cfg{winhelp-topic}{connection.tcpkeepalive}\r
1685 \r
1686 \e{NOTE:} TCP keepalives should not be confused with the\r
1687 application-level keepalives described in \k{config-keepalive}. If in\r
1688 doubt, you probably want application-level keepalives; TCP keepalives\r
1689 are provided for completeness.\r
1690 \r
1691 The idea of TCP keepalives is similar to application-level keepalives,\r
1692 and the same caveats apply. The main differences are:\r
1693 \r
1694 \b TCP keepalives are available on \e{all} connection types, including\r
1695 Raw and Rlogin.\r
1696 \r
1697 \b The interval between TCP keepalives is usually much longer,\r
1698 typically two hours; this is set by the operating system, and cannot\r
1699 be configured within PuTTY.\r
1700 \r
1701 \b If the operating system does not receive a response to a keepalive,\r
1702 it may send out more in quick succession and terminate the connection\r
1703 if no response is received.\r
1704 \r
1705 TCP keepalives may be more useful for ensuring that \i{half-open connections}\r
1706 are terminated than for keeping a connection alive.\r
1707 \r
1708 TCP keepalives are disabled by default.\r
1709 \r
1710 \S{config-address-family} \I{Internet protocol version}\q{Internet protocol}\r
1711 \r
1712 \cfg{winhelp-topic}{connection.ipversion}\r
1713 \r
1714 This option allows the user to select between the old and new\r
1715 Internet protocols and addressing schemes (\i{IPv4} and \i{IPv6}).\r
1716 The selected protocol will be used for most outgoing network\r
1717 connections (including connections to \I{proxy}proxies); however,\r
1718 tunnels have their own configuration, for which see\r
1719 \k{config-ssh-portfwd-address-family}.\r
1720 \r
1721 The default setting is \q{Auto}, which means PuTTY will do something\r
1722 sensible and try to guess which protocol you wanted. (If you specify\r
1723 a literal \i{Internet address}, it will use whichever protocol that\r
1724 address implies. If you provide a \i{hostname}, it will see what kinds\r
1725 of address exist for that hostname; it will use IPv6 if there is an\r
1726 IPv6 address available, and fall back to IPv4 if not.)\r
1727 \r
1728 If you need to force PuTTY to use a particular protocol, you can\r
1729 explicitly set this to \q{IPv4} or \q{IPv6}.\r
1730 \r
1731 \S{config-loghost} \I{logical host name}\q{Logical name of remote host}\r
1732 \r
1733 \cfg{winhelp-topic}{connection.loghost}\r
1734 \r
1735 This allows you to tell PuTTY that the host it will really end up\r
1736 connecting to is different from where it thinks it is making a\r
1737 network connection.\r
1738 \r
1739 You might use this, for instance, if you had set up an SSH port\r
1740 forwarding in one PuTTY session so that connections to some\r
1741 arbitrary port (say, \cw{localhost} port 10022) were forwarded to a\r
1742 second machine's SSH port (say, \cw{foovax} port 22), and then\r
1743 started a second PuTTY connecting to the forwarded port.\r
1744 \r
1745 In normal usage, the second PuTTY will access the host key cache\r
1746 under the host name and port it actually connected to (i.e.\r
1747 \cw{localhost} port 10022 in this example). Using the logical host\r
1748 name option, however, you can configure the second PuTTY to cache\r
1749 the host key under the name of the host \e{you} know that it's\r
1750 \e{really} going to end up talking to (here \c{foovax}).\r
1751 \r
1752 This can be useful if you expect to connect to the same actual\r
1753 server through many different channels (perhaps because your port\r
1754 forwarding arrangements keep changing): by consistently setting the\r
1755 logical host name, you can arrange that PuTTY will not keep asking\r
1756 you to reconfirm its host key. Conversely, if you expect to use the\r
1757 same local port number for port forwardings to lots of different\r
1758 servers, you probably didn't want any particular server's host key\r
1759 cached under that local port number.\r
1760 \r
1761 If you just enter a host name for this option, PuTTY will cache the\r
1762 SSH host key under the default SSH port for that host, irrespective\r
1763 of the port you really connected to (since the typical scenario is\r
1764 like the above example: you connect to a silly real port number and\r
1765 your connection ends up forwarded to the normal port-22 SSH server\r
1766 of some other machine). To override this, you can append a port\r
1767 number to the logical host name, separated by a colon. E.g. entering\r
1768 \cq{foovax:2200} as the logical host name will cause the host key to\r
1769 be cached as if you had connected to port 2200 of \c{foovax}.\r
1770 \r
1771 If you provide a host name using this option, it is also displayed\r
1772 in other locations which contain the remote host name, such as the\r
1773 default window title and the default SSH password prompt. This\r
1774 reflects the fact that this is the host you're \e{really} connecting\r
1775 to, which is more important than the mere means you happen to be\r
1776 using to contact that host. (This applies even if you're using a\r
1777 protocol other than SSH.)\r
1778 \r
1779 \H{config-data} The Data panel\r
1780 \r
1781 The Data panel allows you to configure various pieces of data which\r
1782 can be sent to the server to affect your connection at the far end.\r
1783 \r
1784 Each option on this panel applies to more than one protocol.\r
1785 Options which apply to only one protocol appear on that protocol's\r
1786 configuration panels.\r
1787 \r
1788 \S{config-username} \q{\ii{Auto-login username}}\r
1789 \r
1790 \cfg{winhelp-topic}{connection.username}\r
1791 \r
1792 All three of the SSH, Telnet and Rlogin protocols allow you to\r
1793 specify what user name you want to log in as, without having to type\r
1794 it explicitly every time. (Some Telnet servers don't support this.)\r
1795 \r
1796 In this box you can type that user name.\r
1797 \r
1798 \S{config-username-from-env} Use of system username\r
1799 \r
1800 \cfg{winhelp-topic}{connection.usernamefromenv}\r
1801 \r
1802 When the previous box (\k{config-username}) is left blank, by default,\r
1803 PuTTY will prompt for a username at the time you make a connection.\r
1804 \r
1805 In some environments, such as the networks of large organisations\r
1806 implementing \i{single sign-on}, a more sensible default may be to use\r
1807 the name of the user logged in to the local operating system (if any);\r
1808 this is particularly likely to be useful with \i{GSSAPI} authentication\r
1809 (see \k{config-ssh-auth-gssapi}). This control allows you to change\r
1810 the default behaviour.\r
1811 \r
1812 The current system username is displayed in the dialog as a\r
1813 convenience. It is not saved in the configuration; if a saved session\r
1814 is later used by a different user, that user's name will be used.\r
1815 \r
1816 \S{config-termtype} \q{\ii{Terminal-type} string}\r
1817 \r
1818 \cfg{winhelp-topic}{connection.termtype}\r
1819 \r
1820 Most servers you might connect to with PuTTY are designed to be\r
1821 connected to from lots of different types of terminal. In order to\r
1822 send the right \i{control sequence}s to each one, the server will need\r
1823 to know what type of terminal it is dealing with. Therefore, each of\r
1824 the SSH, Telnet and Rlogin protocols allow a text string to be sent\r
1825 down the connection describing the terminal.  On a \i{Unix} server,\r
1826 this selects an entry from the \i\c{termcap} or \i\c{terminfo} database\r
1827 that tells applications what \i{control sequences} to send to the\r
1828 terminal, and what character sequences to expect the \i{keyboard}\r
1829 to generate.\r
1830 \r
1831 PuTTY attempts to emulate the Unix \i\c{xterm} program, and by default\r
1832 it reflects this by sending \c{xterm} as a terminal-type string. If\r
1833 you find this is not doing what you want - perhaps the remote\r
1834 system reports \q{Unknown terminal type} - you could try setting\r
1835 this to something different, such as \i\c{vt220}.\r
1836 \r
1837 If you're not sure whether a problem is due to the terminal type\r
1838 setting or not, you probably need to consult the manual for your\r
1839 application or your server.\r
1840 \r
1841 \S{config-termspeed} \q{\ii{Terminal speed}s}\r
1842 \r
1843 \cfg{winhelp-topic}{connection.termspeed}\r
1844 \r
1845 The Telnet, Rlogin, and SSH protocols allow the client to specify\r
1846 terminal speeds to the server.\r
1847 \r
1848 This parameter does \e{not} affect the actual speed of the connection,\r
1849 which is always \q{as fast as possible}; it is just a hint that is\r
1850 sometimes used by server software to modify its behaviour. For\r
1851 instance, if a slow speed is indicated, the server may switch to a\r
1852 less \i{bandwidth}-hungry display mode.\r
1853 \r
1854 The value is usually meaningless in a network environment, but\r
1855 PuTTY lets you configure it, in case you find the server is reacting\r
1856 badly to the default value.\r
1857 \r
1858 The format is a pair of numbers separated by a comma, for instance,\r
1859 \c{38400,38400}. The first number represents the output speed\r
1860 (\e{from} the server) in bits per second, and the second is the input\r
1861 speed (\e{to} the server). (Only the first is used in the Rlogin\r
1862 protocol.)\r
1863 \r
1864 This option has no effect on Raw connections.\r
1865 \r
1866 \S{config-environ} Setting \i{environment variables} on the server\r
1867 \r
1868 \cfg{winhelp-topic}{telnet.environ}\r
1869 \r
1870 The Telnet protocol provides a means for the client to pass\r
1871 environment variables to the server. Many Telnet servers have\r
1872 stopped supporting this feature due to security flaws, but PuTTY\r
1873 still supports it for the benefit of any servers which have found\r
1874 other ways around the security problems than just disabling the\r
1875 whole mechanism.\r
1876 \r
1877 Version 2 of the SSH protocol also provides a similar mechanism,\r
1878 which is easier to implement without security flaws. Newer \i{SSH-2}\r
1879 servers are more likely to support it than older ones.\r
1880 \r
1881 This configuration data is not used in the SSH-1, rlogin or raw\r
1882 protocols.\r
1883 \r
1884 To add an environment variable to the list transmitted down the\r
1885 connection, you enter the variable name in the \q{Variable} box,\r
1886 enter its value in the \q{Value} box, and press the \q{Add} button.\r
1887 To remove one from the list, select it in the list box and press\r
1888 \q{Remove}.\r
1889 \r
1890 \H{config-proxy} The Proxy panel\r
1891 \r
1892 \cfg{winhelp-topic}{proxy.main}\r
1893 \r
1894 The \ii{Proxy} panel allows you to configure PuTTY to use various types\r
1895 of proxy in order to make its network connections. The settings in\r
1896 this panel affect the primary network connection forming your PuTTY\r
1897 session, and also any extra connections made as a result of SSH \i{port\r
1898 forwarding} (see \k{using-port-forwarding}).\r
1899 \r
1900 Note that unlike some software (such as web browsers), PuTTY does not\r
1901 attempt to automatically determine whether to use a proxy and (if so)\r
1902 which one to use for a given destination. If you need to use a proxy,\r
1903 it must always be explicitly configured.\r
1904 \r
1905 \S{config-proxy-type} Setting the proxy type\r
1906 \r
1907 \cfg{winhelp-topic}{proxy.type}\r
1908 \r
1909 The \q{Proxy type} radio buttons allow you to configure what type of\r
1910 proxy you want PuTTY to use for its network connections. The default\r
1911 setting is \q{None}; in this mode no proxy is used for any\r
1912 connection.\r
1913 \r
1914 \b Selecting \I{HTTP proxy}\q{HTTP} allows you to proxy your connections\r
1915 through a web server supporting the HTTP \cw{CONNECT} command, as documented\r
1916 in \W{http://www.ietf.org/rfc/rfc2817.txt}{RFC 2817}.\r
1917 \r
1918 \b Selecting \q{SOCKS 4} or \q{SOCKS 5} allows you to proxy your\r
1919 connections through a \i{SOCKS server}.\r
1920 \r
1921 \b Many firewalls implement a less formal type of proxy in which a\r
1922 user can make a Telnet connection directly to the firewall machine\r
1923 and enter a command such as \c{connect myhost.com 22} to connect\r
1924 through to an external host. Selecting \I{Telnet proxy}\q{Telnet}\r
1925 allows you to tell PuTTY to use this type of proxy.\r
1926 \r
1927 \b Selecting \I{Local proxy}\q{Local} allows you to specify an arbitrary\r
1928 command on the local machine to act as a proxy. When the session is\r
1929 started, instead of creating a TCP connection, PuTTY runs the command\r
1930 (specified in \k{config-proxy-command}), and uses its standard input and\r
1931 output streams.\r
1932 \r
1933 \lcont{\r
1934 This could be used, for instance, to talk to some kind of network proxy\r
1935 that PuTTY does not natively support; or you could tunnel a connection\r
1936 over something other than TCP/IP entirely.\r
1937 \r
1938 If you want your local proxy command to make a secondary SSH\r
1939 connection to a proxy host and then tunnel the primary connection\r
1940 over that, you might well want the \c{-nc} command-line option in\r
1941 Plink. See \k{using-cmdline-ncmode} for more information.\r
1942 }\r
1943 \r
1944 \S{config-proxy-exclude} Excluding parts of the network from proxying\r
1945 \r
1946 \cfg{winhelp-topic}{proxy.exclude}\r
1947 \r
1948 Typically you will only need to use a proxy to connect to non-local\r
1949 parts of your network; for example, your proxy might be required for\r
1950 connections outside your company's internal network. In the\r
1951 \q{Exclude Hosts/IPs} box you can enter ranges of IP addresses, or\r
1952 ranges of DNS names, for which PuTTY will avoid using the proxy and\r
1953 make a direct connection instead.\r
1954 \r
1955 The \q{Exclude Hosts/IPs} box may contain more than one exclusion\r
1956 range, separated by commas. Each range can be an IP address or a DNS\r
1957 name, with a \c{*} character allowing wildcards. For example:\r
1958 \r
1959 \c *.example.com\r
1960 \r
1961 This excludes any host with a name ending in \c{.example.com} from\r
1962 proxying.\r
1963 \r
1964 \c 192.168.88.*\r
1965 \r
1966 This excludes any host with an IP address starting with 192.168.88\r
1967 from proxying.\r
1968 \r
1969 \c 192.168.88.*,*.example.com\r
1970 \r
1971 This excludes both of the above ranges at once.\r
1972 \r
1973 Connections to the local host (the host name \i\c{localhost}, and any\r
1974 \i{loopback IP address}) are never proxied, even if the proxy exclude\r
1975 list does not explicitly contain them. It is very unlikely that this\r
1976 behaviour would ever cause problems, but if it does you can change\r
1977 it by enabling \q{Consider proxying local host connections}.\r
1978 \r
1979 Note that if you are doing \I{proxy DNS}DNS at the proxy (see\r
1980 \k{config-proxy-dns}), you should make sure that your proxy\r
1981 exclusion settings do not depend on knowing the IP address of a\r
1982 host. If the name is passed on to the proxy without PuTTY looking it\r
1983 up, it will never know the IP address and cannot check it against\r
1984 your list.\r
1985 \r
1986 \S{config-proxy-dns} \I{proxy DNS}\ii{Name resolution} when using a proxy\r
1987 \r
1988 \cfg{winhelp-topic}{proxy.dns}\r
1989 \r
1990 If you are using a proxy to access a private network, it can make a\r
1991 difference whether \i{DNS} name resolution is performed by PuTTY itself\r
1992 (on the client machine) or performed by the proxy.\r
1993 \r
1994 The \q{Do DNS name lookup at proxy end} configuration option allows\r
1995 you to control this. If you set it to \q{No}, PuTTY will always do\r
1996 its own DNS, and will always pass an IP address to the proxy. If you\r
1997 set it to \q{Yes}, PuTTY will always pass host names straight to the\r
1998 proxy without trying to look them up first.\r
1999 \r
2000 If you set this option to \q{Auto} (the default), PuTTY will do\r
2001 something it considers appropriate for each type of proxy. Telnet,\r
2002 HTTP, and SOCKS5 proxies will have host names passed straight to\r
2003 them; SOCKS4 proxies will not.\r
2004 \r
2005 Note that if you are doing DNS at the proxy, you should make sure\r
2006 that your proxy exclusion settings (see \k{config-proxy-exclude}) do\r
2007 not depend on knowing the IP address of a host. If the name is\r
2008 passed on to the proxy without PuTTY looking it up, it will never\r
2009 know the IP address and cannot check it against your list.\r
2010 \r
2011 The original SOCKS 4 protocol does not support proxy-side DNS. There\r
2012 is a protocol extension (SOCKS 4A) which does support it, but not\r
2013 all SOCKS 4 servers provide this extension. If you enable proxy DNS\r
2014 and your SOCKS 4 server cannot deal with it, this might be why.\r
2015 \r
2016 \S{config-proxy-auth} \I{proxy username}Username and \I{proxy password}password\r
2017 \r
2018 \cfg{winhelp-topic}{proxy.auth}\r
2019 \r
2020 If your proxy requires \I{proxy authentication}authentication, you can\r
2021 enter a username and a password in the \q{Username} and \q{Password} boxes.\r
2022 \r
2023 \I{security hazard}Note that if you save your session, the proxy\r
2024 password will be saved in plain text, so anyone who can access your PuTTY\r
2025 configuration data will be able to discover it.\r
2026 \r
2027 Authentication is not fully supported for all forms of proxy:\r
2028 \r
2029 \b Username and password authentication is supported for HTTP\r
2030 proxies and SOCKS 5 proxies.\r
2031 \r
2032 \lcont{\r
2033 \r
2034 \b With SOCKS 5, authentication is via \i{CHAP} if the proxy\r
2035 supports it (this is not supported in \i{PuTTYtel}); otherwise the\r
2036 password is sent to the proxy in \I{plaintext password}plain text.\r
2037 \r
2038 \b With HTTP proxying, the only currently supported authentication\r
2039 method is \I{HTTP basic}\q{basic}, where the password is sent to the proxy\r
2040 in \I{plaintext password}plain text.\r
2041 \r
2042 }\r
2043 \r
2044 \b SOCKS 4 can use the \q{Username} field, but does not support\r
2045 passwords.\r
2046 \r
2047 \b You can specify a way to include a username and password in the\r
2048 Telnet/Local proxy command (see \k{config-proxy-command}).\r
2049 \r
2050 \S{config-proxy-command} Specifying the Telnet or Local proxy command\r
2051 \r
2052 \cfg{winhelp-topic}{proxy.command}\r
2053 \r
2054 If you are using the \i{Telnet proxy} type, the usual command required\r
2055 by the firewall's Telnet server is \c{connect}, followed by a host\r
2056 name and a port number. If your proxy needs a different command,\r
2057 you can enter an alternative here.\r
2058 \r
2059 If you are using the \i{Local proxy} type, the local command to run\r
2060 is specified here.\r
2061 \r
2062 In this string, you can use \c{\\n} to represent a new-line, \c{\\r}\r
2063 to represent a carriage return, \c{\\t} to represent a tab\r
2064 character, and \c{\\x} followed by two hex digits to represent any\r
2065 other character. \c{\\\\} is used to encode the \c{\\} character\r
2066 itself.\r
2067 \r
2068 Also, the special strings \c{%host} and \c{%port} will be replaced\r
2069 by the host name and port number you want to connect to. The strings\r
2070 \c{%user} and \c{%pass} will be replaced by the proxy username and \r
2071 password you specify. The strings \c{%proxyhost} and \c{%proxyport}\r
2072 will be replaced by the host details specified on the \e{Proxy} panel,\r
2073 if any (this is most likely to be useful for the Local proxy type).\r
2074 To get a literal \c{%} sign, enter \c{%%}.\r
2075 \r
2076 If a Telnet proxy server prompts for a username and password\r
2077 before commands can be sent, you can use a command such as:\r
2078 \r
2079 \c %user\n%pass\nconnect %host %port\n\r
2080 \r
2081 This will send your username and password as the first two lines to \r
2082 the proxy, followed by a command to connect to the desired host and \r
2083 port. Note that if you do not include the \c{%user} or \c{%pass}\r
2084 tokens in the Telnet command, then the \q{Username} and \q{Password}\r
2085 configuration fields will be ignored.\r
2086 \r
2087 \H{config-telnet} The \i{Telnet} panel\r
2088 \r
2089 The Telnet panel allows you to configure options that only apply to\r
2090 Telnet sessions.\r
2091 \r
2092 \S{config-oldenviron} \q{Handling of OLD_ENVIRON ambiguity}\r
2093 \r
2094 \cfg{winhelp-topic}{telnet.oldenviron}\r
2095 \r
2096 The original Telnet mechanism for passing \i{environment variables} was\r
2097 badly specified. At the time the standard (RFC 1408) was written,\r
2098 BSD telnet implementations were already supporting the feature, and\r
2099 the intention of the standard was to describe the behaviour the BSD\r
2100 implementations were already using.\r
2101 \r
2102 Sadly there was a typing error in the standard when it was issued,\r
2103 and two vital function codes were specified the wrong way round. BSD\r
2104 implementations did not change, and the standard was not corrected.\r
2105 Therefore, it's possible you might find either \i{BSD} or \i{RFC}-compliant\r
2106 implementations out there. This switch allows you to choose which\r
2107 one PuTTY claims to be.\r
2108 \r
2109 The problem was solved by issuing a second standard, defining a new\r
2110 Telnet mechanism called \i\cw{NEW_ENVIRON}, which behaved exactly like\r
2111 the original \i\cw{OLD_ENVIRON} but was not encumbered by existing\r
2112 implementations. Most Telnet servers now support this, and it's\r
2113 unambiguous. This feature should only be needed if you have trouble\r
2114 passing environment variables to quite an old server.\r
2115 \r
2116 \S{config-ptelnet} Passive and active \i{Telnet negotiation} modes\r
2117 \r
2118 \cfg{winhelp-topic}{telnet.passive}\r
2119 \r
2120 In a Telnet connection, there are two types of data passed between\r
2121 the client and the server: actual text, and \e{negotiations} about\r
2122 which Telnet extra features to use.\r
2123 \r
2124 PuTTY can use two different strategies for negotiation:\r
2125 \r
2126 \b In \I{active Telnet negotiation}\e{active} mode, PuTTY starts to send\r
2127 negotiations as soon as the connection is opened.\r
2128 \r
2129 \b In \I{passive Telnet negotiation}\e{passive} mode, PuTTY will wait to\r
2130 negotiate until it sees a negotiation from the server.\r
2131 \r
2132 The obvious disadvantage of passive mode is that if the server is\r
2133 also operating in a passive mode, then negotiation will never begin\r
2134 at all. For this reason PuTTY defaults to active mode.\r
2135 \r
2136 However, sometimes passive mode is required in order to successfully\r
2137 get through certain types of firewall and \i{Telnet proxy} server. If\r
2138 you have confusing trouble with a \i{firewall}, you could try enabling\r
2139 passive mode to see if it helps.\r
2140 \r
2141 \S{config-telnetkey} \q{Keyboard sends \i{Telnet special commands}}\r
2142 \r
2143 \cfg{winhelp-topic}{telnet.specialkeys}\r
2144 \r
2145 If this box is checked, several key sequences will have their normal\r
2146 actions modified:\r
2147 \r
2148 \b the Backspace key on the keyboard will send the \I{Erase Character,\r
2149 Telnet special command}Telnet special backspace code;\r
2150 \r
2151 \b Control-C will send the Telnet special \I{Interrupt Process, Telnet\r
2152 special command}Interrupt Process code;\r
2153 \r
2154 \b Control-Z will send the Telnet special \I{Suspend Process, Telnet\r
2155 special command}Suspend Process code.\r
2156 \r
2157 You probably shouldn't enable this\r
2158 unless you know what you're doing.\r
2159 \r
2160 \S{config-telnetnl} \q{Return key sends \i{Telnet New Line} instead of ^M}\r
2161 \r
2162 \cfg{winhelp-topic}{telnet.newline}\r
2163 \r
2164 Unlike most other remote login protocols, the Telnet protocol has a\r
2165 special \q{\i{new line}} code that is not the same as the usual line\r
2166 endings of Control-M or Control-J. By default, PuTTY sends the\r
2167 Telnet New Line code when you press Return, instead of sending\r
2168 Control-M as it does in most other protocols.\r
2169 \r
2170 Most Unix-style Telnet servers don't mind whether they receive\r
2171 Telnet New Line or Control-M; some servers do expect New Line, and\r
2172 some servers prefer to see ^M. If you are seeing surprising\r
2173 behaviour when you press Return in a Telnet session, you might try\r
2174 turning this option off to see if it helps.\r
2175 \r
2176 \H{config-rlogin} The Rlogin panel\r
2177 \r
2178 The \i{Rlogin} panel allows you to configure options that only apply to\r
2179 Rlogin sessions.\r
2180 \r
2181 \S{config-rlogin-localuser} \I{local username in Rlogin}\q{Local username}\r
2182 \r
2183 \cfg{winhelp-topic}{rlogin.localuser}\r
2184 \r
2185 Rlogin allows an automated (password-free) form of login by means of\r
2186 a file called \i\c{.rhosts} on the server. You put a line in your\r
2187 \c{.rhosts} file saying something like \c{jbloggs@pc1.example.com},\r
2188 and then when you make an Rlogin connection the client transmits the\r
2189 username of the user running the Rlogin client. The server checks\r
2190 the username and hostname against \c{.rhosts}, and if they match it\r
2191 \I{passwordless login}does not ask for a password.\r
2192 \r
2193 This only works because Unix systems contain a safeguard to stop a\r
2194 user from pretending to be another user in an Rlogin connection.\r
2195 Rlogin connections have to come from \I{privileged port}port numbers below\r
2196 1024, and Unix systems prohibit this to unprivileged processes; so when the\r
2197 server sees a connection from a low-numbered port, it assumes the\r
2198 client end of the connection is held by a privileged (and therefore\r
2199 trusted) process, so it believes the claim of who the user is.\r
2200 \r
2201 Windows does not have this restriction: \e{any} user can initiate an\r
2202 outgoing connection from a low-numbered port. Hence, the Rlogin\r
2203 \c{.rhosts} mechanism is completely useless for securely\r
2204 distinguishing several different users on a Windows machine. If you\r
2205 have a \c{.rhosts} entry pointing at a Windows PC, you should assume\r
2206 that \e{anyone} using that PC can \i{spoof} your username in\r
2207 an Rlogin connection and access your account on the server.\r
2208 \r
2209 The \q{Local username} control allows you to specify what user name\r
2210 PuTTY should claim you have, in case it doesn't match your \i{Windows\r
2211 user name} (or in case you didn't bother to set up a Windows user\r
2212 name).\r
2213 \r
2214 \H{config-ssh} The SSH panel\r
2215 \r
2216 The \i{SSH} panel allows you to configure options that only apply to\r
2217 SSH sessions.\r
2218 \r
2219 \S{config-command} Executing a specific command on the server\r
2220 \r
2221 \cfg{winhelp-topic}{ssh.command}\r
2222 \r
2223 In SSH, you don't have to run a general shell session on the server.\r
2224 Instead, you can choose to run a single specific command (such as a\r
2225 mail user agent, for example). If you want to do this, enter the\r
2226 command in the \q{\ii{Remote command}} box.\r
2227 \r
2228 Note that most servers will close the session after executing the\r
2229 command.\r
2230 \r
2231 \S{config-ssh-noshell} \q{Don't start a \I{remote shell}shell or\r
2232 \I{remote command}command at all}\r
2233 \r
2234 \cfg{winhelp-topic}{ssh.noshell}\r
2235 \r
2236 If you tick this box, PuTTY will not attempt to run a shell or\r
2237 command after connecting to the remote server. You might want to use\r
2238 this option if you are only using the SSH connection for \i{port\r
2239 forwarding}, and your user account on the server does not have the\r
2240 ability to run a shell.\r
2241 \r
2242 This feature is only available in \i{SSH protocol version 2} (since the\r
2243 version 1 protocol assumes you will always want to run a shell).\r
2244 \r
2245 This feature can also be enabled using the \c{-N} command-line\r
2246 option; see \k{using-cmdline-noshell}.\r
2247 \r
2248 If you use this feature in Plink, you will not be able to terminate\r
2249 the Plink process by any graceful means; the only way to kill it\r
2250 will be by pressing Control-C or sending a kill signal from another\r
2251 program.\r
2252 \r
2253 \S{config-ssh-comp} \q{Enable \i{compression}}\r
2254 \r
2255 \cfg{winhelp-topic}{ssh.compress}\r
2256 \r
2257 This enables data compression in the SSH connection: data sent by\r
2258 the server is compressed before sending, and decompressed at the\r
2259 client end. Likewise, data sent by PuTTY to the server is compressed\r
2260 first and the server decompresses it at the other end. This can help\r
2261 make the most of a low-\i{bandwidth} connection.\r
2262 \r
2263 \S{config-ssh-prot} \q{Preferred \i{SSH protocol version}}\r
2264 \r
2265 \cfg{winhelp-topic}{ssh.protocol}\r
2266 \r
2267 This allows you to select whether you would like to use \i{SSH protocol\r
2268 version 1} or \I{SSH-2}version 2. \#{FIXME: say something about this elsewhere?}\r
2269 \r
2270 PuTTY will attempt to use protocol 1 if the server you connect to\r
2271 does not offer protocol 2, and vice versa.\r
2272 \r
2273 If you select \q{1 only} or \q{2 only} here, PuTTY will only connect\r
2274 if the server you connect to offers the SSH protocol version you\r
2275 have specified.\r
2276 \r
2277 \S{config-ssh-encryption} \ii{Encryption} algorithm selection\r
2278 \r
2279 \cfg{winhelp-topic}{ssh.ciphers}\r
2280 \r
2281 PuTTY supports a variety of different \i{encryption algorithm}s, and\r
2282 allows you to choose which one you prefer to use. You can do this by\r
2283 dragging the algorithms up and down in the list box (or moving them\r
2284 using the Up and Down buttons) to specify a preference order. When\r
2285 you make an SSH connection, PuTTY will search down the list from the\r
2286 top until it finds an algorithm supported by the server, and then\r
2287 use that.\r
2288 \r
2289 PuTTY currently supports the following algorithms:\r
2290 \r
2291 \b \i{AES} (Rijndael) - 256, 192, or 128-bit SDCTR or CBC (SSH-2 only)\r
2292 \r
2293 \b \i{Arcfour} (RC4) - 256 or 128-bit stream cipher (SSH-2 only)\r
2294 \r
2295 \b \i{Blowfish} - 256-bit SDCTR (SSH-2 only) or 128-bit CBC\r
2296 \r
2297 \b \ii{Triple-DES} - 168-bit SDCTR (SSH-2 only) or CBC\r
2298 \r
2299 \b \ii{Single-DES} - 56-bit CBC (see below for SSH-2)\r
2300 \r
2301 If the algorithm PuTTY finds is below the \q{warn below here} line,\r
2302 you will see a warning box when you make the connection:\r
2303 \r
2304 \c The first cipher supported by the server\r
2305 \c is single-DES, which is below the configured\r
2306 \c warning threshold.\r
2307 \c Do you want to continue with this connection?\r
2308 \r
2309 This warns you that the first available encryption is not a very\r
2310 secure one. Typically you would put the \q{warn below here} line\r
2311 between the encryptions you consider secure and the ones you\r
2312 consider substandard. By default, PuTTY supplies a preference order\r
2313 intended to reflect a reasonable preference in terms of security and\r
2314 speed.\r
2315 \r
2316 In SSH-2, the encryption algorithm is negotiated independently for\r
2317 each direction of the connection, although PuTTY does not support\r
2318 separate configuration of the preference orders. As a result you may\r
2319 get two warnings similar to the one above, possibly with different\r
2320 encryptions.\r
2321 \r
2322 Single-DES is not recommended in the SSH-2 protocol\r
2323 standards, but one or two server implementations do support it.\r
2324 PuTTY can use single-DES to interoperate with\r
2325 these servers if you enable the \q{Enable legacy use of single-DES in\r
2326 SSH-2} option; by default this is disabled and PuTTY will stick to\r
2327 recommended ciphers.\r
2328 \r
2329 \H{config-ssh-kex} The Kex panel\r
2330 \r
2331 \# FIXME: This whole section is draft. Feel free to revise.\r
2332 \r
2333 The Kex panel (short for \q{\i{key exchange}}) allows you to configure\r
2334 options related to SSH-2 key exchange.\r
2335 \r
2336 Key exchange occurs at the start of an SSH connection (and\r
2337 occasionally thereafter); it establishes a \i{shared secret} that is used\r
2338 as the basis for all of SSH's security features. It is therefore very\r
2339 important for the security of the connection that the key exchange is\r
2340 secure.\r
2341 \r
2342 Key exchange is a cryptographically intensive process; if either the\r
2343 client or the server is a relatively slow machine, the slower methods\r
2344 may take several tens of seconds to complete.\r
2345 \r
2346 If connection startup is too slow, or the connection hangs\r
2347 periodically, you may want to try changing these settings.\r
2348 \r
2349 If you don't understand what any of this means, it's safe to leave\r
2350 these settings alone.\r
2351 \r
2352 This entire panel is only relevant to SSH protocol version 2; none of\r
2353 these settings affect SSH-1 at all.\r
2354 \r
2355 \S{config-ssh-kex-order} \ii{Key exchange algorithm} selection\r
2356 \r
2357 \cfg{winhelp-topic}{ssh.kex.order}\r
2358 \r
2359 PuTTY supports a variety of SSH-2 key exchange methods, and allows you\r
2360 to choose which one you prefer to use; configuration is similar to\r
2361 cipher selection (see \k{config-ssh-encryption}).\r
2362 \r
2363 PuTTY currently supports the following varieties of \i{Diffie-Hellman key\r
2364 exchange}:\r
2365 \r
2366 \b \q{Group 14}: a well-known 2048-bit group.\r
2367 \r
2368 \b \q{Group 1}: a well-known 1024-bit group. This is less secure\r
2369 \#{FIXME better words} than group 14, but may be faster with slow\r
2370 client or server machines, and may be the only method supported by\r
2371 older server software.\r
2372 \r
2373 \b \q{\ii{Group exchange}}: with this method, instead of using a fixed\r
2374 group, PuTTY requests that the server suggest a group to use for key\r
2375 exchange; the server can avoid groups known to be weak, and possibly\r
2376 invent new ones over time, without any changes required to PuTTY's\r
2377 configuration. We recommend use of this method, if possible.\r
2378 \r
2379 In addition, PuTTY supports \i{RSA key exchange}, which requires much less\r
2380 computational effort on the part of the client, and somewhat less on\r
2381 the part of the server, than Diffie-Hellman key exchange.\r
2382 \r
2383 If the first algorithm PuTTY finds is below the \q{warn below here}\r
2384 line, you will see a warning box when you make the connection, similar\r
2385 to that for cipher selection (see \k{config-ssh-encryption}).\r
2386 \r
2387 \S{config-ssh-kex-rekey} \ii{Repeat key exchange}\r
2388 \r
2389 \cfg{winhelp-topic}{ssh.kex.repeat}\r
2390 \r
2391 If the session key negotiated at connection startup is used too much\r
2392 or for too long, it may become feasible to mount attacks against the\r
2393 SSH connection. Therefore, the SSH-2 protocol specifies that a new key\r
2394 exchange should take place every so often; this can be initiated by\r
2395 either the client or the server.\r
2396 \r
2397 While this renegotiation is taking place, no data can pass through\r
2398 the SSH connection, so it may appear to \q{freeze}. (The occurrence of\r
2399 repeat key exchange is noted in the Event Log; see\r
2400 \k{using-eventlog}.) Usually the same algorithm is used as at the\r
2401 start of the connection, with a similar overhead.\r
2402 \r
2403 These options control how often PuTTY will initiate a repeat key\r
2404 exchange (\q{rekey}). You can also force a key exchange at any time\r
2405 from the Special Commands menu (see \k{using-specials}).\r
2406 \r
2407 \# FIXME: do we have any additions to the SSH-2 specs' advice on\r
2408 these values? Do we want to enforce any limits?\r
2409 \r
2410 \b \q{Max minutes before rekey} specifies the amount of time that is\r
2411 allowed to elapse before a rekey is initiated. If this is set to zero,\r
2412 PuTTY will not rekey due to elapsed time. The SSH-2 protocol\r
2413 specification recommends a timeout of at most 60 minutes.\r
2414 \r
2415 You might have a need to disable time-based rekeys completely for the same\r
2416 reasons that \i{keepalives} aren't always helpful. If you anticipate\r
2417 suffering a network dropout of several hours in the middle of an SSH\r
2418 connection, but were not actually planning to send \e{data} down\r
2419 that connection during those hours, then an attempted rekey in the\r
2420 middle of the dropout will probably cause the connection to be\r
2421 abandoned, whereas if rekeys are disabled then the connection should\r
2422 in principle survive (in the absence of interfering \i{firewalls}). See\r
2423 \k{config-keepalive} for more discussion of these issues; for these\r
2424 purposes, rekeys have much the same properties as keepalives.\r
2425 (Except that rekeys have cryptographic value in themselves, so you\r
2426 should bear that in mind when deciding whether to turn them off.)\r
2427 Note, however, the the SSH \e{server} can still initiate rekeys.\r
2428 \r
2429 \b \q{Max data before rekey} specifies the amount of data (in bytes)\r
2430 that is permitted to flow in either direction before a rekey is\r
2431 initiated. If this is set to zero, PuTTY will not rekey due to\r
2432 transferred data. The SSH-2 protocol specification recommends a limit\r
2433 of at most 1 gigabyte.\r
2434 \r
2435 \lcont{\r
2436 \r
2437 As well as specifying a value in bytes, the following shorthand can be\r
2438 used:\r
2439 \r
2440 \b \cq{1k} specifies 1 kilobyte (1024 bytes).\r
2441 \r
2442 \b \cq{1M} specifies 1 megabyte (1024 kilobytes).\r
2443 \r
2444 \b \cq{1G} specifies 1 gigabyte (1024 megabytes).\r
2445 \r
2446 }\r
2447 \r
2448 Disabling data-based rekeys entirely is a bad idea.  The \i{integrity},\r
2449 and to a lesser extent, \i{confidentiality} of the SSH-2 protocol depend\r
2450 in part on rekeys occuring before a 32-bit packet sequence number\r
2451 wraps around.  Unlike time-based rekeys, data-based rekeys won't occur\r
2452 when the SSH connection is idle, so they shouldn't cause the same\r
2453 problems.  The SSH-1 protocol, incidentally, has even weaker integrity\r
2454 protection than SSH-2 without rekeys.\r
2455 \r
2456 \H{config-ssh-auth} The Auth panel\r
2457 \r
2458 The Auth panel allows you to configure \i{authentication} options for\r
2459 SSH sessions.\r
2460 \r
2461 \S{config-ssh-noauth} \q{Bypass authentication entirely}\r
2462 \r
2463 \cfg{winhelp-topic}{ssh.auth.bypass}\r
2464 \r
2465 In SSH-2, it is possible to establish a connection without using SSH's\r
2466 mechanisms to identify or authenticate oneself to the server. Some\r
2467 servers may prefer to handle authentication in the data channel, for\r
2468 instance, or may simply require no authentication whatsoever.\r
2469 \r
2470 By default, PuTTY assumes the server requires authentication (most\r
2471 do), and thus must provide a username. If you find you are getting\r
2472 unwanted username prompts, you could try checking this option.\r
2473 \r
2474 This option only affects SSH-2 connections. SSH-1 connections always\r
2475 require an authentication step.\r
2476 \r
2477 \S{config-ssh-banner} \q{Display pre-authentication banner}\r
2478 \r
2479 \cfg{winhelp-topic}{ssh.auth.banner}\r
2480 \r
2481 SSH-2 servers can provide a message for clients to display to the\r
2482 prospective user before the user logs in; this is sometimes known as a\r
2483 pre-authentication \q{\i{banner}}. Typically this is used to provide\r
2484 information about the server and legal notices.\r
2485 \r
2486 By default, PuTTY displays this message before prompting for a\r
2487 password or similar credentials (although, unfortunately, not before\r
2488 prompting for a login name, due to the nature of the protocol design).\r
2489 By unchecking this option, display of the banner can be suppressed\r
2490 entirely.\r
2491 \r
2492 \S{config-ssh-tryagent} \q{Attempt authentication using Pageant}\r
2493 \r
2494 \cfg{winhelp-topic}{ssh.auth.pageant}\r
2495 \r
2496 If this option is enabled, then PuTTY will look for Pageant (the SSH\r
2497 private-key storage agent) and attempt to authenticate with any\r
2498 suitable public keys Pageant currently holds.\r
2499 \r
2500 This behaviour is almost always desirable, and is therefore enabled\r
2501 by default. In rare cases you might need to turn it off in order to\r
2502 force authentication by some non-public-key method such as\r
2503 passwords.\r
2504 \r
2505 This option can also be controlled using the \c{-noagent}\r
2506 command-line option. See \k{using-cmdline-agentauth}.\r
2507 \r
2508 See \k{pageant} for more information about Pageant in general.\r
2509 \r
2510 \S{config-ssh-tis} \q{Attempt \I{TIS authentication}TIS or\r
2511 \i{CryptoCard authentication}}\r
2512 \r
2513 \cfg{winhelp-topic}{ssh.auth.tis}\r
2514 \r
2515 TIS and CryptoCard authentication are (despite their names) generic\r
2516 forms of simple \I{challenge/response authentication}challenge/response\r
2517 authentication available in SSH protocol version 1 only. You might use\r
2518 them if you were using \i{S/Key} \i{one-time passwords}, for example,\r
2519 or if you had a physical \i{security token} that generated responses\r
2520 to authentication challenges.  They can even be used to prompt for\r
2521 simple passwords.\r
2522 \r
2523 With this switch enabled, PuTTY will attempt these forms of\r
2524 authentication if the server is willing to try them. You will be\r
2525 presented with a challenge string (which may be different every\r
2526 time) and must supply the correct response in order to log in. If\r
2527 your server supports this, you should talk to your system\r
2528 administrator about precisely what form these challenges and\r
2529 responses take.\r
2530 \r
2531 \S{config-ssh-ki} \q{Attempt \i{keyboard-interactive authentication}}\r
2532 \r
2533 \cfg{winhelp-topic}{ssh.auth.ki}\r
2534 \r
2535 The SSH-2 equivalent of TIS authentication is called\r
2536 \q{keyboard-interactive}. It is a flexible authentication method\r
2537 using an arbitrary sequence of requests and responses; so it is not\r
2538 only useful for \I{challenge/response authentication}challenge/response\r
2539 mechanisms such as \i{S/Key}, but it can also be used for (for example)\r
2540 asking the user for a \I{password expiry}new password when the old one\r
2541 has expired.\r
2542 \r
2543 PuTTY leaves this option enabled by default, but supplies a switch\r
2544 to turn it off in case you should have trouble with it.\r
2545 \r
2546 \S{config-ssh-agentfwd} \q{Allow \i{agent forwarding}}\r
2547 \r
2548 \cfg{winhelp-topic}{ssh.auth.agentfwd}\r
2549 \r
2550 This option allows the SSH server to open forwarded connections back\r
2551 to your local copy of \i{Pageant}. If you are not running Pageant, this\r
2552 option will do nothing.\r
2553 \r
2554 See \k{pageant} for general information on Pageant, and\r
2555 \k{pageant-forward} for information on agent forwarding. Note that\r
2556 there is a security risk involved with enabling this option; see\r
2557 \k{pageant-security} for details.\r
2558 \r
2559 \S{config-ssh-changeuser} \q{Allow attempted \i{changes of username} in SSH-2}\r
2560 \r
2561 \cfg{winhelp-topic}{ssh.auth.changeuser}\r
2562 \r
2563 In the SSH-1 protocol, it is impossible to change username after\r
2564 failing to authenticate. So if you mis-type your username at the\r
2565 PuTTY \q{login as:} prompt, you will not be able to change it except\r
2566 by restarting PuTTY.\r
2567 \r
2568 The SSH-2 protocol \e{does} allow changes of username, in principle,\r
2569 but does not make it mandatory for SSH-2 servers to accept them. In\r
2570 particular, \i{OpenSSH} does not accept a change of username; once you\r
2571 have sent one username, it will reject attempts to try to\r
2572 authenticate as another user. (Depending on the version of OpenSSH,\r
2573 it may quietly return failure for all login attempts, or it may send\r
2574 an error message.)\r
2575 \r
2576 For this reason, PuTTY will by default not prompt you for your\r
2577 username more than once, in case the server complains. If you know\r
2578 your server can cope with it, you can enable the \q{Allow attempted\r
2579 changes of username} option to modify PuTTY's behaviour.\r
2580 \r
2581 \S{config-ssh-privkey} \q{\ii{Private key} file for authentication}\r
2582 \r
2583 \cfg{winhelp-topic}{ssh.auth.privkey}\r
2584 \r
2585 This box is where you enter the name of your private key file if you\r
2586 are using \i{public key authentication}. See \k{pubkey} for information\r
2587 about public key authentication in SSH.\r
2588 \r
2589 This key must be in PuTTY's native format (\c{*.\i{PPK}}). If you have a\r
2590 private key in another format that you want to use with PuTTY, see\r
2591 \k{puttygen-conversions}.\r
2592 \r
2593 If a key file is specified here, and \i{Pageant} is running (see\r
2594 \k{pageant}), PuTTY will first try asking Pageant to authenticate with\r
2595 that key, and ignore any other keys Pageant may have. If that fails,\r
2596 PuTTY will ask for a passphrase as normal.\r
2597 \r
2598 \H{config-ssh-auth-gssapi} The \i{GSSAPI} panel\r
2599 \r
2600 \cfg{winhelp-topic}{ssh.auth.gssapi}\r
2601 \r
2602 The \q{GSSAPI} subpanel of the \q{Auth} panel controls the use of\r
2603 GSSAPI authentication. This is a mechanism which delegates the\r
2604 authentication exchange to a library elsewhere on the client\r
2605 machine, which in principle can authenticate in many different ways\r
2606 but in practice is usually used with the \i{Kerberos} \i{single sign-on}\r
2607 protocol.\r
2608 \r
2609 GSSAPI is only available in the SSH-2 protocol.\r
2610 \r
2611 The topmost control on the GSSAPI subpanel is the checkbox labelled\r
2612 \q{Attempt GSSAPI authentication}. If this is disabled, GSSAPI will\r
2613 not be attempted at all and the rest of this panel is unused. If it\r
2614 is enabled, GSSAPI authentication will be attempted, and (typically)\r
2615 if your client machine has valid Kerberos credentials loaded, then\r
2616 PuTTY should be able to authenticate automatically to servers that\r
2617 support Kerberos logins.\r
2618 \r
2619 \S{config-ssh-auth-gssapi-delegation} \q{Allow GSSAPI credential\r
2620 delegation}\r
2621 \r
2622 \cfg{winhelp-topic}{ssh.auth.gssapi.delegation}\r
2623 \r
2624 \i{GSSAPI credential delegation} is a mechanism for passing on your\r
2625 Kerberos (or other) identity to the session on the SSH server. If\r
2626 you enable this option, then not only will PuTTY be able to log in\r
2627 automatically to a server that accepts your Kerberos credentials,\r
2628 but also you will be able to connect out from that server to other\r
2629 Kerberos-supporting services and use the same credentials just as\r
2630 automatically.\r
2631 \r
2632 (This option is the Kerberos analogue of SSH agent forwarding; see\r
2633 \k{pageant-forward} for some information on that.)\r
2634 \r
2635 Note that, like SSH agent forwarding, there is a security\r
2636 implication in the use of this option: the administrator of the\r
2637 server you connect to, or anyone else who has cracked the\r
2638 administrator account on that server, could fake your identity when\r
2639 connecting to further Kerberos-supporting services. However,\r
2640 Kerberos sites are typically run by a central authority, so the\r
2641 administrator of one server is likely to already have access to the\r
2642 other services too; so this would typically be less of a risk than\r
2643 SSH agent forwarding.\r
2644 \r
2645 \S{config-ssh-auth-gssapi-libraries} Preference order for GSSAPI\r
2646 libraries\r
2647 \r
2648 \cfg{winhelp-topic}{ssh.auth.gssapi.libraries}\r
2649 \r
2650 GSSAPI is a mechanism which allows more than one authentication\r
2651 method to be accessed through the same interface. Therefore, more\r
2652 than one authentication library may exist on your system which can\r
2653 be accessed using GSSAPI.\r
2654 \r
2655 PuTTY contains native support for a few well-known such libraries,\r
2656 and will look for all of them on your system and use whichever it\r
2657 finds. If more than one exists on your system and you need to use a\r
2658 specific one, you can adjust the order in which it will search using\r
2659 this preference list control.\r
2660 \r
2661 One of the options in the preference list is to use a user-specified\r
2662 GSSAPI library. If the library you want to use is not mentioned by\r
2663 name in PuTTY's list of options, you can enter its full pathname in\r
2664 the \q{User-supplied GSSAPI library path} field, and move the\r
2665 \q{User-supplied GSSAPI library} option in the preference list to\r
2666 make sure it is selected before anything else.\r
2667 \r
2668 \H{config-ssh-tty} The TTY panel\r
2669 \r
2670 The TTY panel lets you configure the remote pseudo-terminal.\r
2671 \r
2672 \S{config-ssh-pty} \I{pseudo-terminal allocation}\q{Don't allocate\r
2673 a pseudo-terminal}\r
2674 \r
2675 \cfg{winhelp-topic}{ssh.nopty}\r
2676 \r
2677 When connecting to a \i{Unix} system, most \I{interactive\r
2678 connections}interactive shell sessions are run in a \e{pseudo-terminal},\r
2679 which allows the Unix system to pretend it's talking to a real physical\r
2680 terminal device but allows the SSH server to catch all the data coming\r
2681 from that fake device and send it back to the client.\r
2682 \r
2683 Occasionally you might find you have a need to run a session \e{not}\r
2684 in a pseudo-terminal. In PuTTY, this is generally only useful for\r
2685 very specialist purposes; although in Plink (see \k{plink}) it is\r
2686 the usual way of working.\r
2687 \r
2688 \S{config-ttymodes} Sending \i{terminal modes}\r
2689 \r
2690 \cfg{winhelp-topic}{ssh.ttymodes}\r
2691 \r
2692 The SSH protocol allows the client to send \q{terminal modes} for\r
2693 the remote pseudo-terminal. These usually control the server's\r
2694 expectation of the local terminal's behaviour.\r
2695 \r
2696 If your server does not have sensible defaults for these modes, you\r
2697 may find that changing them here helps. If you don't understand any of\r
2698 this, it's safe to leave these settings alone.\r
2699 \r
2700 (None of these settings will have any effect if no pseudo-terminal\r
2701 is requested or allocated.)\r
2702 \r
2703 You can add or modify a mode by selecting it from the drop-down list,\r
2704 choosing whether it's set automatically or to a specific value with\r
2705 the radio buttons and edit box, and hitting \q{Add}. A mode (or\r
2706 several) can be removed from the list by selecting them and hitting\r
2707 \q{Remove}. The effect of the mode list is as follows:\r
2708 \r
2709 \b If a mode is not on the list, it will not be specified to the\r
2710 server under any circumstances.\r
2711 \r
2712 \b If a mode is on the list:\r
2713 \r
2714 \lcont{\r
2715 \r
2716 \b If the \q{Auto} option is selected, the PuTTY tools will decide\r
2717 whether to specify that mode to the server, and if so, will send\r
2718 a sensible value.\r
2719 \r
2720 \lcont{\r
2721 \r
2722 PuTTY proper will send modes that it has an opinion on (currently only\r
2723 the code for the Backspace key, \cw{ERASE}). Plink on Unix\r
2724 will propagate appropriate modes from the local terminal, if any.\r
2725 \r
2726 }\r
2727 \r
2728 \b If a value is specified, it will be sent to the server under all\r
2729 circumstances. The precise syntax of the value box depends on the\r
2730 mode.\r
2731 \r
2732 }\r
2733 \r
2734 By default, all of the available modes are listed as \q{Auto},\r
2735 which should do the right thing in most circumstances.\r
2736 \r
2737 The precise effect of each setting, if any, is up to the server. Their\r
2738 names come from \i{POSIX} and other Unix systems, and they are most\r
2739 likely to have a useful effect on such systems. (These are the same\r
2740 settings that can usually be changed using the \i\c{stty} command once\r
2741 logged in to such servers.)\r
2742 \r
2743 Some notable modes are described below; for fuller explanations, see\r
2744 your server documentation.\r
2745 \r
2746 \b \I{ERASE special character}\cw{ERASE} is the character that when typed\r
2747 by the user will delete one space to the left. When set to \q{Auto}\r
2748 (the default setting), this follows the setting of the local Backspace\r
2749 key in PuTTY (see \k{config-backspace}).\r
2750 \r
2751 \lcont{\r
2752 This and other \i{special character}s are specified using \c{^C} notation\r
2753 for Ctrl-C, and so on. Use \c{^<27>} or \c{^<0x1B>} to specify a\r
2754 character numerically, and \c{^~} to get a literal \c{^}. Other\r
2755 non-control characters are denoted by themselves. Leaving the box\r
2756 entirely blank indicates that \e{no} character should be assigned to\r
2757 the specified function, although this may not be supported by all\r
2758 servers.\r
2759 }\r
2760 \r
2761 \b \I{QUIT special character}\cw{QUIT} is a special character that\r
2762 usually forcefully ends the current process on the server\r
2763 (\cw{SIGQUIT}). On many servers its default setting is Ctrl-backslash\r
2764 (\c{^\\}), which is easy to accidentally invoke on many keyboards. If\r
2765 this is getting in your way, you may want to change it to another\r
2766 character or turn it off entirely.\r
2767 \r
2768 \b Boolean modes such as \cw{ECHO} and \cw{ICANON} can be specified in\r
2769 PuTTY in a variety of ways, such as \cw{true}/\cw{false},\r
2770 \cw{yes}/\cw{no}, and \cw{0}/\cw{1}.\r
2771 \r
2772 \b Terminal speeds are configured elsewhere; see \k{config-termspeed}.\r
2773 \r
2774 \H{config-ssh-x11} The X11 panel\r
2775 \r
2776 \cfg{winhelp-topic}{ssh.tunnels.x11}\r
2777 \r
2778 The X11 panel allows you to configure \i{forwarding of X11} over an\r
2779 SSH connection.\r
2780 \r
2781 If your server lets you run X Window System applications, X11\r
2782 forwarding allows you to securely give those applications access to\r
2783 a local X display on your PC.\r
2784 \r
2785 To enable X11 forwarding, check the \q{Enable X11 forwarding} box.\r
2786 If your X display is somewhere unusual, you will need to enter its\r
2787 location in the \q{X display location} box; if this is left blank,\r
2788 PuTTY will try to find a sensible default in the environment, or use the\r
2789 primary local display (\c{:0}) if that fails.\r
2790 \r
2791 See \k{using-x-forwarding} for more information about X11\r
2792 forwarding.\r
2793 \r
2794 \S{config-ssh-x11auth} Remote \i{X11 authentication}\r
2795 \r
2796 \cfg{winhelp-topic}{ssh.tunnels.x11auth}\r
2797 \r
2798 If you are using X11 forwarding, the virtual X server created on the\r
2799 SSH server machine will be protected by authorisation data. This\r
2800 data is invented, and checked, by PuTTY.\r
2801 \r
2802 The usual authorisation method used for this is called\r
2803 \i\cw{MIT-MAGIC-COOKIE-1}. This is a simple password-style protocol:\r
2804 the X client sends some cookie data to the server, and the server\r
2805 checks that it matches the real cookie. The cookie data is sent over\r
2806 an unencrypted X11 connection; so if you allow a client on a third\r
2807 machine to access the virtual X server, then the cookie will be sent\r
2808 in the clear.\r
2809 \r
2810 PuTTY offers the alternative protocol \i\cw{XDM-AUTHORIZATION-1}. This\r
2811 is a cryptographically authenticated protocol: the data sent by the\r
2812 X client is different every time, and it depends on the IP address\r
2813 and port of the client's end of the connection and is also stamped\r
2814 with the current time. So an eavesdropper who captures an\r
2815 \cw{XDM-AUTHORIZATION-1} string cannot immediately re-use it for\r
2816 their own X connection.\r
2817 \r
2818 PuTTY's support for \cw{XDM-AUTHORIZATION-1} is a somewhat\r
2819 experimental feature, and may encounter several problems:\r
2820 \r
2821 \b Some X clients probably do not even support\r
2822 \cw{XDM-AUTHORIZATION-1}, so they will not know what to do with the\r
2823 data PuTTY has provided.\r
2824 \r
2825 \b This authentication mechanism will only work in SSH-2. In SSH-1,\r
2826 the SSH server does not tell the client the source address of\r
2827 a forwarded connection in a machine-readable format, so it's\r
2828 impossible to verify the \cw{XDM-AUTHORIZATION-1} data.\r
2829 \r
2830 \b You may find this feature causes problems with some SSH servers,\r
2831 which will not clean up \cw{XDM-AUTHORIZATION-1} data after a\r
2832 session, so that if you then connect to the same server using\r
2833 a client which only does \cw{MIT-MAGIC-COOKIE-1} and are allocated\r
2834 the same remote display number, you might find that out-of-date\r
2835 authentication data is still present on your server and your X\r
2836 connections fail.\r
2837 \r
2838 PuTTY's default is \cw{MIT-MAGIC-COOKIE-1}. If you change it, you\r
2839 should be sure you know what you're doing.\r
2840 \r
2841 \S{config-ssh-xauthority} X authority file for local display\r
2842 \r
2843 \cfg{winhelp-topic}{ssh.tunnels.xauthority}\r
2844 \r
2845 If you are using X11 forwarding, the local X server to which your\r
2846 forwarded connections are eventually directed may itself require\r
2847 authorisation.\r
2848 \r
2849 Some Windows X servers do not require this: they do authorisation by\r
2850 simpler means, such as accepting any connection from the local\r
2851 machine but not from anywhere else. However, if your X server does\r
2852 require authorisation, then PuTTY needs to know what authorisation\r
2853 is required.\r
2854 \r
2855 One way in which this data might be made available is for the X\r
2856 server to store it somewhere in a file which has the same format\r
2857 as the Unix \c{.Xauthority} file. If this is how your Windows X\r
2858 server works, then you can tell PuTTY where to find this file by\r
2859 configuring this option. By default, PuTTY will not attempt to find\r
2860 any authorisation for your local display.\r
2861 \r
2862 \H{config-ssh-portfwd} \I{port forwarding}The Tunnels panel\r
2863 \r
2864 \cfg{winhelp-topic}{ssh.tunnels.portfwd}\r
2865 \r
2866 The Tunnels panel allows you to configure tunnelling of arbitrary\r
2867 connection types through an SSH connection.\r
2868 \r
2869 Port forwarding allows you to tunnel other types of \i{network\r
2870 connection} down an SSH session. See \k{using-port-forwarding} for a\r
2871 general discussion of port forwarding and how it works.\r
2872 \r
2873 The port forwarding section in the Tunnels panel shows a list of all\r
2874 the port forwardings that PuTTY will try to set up when it connects\r
2875 to the server. By default no port forwardings are set up, so this\r
2876 list is empty.\r
2877 \r
2878 To add a port forwarding:\r
2879 \r
2880 \b Set one of the \q{Local} or \q{Remote} radio buttons, depending\r
2881 on whether you want to \I{local port forwarding}forward a local port\r
2882 to a remote destination (\q{Local}) or \I{remote port forwarding}forward\r
2883 a remote port to a local destination (\q{Remote}). Alternatively,\r
2884 select \q{Dynamic} if you want PuTTY to \I{dynamic port forwarding}provide\r
2885 a local SOCKS 4/4A/5 proxy on a local port (note that this proxy only\r
2886 supports TCP connections; the SSH protocol does not support forwarding\r
2887 \i{UDP}).\r
2888 \r
2889 \b Enter a source \i{port number} into the \q{Source port} box. For\r
2890 local forwardings, PuTTY will listen on this port of your PC. For\r
2891 remote forwardings, your SSH server will listen on this port of the\r
2892 remote machine. Note that most servers will not allow you to listen\r
2893 on \I{privileged port}port numbers less than 1024.\r
2894 \r
2895 \b If you have selected \q{Local} or \q{Remote} (this step is not\r
2896 needed with \q{Dynamic}), enter a hostname and port number separated\r
2897 by a colon, in the \q{Destination} box. Connections received on the\r
2898 source port will be directed to this destination. For example, to\r
2899 connect to a POP-3 server, you might enter\r
2900 \c{popserver.example.com:110}.\r
2901 \r
2902 \b Click the \q{Add} button. Your forwarding details should appear\r
2903 in the list box.\r
2904 \r
2905 To remove a port forwarding, simply select its details in the list\r
2906 box, and click the \q{Remove} button.\r
2907 \r
2908 In the \q{Source port} box, you can also optionally enter an \I{listen\r
2909 address}IP address to listen on, by specifying (for instance)\r
2910 \c{127.0.0.5:79}.\r
2911 See \k{using-port-forwarding} for more information on how this\r
2912 works and its restrictions.\r
2913 \r
2914 In place of port numbers, you can enter \i{service names}, if they are\r
2915 known to the local system. For instance, in the \q{Destination} box,\r
2916 you could enter \c{popserver.example.com:pop3}.\r
2917 \r
2918 You can \I{port forwarding, changing mid-session}modify the currently\r
2919 active set of port forwardings in mid-session using \q{Change\r
2920 Settings} (see \k{using-changesettings}). If you delete a local or\r
2921 dynamic port forwarding in mid-session, PuTTY will stop listening for\r
2922 connections on that port, so it can be re-used by another program. If\r
2923 you delete a remote port forwarding, note that:\r
2924 \r
2925 \b The SSH-1 protocol contains no mechanism for asking the server to\r
2926 stop listening on a remote port.\r
2927 \r
2928 \b The SSH-2 protocol does contain such a mechanism, but not all SSH\r
2929 servers support it. (In particular, \i{OpenSSH} does not support it in\r
2930 any version earlier than 3.9.)\r
2931 \r
2932 If you ask to delete a remote port forwarding and PuTTY cannot make\r
2933 the server actually stop listening on the port, it will instead just\r
2934 start refusing incoming connections on that port. Therefore,\r
2935 although the port cannot be reused by another program, you can at\r
2936 least be reasonably sure that server-side programs can no longer\r
2937 access the service at your end of the port forwarding.\r
2938 \r
2939 If you delete a forwarding, any existing connections established using\r
2940 that forwarding remain open. Similarly, changes to global settings\r
2941 such as \q{Local ports accept connections from other hosts} only take\r
2942 effect on new forwardings.\r
2943 \r
2944 If the connection you are forwarding over SSH is itself a second SSH\r
2945 connection made by another copy of PuTTY, you might find the\r
2946 \q{logical host name} configuration option useful to warn PuTTY of\r
2947 which host key it should be expecting. See \k{config-loghost} for\r
2948 details of this.\r
2949 \r
2950 \S{config-ssh-portfwd-localhost} Controlling the visibility of\r
2951 forwarded ports\r
2952 \r
2953 \cfg{winhelp-topic}{ssh.tunnels.portfwd.localhost}\r
2954 \r
2955 The source port for a forwarded connection usually does not accept\r
2956 connections from any machine except the \I{localhost}SSH client or\r
2957 server machine itself (for local and remote forwardings respectively).\r
2958 There are controls in the Tunnels panel to change this:\r
2959 \r
2960 \b The \q{Local ports accept connections from other hosts} option\r
2961 allows you to set up local-to-remote port forwardings in such a way\r
2962 that machines other than your client PC can connect to the forwarded\r
2963 port. (This also applies to dynamic SOCKS forwarding.)\r
2964 \r
2965 \b The \q{Remote ports do the same} option does the same thing for\r
2966 remote-to-local port forwardings (so that machines other than the\r
2967 SSH server machine can connect to the forwarded port.) Note that\r
2968 this feature is only available in the SSH-2 protocol, and not all\r
2969 SSH-2 servers support it (\i{OpenSSH} 3.0 does not, for example).\r
2970 \r
2971 \S{config-ssh-portfwd-address-family} Selecting \i{Internet protocol\r
2972 version} for forwarded ports\r
2973 \r
2974 \cfg{winhelp-topic}{ssh.tunnels.portfwd.ipversion}\r
2975 \r
2976 This switch allows you to select a specific Internet protocol (\i{IPv4}\r
2977 or \i{IPv6}) for the local end of a forwarded port. By default, it is\r
2978 set on \q{Auto}, which means that:\r
2979 \r
2980 \b for a local-to-remote port forwarding, PuTTY will listen for\r
2981 incoming connections in both IPv4 and (if available) IPv6\r
2982 \r
2983 \b for a remote-to-local port forwarding, PuTTY will choose a\r
2984 sensible protocol for the outgoing connection.\r
2985 \r
2986 This overrides the general Internet protocol version preference\r
2987 on the Connection panel (see \k{config-address-family}).\r
2988 \r
2989 Note that some operating systems may listen for incoming connections\r
2990 in IPv4 even if you specifically asked for IPv6, because their IPv4\r
2991 and IPv6 protocol stacks are linked together. Apparently \i{Linux} does\r
2992 this, and Windows does not. So if you're running PuTTY on Windows\r
2993 and you tick \q{IPv6} for a local or dynamic port forwarding, it\r
2994 will \e{only} be usable by connecting to it using IPv6; whereas if\r
2995 you do the same on Linux, you can also use it with IPv4. However,\r
2996 ticking \q{Auto} should always give you a port which you can connect\r
2997 to using either protocol.\r
2998 \r
2999 \H{config-ssh-bugs} \I{SSH server bugs}The Bugs panel\r
3000 \r
3001 Not all SSH servers work properly. Various existing servers have\r
3002 bugs in them, which can make it impossible for a client to talk to\r
3003 them unless it knows about the bug and works around it.\r
3004 \r
3005 Since most servers announce their software version number at the\r
3006 beginning of the SSH connection, PuTTY will attempt to detect which\r
3007 bugs it can expect to see in the server and automatically enable\r
3008 workarounds. However, sometimes it will make mistakes; if the server\r
3009 has been deliberately configured to conceal its version number, or\r
3010 if the server is a version which PuTTY's bug database does not know\r
3011 about, then PuTTY will not know what bugs to expect.\r
3012 \r
3013 The Bugs panel allows you to manually configure the bugs PuTTY\r
3014 expects to see in the server. Each bug can be configured in three\r
3015 states:\r
3016 \r
3017 \b \q{Off}: PuTTY will assume the server does not have the bug.\r
3018 \r
3019 \b \q{On}: PuTTY will assume the server \e{does} have the bug.\r
3020 \r
3021 \b \q{Auto}: PuTTY will use the server's version number announcement\r
3022 to try to guess whether or not the server has the bug.\r
3023 \r
3024 \S{config-ssh-bug-ignore1} \q{Chokes on SSH-1 \i{ignore message}s}\r
3025 \r
3026 \cfg{winhelp-topic}{ssh.bugs.ignore1}\r
3027 \r
3028 An ignore message (SSH_MSG_IGNORE) is a message in the SSH protocol\r
3029 which can be sent from the client to the server, or from the server\r
3030 to the client, at any time. Either side is required to ignore the\r
3031 message whenever it receives it. PuTTY uses ignore messages to\r
3032 \I{password camouflage}hide the password packet in SSH-1, so that\r
3033 a listener cannot tell the length of the user's password; it also\r
3034 uses ignore messages for connection \i{keepalives} (see\r
3035 \k{config-keepalive}).\r
3036 \r
3037 If this bug is detected, PuTTY will stop using ignore messages. This\r
3038 means that keepalives will stop working, and PuTTY will have to fall\r
3039 back to a secondary defence against SSH-1 password-length\r
3040 eavesdropping. See \k{config-ssh-bug-plainpw1}. If this bug is\r
3041 enabled when talking to a correct server, the session will succeed,\r
3042 but keepalives will not work and the session might be more\r
3043 vulnerable to eavesdroppers than it could be.\r
3044 \r
3045 \S{config-ssh-bug-plainpw1} \q{Refuses all SSH-1 \i{password camouflage}}\r
3046 \r
3047 \cfg{winhelp-topic}{ssh.bugs.plainpw1}\r
3048 \r
3049 When talking to an SSH-1 server which cannot deal with ignore\r
3050 messages (see \k{config-ssh-bug-ignore1}), PuTTY will attempt to\r
3051 disguise the length of the user's password by sending additional\r
3052 padding \e{within} the password packet. This is technically a\r
3053 violation of the SSH-1 specification, and so PuTTY will only do it\r
3054 when it cannot use standards-compliant ignore messages as\r
3055 camouflage. In this sense, for a server to refuse to accept a padded\r
3056 password packet is not really a bug, but it does make life\r
3057 inconvenient if the server can also not handle ignore messages.\r
3058 \r
3059 If this \q{bug} is detected, PuTTY will assume that neither ignore\r
3060 messages nor padding are acceptable, and that it thus has no choice\r
3061 but to send the user's password with no form of camouflage, so that\r
3062 an eavesdropping user will be easily able to find out the exact length\r
3063 of the password. If this bug is enabled when talking to a correct\r
3064 server, the session will succeed, but will be more vulnerable to\r
3065 eavesdroppers than it could be.\r
3066 \r
3067 This is an SSH-1-specific bug. SSH-2 is secure against this type of\r
3068 attack.\r
3069 \r
3070 \S{config-ssh-bug-rsa1} \q{Chokes on SSH-1 \i{RSA} authentication}\r
3071 \r
3072 \cfg{winhelp-topic}{ssh.bugs.rsa1}\r
3073 \r
3074 Some SSH-1 servers cannot deal with RSA authentication messages at\r
3075 all. If \i{Pageant} is running and contains any SSH-1 keys, PuTTY will\r
3076 normally automatically try RSA authentication before falling back to\r
3077 passwords, so these servers will crash when they see the RSA attempt.\r
3078 \r
3079 If this bug is detected, PuTTY will go straight to password\r
3080 authentication. If this bug is enabled when talking to a correct\r
3081 server, the session will succeed, but of course RSA authentication\r
3082 will be impossible.\r
3083 \r
3084 This is an SSH-1-specific bug.\r
3085 \r
3086 \S{config-ssh-bug-ignore2} \q{Chokes on SSH-2 \i{ignore message}s}\r
3087 \r
3088 \cfg{winhelp-topic}{ssh.bugs.ignore2}\r
3089 \r
3090 An ignore message (SSH_MSG_IGNORE) is a message in the SSH protocol\r
3091 which can be sent from the client to the server, or from the server\r
3092 to the client, at any time. Either side is required to ignore the\r
3093 message whenever it receives it. PuTTY uses ignore messages in SSH-2\r
3094 to confuse the encrypted data stream and make it harder to\r
3095 cryptanalyse. It also uses ignore messages for connection\r
3096 \i{keepalives} (see \k{config-keepalive}).\r
3097 \r
3098 If it believes the server to have this bug, PuTTY will stop using\r
3099 ignore messages. If this bug is enabled when talking to a correct\r
3100 server, the session will succeed, but keepalives will not work and\r
3101 the session might be less cryptographically secure than it could be.\r
3102 \r
3103 \S{config-ssh-bug-hmac2} \q{Miscomputes SSH-2 HMAC keys}\r
3104 \r
3105 \cfg{winhelp-topic}{ssh.bugs.hmac2}\r
3106 \r
3107 Versions 2.3.0 and below of the SSH server software from\r
3108 \cw{ssh.com} compute the keys for their \i{HMAC} \i{message authentication\r
3109 code}s incorrectly. A typical symptom of this problem is that PuTTY\r
3110 dies unexpectedly at the beginning of the session, saying\r
3111 \q{Incorrect MAC received on packet}.\r
3112 \r
3113 If this bug is detected, PuTTY will compute its HMAC keys in the\r
3114 same way as the buggy server, so that communication will still be\r
3115 possible. If this bug is enabled when talking to a correct server,\r
3116 communication will fail.\r
3117 \r
3118 This is an SSH-2-specific bug.\r
3119 \r
3120 \S{config-ssh-bug-derivekey2} \q{Miscomputes SSH-2 \i{encryption} keys}\r
3121 \r
3122 \cfg{winhelp-topic}{ssh.bugs.derivekey2}\r
3123 \r
3124 Versions below 2.0.11 of the SSH server software from \i\cw{ssh.com}\r
3125 compute the keys for the session encryption incorrectly. This\r
3126 problem can cause various error messages, such as \q{Incoming packet\r
3127 was garbled on decryption}, or possibly even \q{Out of memory}.\r
3128 \r
3129 If this bug is detected, PuTTY will compute its encryption keys in\r
3130 the same way as the buggy server, so that communication will still\r
3131 be possible. If this bug is enabled when talking to a correct\r
3132 server, communication will fail.\r
3133 \r
3134 This is an SSH-2-specific bug.\r
3135 \r
3136 \S{config-ssh-bug-sig} \q{Requires padding on SSH-2 \i{RSA} \i{signatures}}\r
3137 \r
3138 \cfg{winhelp-topic}{ssh.bugs.rsapad2}\r
3139 \r
3140 Versions below 3.3 of \i{OpenSSH} require SSH-2 RSA signatures to be\r
3141 padded with zero bytes to the same length as the RSA key modulus.\r
3142 The SSH-2 specification says that an unpadded signature MUST be\r
3143 accepted, so this is a bug. A typical symptom of this problem is\r
3144 that PuTTY mysteriously fails RSA authentication once in every few\r
3145 hundred attempts, and falls back to passwords.\r
3146 \r
3147 If this bug is detected, PuTTY will pad its signatures in the way\r
3148 OpenSSH expects. If this bug is enabled when talking to a correct\r
3149 server, it is likely that no damage will be done, since correct\r
3150 servers usually still accept padded signatures because they're used\r
3151 to talking to OpenSSH.\r
3152 \r
3153 This is an SSH-2-specific bug.\r
3154 \r
3155 \S{config-ssh-bug-pksessid2} \q{Misuses the \i{session ID} in SSH-2 PK auth}\r
3156 \r
3157 \cfg{winhelp-topic}{ssh.bugs.pksessid2}\r
3158 \r
3159 Versions below 2.3 of \i{OpenSSH} require SSH-2 \i{public-key authentication}\r
3160 to be done slightly differently: the data to be signed by the client\r
3161 contains the session ID formatted in a different way. If public-key\r
3162 authentication mysteriously does not work but the Event Log (see\r
3163 \k{using-eventlog}) thinks it has successfully sent a signature, it\r
3164 might be worth enabling the workaround for this bug to see if it\r
3165 helps.\r
3166 \r
3167 If this bug is detected, PuTTY will sign data in the way OpenSSH\r
3168 expects. If this bug is enabled when talking to a correct server,\r
3169 SSH-2 public-key authentication will fail.\r
3170 \r
3171 This is an SSH-2-specific bug.\r
3172 \r
3173 \S{config-ssh-bug-rekey} \q{Handles SSH-2 key re-exchange badly}\r
3174 \r
3175 \cfg{winhelp-topic}{ssh.bugs.rekey2}\r
3176 \r
3177 Some SSH servers cannot cope with \i{repeat key exchange} at\r
3178 all, and will ignore attempts by the client to start one. Since\r
3179 PuTTY pauses the session while performing a repeat key exchange, the\r
3180 effect of this would be to cause the session to hang after an hour\r
3181 (unless you have your rekey timeout set differently; see\r
3182 \k{config-ssh-kex-rekey} for more about rekeys).\r
3183 Other, very old, SSH servers handle repeat key exchange even more\r
3184 badly, and disconnect upon receiving a repeat key exchange request.\r
3185 \r
3186 If this bug is detected, PuTTY will never initiate a repeat key\r
3187 exchange. If this bug is enabled when talking to a correct server,\r
3188 the session should still function, but may be less secure than you\r
3189 would expect.\r
3190 \r
3191 This is an SSH-2-specific bug.\r
3192 \r
3193 \S{config-ssh-bug-maxpkt2} \q{Ignores SSH-2 \i{maximum packet size}}\r
3194 \r
3195 \cfg{winhelp-topic}{ssh.bugs.maxpkt2}\r
3196 \r
3197 When an SSH-2 channel is set up, each end announces the maximum size\r
3198 of data packet that it is willing to receive for that channel.  Some\r
3199 servers ignore PuTTY's announcement and send packets larger than PuTTY\r
3200 is willing to accept, causing it to report \q{Incoming packet was\r
3201 garbled on decryption}.\r
3202 \r
3203 If this bug is detected, PuTTY never allows the channel's\r
3204 \i{flow-control window} to grow large enough to allow the server to\r
3205 send an over-sized packet.  If this bug is enabled when talking to a\r
3206 correct server, the session will work correctly, but download\r
3207 performance will be less than it could be.\r
3208 \r
3209 \H{config-serial} The Serial panel\r
3210 \r
3211 The \i{Serial} panel allows you to configure options that only apply\r
3212 when PuTTY is connecting to a local \I{serial port}\i{serial line}.\r
3213 \r
3214 \S{config-serial-line} Selecting a serial line to connect to\r
3215 \r
3216 \cfg{winhelp-topic}{serial.line}\r
3217 \r
3218 The \q{Serial line to connect to} box allows you to choose which\r
3219 serial line you want PuTTY to talk to, if your computer has more\r
3220 than one serial port.\r
3221 \r
3222 On Windows, the first serial line is called \i\cw{COM1}, and if there\r
3223 is a second it is called \cw{COM2}, and so on.\r
3224 \r
3225 This configuration setting is also visible on the Session panel,\r
3226 where it replaces the \q{Host Name} box (see \k{config-hostname}) if\r
3227 the connection type is set to \q{Serial}.\r
3228 \r
3229 \S{config-serial-speed} Selecting the speed of your serial line\r
3230 \r
3231 \cfg{winhelp-topic}{serial.speed}\r
3232 \r
3233 The \q{Speed} box allows you to choose the speed (or \q{baud rate})\r
3234 at which to talk to the serial line. Typical values might be 9600,\r
3235 19200, 38400 or 57600. Which one you need will depend on the device\r
3236 at the other end of the serial cable; consult the manual for that\r
3237 device if you are in doubt.\r
3238 \r
3239 This configuration setting is also visible on the Session panel,\r
3240 where it replaces the \q{Port} box (see \k{config-hostname}) if the\r
3241 connection type is set to \q{Serial}.\r
3242 \r
3243 \S{config-serial-databits} Selecting the number of data bits\r
3244 \r
3245 \cfg{winhelp-topic}{serial.databits}\r
3246 \r
3247 The \q{Data bits} box allows you to choose how many data bits are\r
3248 transmitted in each byte sent or received through the serial line.\r
3249 Typical values are 7 or 8.\r
3250 \r
3251 \S{config-serial-stopbits} Selecting the number of stop bits\r
3252 \r
3253 \cfg{winhelp-topic}{serial.stopbits}\r
3254 \r
3255 The \q{Stop bits} box allows you to choose how many stop bits are\r
3256 used in the serial line protocol. Typical values are 1, 1.5 or 2.\r
3257 \r
3258 \S{config-serial-parity} Selecting the serial parity checking scheme\r
3259 \r
3260 \cfg{winhelp-topic}{serial.parity}\r
3261 \r
3262 The \q{Parity} box allows you to choose what type of parity checking\r
3263 is used on the serial line. The settings are:\r
3264 \r
3265 \b \q{None}: no parity bit is sent at all.\r
3266 \r
3267 \b \q{Odd}: an extra parity bit is sent alongside each byte, and\r
3268 arranged so that the total number of 1 bits is odd.\r
3269 \r
3270 \b \q{Even}: an extra parity bit is sent alongside each byte, and\r
3271 arranged so that the total number of 1 bits is even.\r
3272 \r
3273 \b \q{Mark}: an extra parity bit is sent alongside each byte, and\r
3274 always set to 1.\r
3275 \r
3276 \b \q{Space}: an extra parity bit is sent alongside each byte, and\r
3277 always set to 0.\r
3278 \r
3279 \S{config-serial-flow} Selecting the serial flow control scheme\r
3280 \r
3281 \cfg{winhelp-topic}{serial.flow}\r
3282 \r
3283 The \q{Flow control} box allows you to choose what type of flow\r
3284 control checking is used on the serial line. The settings are:\r
3285 \r
3286 \b \q{None}: no flow control is done. Data may be lost if either\r
3287 side attempts to send faster than the serial line permits.\r
3288 \r
3289 \b \q{XON/XOFF}: flow control is done by sending XON and XOFF\r
3290 characters within the data stream.\r
3291 \r
3292 \b \q{RTS/CTS}: flow control is done using the RTS and CTS wires on\r
3293 the serial line.\r
3294 \r
3295 \b \q{DSR/DTR}: flow control is done using the DSR and DTR wires on\r
3296 the serial line.\r
3297 \r
3298 \H{config-file} \ii{Storing configuration in a file}\r
3299 \r
3300 PuTTY does not currently support storing its configuration in a file\r
3301 instead of the \i{Registry}. However, you can work around this with a\r
3302 couple of \i{batch file}s.\r
3303 \r
3304 You will need a file called (say) \c{PUTTY.BAT} which imports the\r
3305 contents of a file into the Registry, then runs PuTTY, exports the\r
3306 contents of the Registry back into the file, and deletes the\r
3307 Registry entries. This can all be done using the Regedit command\r
3308 line options, so it's all automatic. Here is what you need in\r
3309 \c{PUTTY.BAT}:\r
3310 \r
3311 \c @ECHO OFF\r
3312 \c regedit /s putty.reg\r
3313 \c regedit /s puttyrnd.reg\r
3314 \c start /w putty.exe\r
3315 \c regedit /ea new.reg HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\r
3316 \c copy new.reg putty.reg\r
3317 \c del new.reg\r
3318 \c regedit /s puttydel.reg\r
3319 \r
3320 This batch file needs two auxiliary files: \c{PUTTYRND.REG} which\r
3321 sets up an initial safe location for the \c{PUTTY.RND} random seed\r
3322 file, and \c{PUTTYDEL.REG} which destroys everything in the Registry\r
3323 once it's been successfully saved back to the file.\r
3324 \r
3325 Here is \c{PUTTYDEL.REG}:\r
3326 \r
3327 \c REGEDIT4\r
3328 \c  \r
3329 \c [-HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]\r
3330 \r
3331 Here is an example \c{PUTTYRND.REG} file:\r
3332 \r
3333 \c REGEDIT4\r
3334 \c  \r
3335 \c [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]\r
3336 \c "RandSeedFile"="a:\\putty.rnd"\r
3337 \r
3338 You should replace \c{a:\\putty.rnd} with the location where you\r
3339 want to store your random number data. If the aim is to carry around\r
3340 PuTTY and its settings on one floppy, you probably want to store it\r
3341 on the floppy.\r