OSDN Git Service

Add PuTTY 0.61 to contrib directory.
[ffftp/ffftp.git] / contrib / putty / DOC / CONFIG.BUT
diff --git a/contrib/putty/DOC/CONFIG.BUT b/contrib/putty/DOC/CONFIG.BUT
new file mode 100644 (file)
index 0000000..2a87f3a
--- /dev/null
@@ -0,0 +1,3341 @@
+\define{versionidconfig} \versionid $Id: config.but 9063 2010-12-29 14:11:25Z simon $\r
+\r
+\C{config} Configuring PuTTY\r
+\r
+This chapter describes all the \i{configuration options} in PuTTY.\r
+\r
+PuTTY is configured using the control panel that comes up before you\r
+start a session. Some options can also be changed in the middle of a\r
+session, by selecting \q{Change Settings} from the window menu.\r
+\r
+\H{config-session} The Session panel\r
+\r
+The Session configuration panel contains the basic options you need\r
+to specify in order to open a session at all, and also allows you to\r
+save your settings to be reloaded later.\r
+\r
+\S{config-hostname} The \i{host name} section\r
+\r
+\cfg{winhelp-topic}{session.hostname}\r
+\r
+The top box on the Session panel, labelled \q{Specify your\r
+connection by host name}, contains the details that need to be\r
+filled in before PuTTY can open a session at all.\r
+\r
+\b The \q{Host Name} box is where you type the name, or the \i{IP\r
+address}, of the server you want to connect to.\r
+\r
+\b The \q{Connection type} radio buttons let you choose what type of\r
+connection you want to make: a \I{raw TCP connections}raw\r
+connection, a \i{Telnet} connection, an \i{Rlogin} connection, an\r
+\i{SSH} connection, or a connection to a local \i{serial line}. (See\r
+\k{which-one} for a summary of the differences between SSH, Telnet\r
+and rlogin; see \k{using-rawprot} for an explanation of \q{raw}\r
+connections; see \k{using-serial} for information about using a\r
+serial line.)\r
+\r
+\b The \q{Port} box lets you specify which \i{port number} on the\r
+server to connect to. If you select Telnet, Rlogin, or SSH, this box\r
+will be filled in automatically to the usual value, and you will\r
+only need to change it if you have an unusual server. If you select\r
+Raw mode, you will almost certainly need to fill in the \q{Port} box\r
+yourself.\r
+\r
+If you select \q{Serial} from the \q{Connection type} radio buttons,\r
+the \q{Host Name} and \q{Port} boxes are replaced by \q{Serial line}\r
+and \q{Speed}; see \k{config-serial} for more details of these.\r
+\r
+\S{config-saving} \ii{Loading and storing saved sessions}\r
+\r
+\cfg{winhelp-topic}{session.saved}\r
+\r
+The next part of the Session configuration panel allows you to save\r
+your preferred PuTTY options so they will appear automatically the\r
+next time you start PuTTY. It also allows you to create \e{saved\r
+sessions}, which contain a full set of configuration options plus a\r
+host name and protocol. A saved session contains all the information\r
+PuTTY needs to start exactly the session you want.\r
+\r
+\b To save your default settings: first set up the settings the way\r
+you want them saved. Then come back to the Session panel. Select the\r
+\q{\i{Default Settings}} entry in the saved sessions list, with a single\r
+click. Then press the \q{Save} button.\r
+\r
+If there is a specific host you want to store the details of how to\r
+connect to, you should create a saved session, which will be\r
+separate from the Default Settings.\r
+\r
+\b To save a session: first go through the rest of the configuration\r
+box setting up all the options you want. Then come back to the\r
+Session panel. Enter a name for the saved session in the \q{Saved\r
+Sessions} input box. (The server name is often a good choice for a\r
+saved session name.) Then press the \q{Save} button. Your saved\r
+session name should now appear in the list box.\r
+\r
+\lcont{\r
+You can also save settings in mid-session, from the \q{Change Settings}\r
+dialog. Settings changed since the start of the session will be saved\r
+with their current values; as well as settings changed through the\r
+dialog, this includes changes in window size, window title changes\r
+sent by the server, and so on.\r
+}\r
+\r
+\b To reload a saved session: single-click to select the session\r
+name in the list box, and then press the \q{Load} button. Your saved\r
+settings should all appear in the configuration panel.\r
+\r
+\b To modify a saved session: first load it as described above. Then\r
+make the changes you want. Come back to the Session panel, and press\r
+the \q{Save} button. The new settings will be saved over the top of\r
+the old ones.\r
+\r
+\lcont{\r
+To save the new settings under a different name, you can enter the new\r
+name in the \q{Saved Sessions} box, or single-click to select a\r
+session name in the list box to overwrite that session. To save\r
+\q{Default Settings}, you must single-click the name before saving.\r
+}\r
+\r
+\b To start a saved session immediately: double-click on the session\r
+name in the list box.\r
+\r
+\b To delete a saved session: single-click to select the session\r
+name in the list box, and then press the \q{Delete} button.\r
+\r
+Each saved session is independent of the Default Settings\r
+configuration. If you change your preferences and update Default\r
+Settings, you must also update every saved session separately.\r
+\r
+Saved sessions are stored in the \i{Registry}, at the location\r
+\r
+\c HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\r
+\r
+If you need to store them in a file, you could try the method\r
+described in \k{config-file}.\r
+\r
+\S{config-closeonexit} \q{\ii{Close Window} on Exit}\r
+\r
+\cfg{winhelp-topic}{session.coe}\r
+\r
+Finally in the Session panel, there is an option labelled \q{Close\r
+Window on Exit}. This controls whether the PuTTY \i{terminal window}\r
+disappears as soon as the session inside it terminates. If you are\r
+likely to want to copy and paste text out of the session after it\r
+has terminated, or restart the session, you should arrange for this\r
+option to be off.\r
+\r
+\q{Close Window On Exit} has three settings. \q{Always} means always\r
+close the window on exit; \q{Never} means never close on exit\r
+(always leave the window open, but \I{inactive window}inactive). The\r
+third setting, and the default one, is \q{Only on clean exit}. In this\r
+mode, a session which terminates normally will cause its window to\r
+close, but one which is aborted unexpectedly by network trouble or a\r
+confusing message from the server will leave the window up.\r
+\r
+\H{config-logging} The Logging panel\r
+\r
+\cfg{winhelp-topic}{logging.main}\r
+\r
+The Logging configuration panel allows you to save \i{log file}s of your\r
+PuTTY sessions, for debugging, analysis or future reference.\r
+\r
+The main option is a radio-button set that specifies whether PuTTY\r
+will log anything at all. The options are:\r
+\r
+\b \q{None}. This is the default option; in this mode PuTTY will not\r
+create a log file at all.\r
+\r
+\b \q{Printable output}. In this mode, a log file will be\r
+created and written to, but only printable text will be saved into\r
+it. The various terminal control codes that are typically sent down\r
+an interactive session alongside the printable text will be omitted.\r
+This might be a useful mode if you want to read a log file in a text\r
+editor and hope to be able to make sense of it.\r
+\r
+\b \q{All session output}. In this mode, \e{everything} sent by\r
+the server into your terminal session is logged. If you view the log\r
+file in a text editor, therefore, you may well find it full of\r
+strange control characters. This is a particularly useful mode if\r
+you are experiencing problems with PuTTY's terminal handling: you\r
+can record everything that went to the terminal, so that someone\r
+else can replay the session later in slow motion and watch to see\r
+what went wrong.\r
+\r
+\b \I{SSH packet log}\q{SSH packets}. In this mode (which is only used\r
+by SSH connections), the SSH message packets sent over the encrypted\r
+connection are written to the log file (as well as \i{Event Log}\r
+entries). You might need this to debug a network-level problem, or\r
+more likely to send to the PuTTY authors as part of a bug report.\r
+\e{BE WARNED} that if you log in using a password, the password can\r
+appear in the log file; see \k{config-logssh} for options that may\r
+help to remove sensitive material from the log file before you send it\r
+to anyone else.\r
+\r
+\b \q{SSH packets and raw data}. In this mode, as well as the\r
+decrypted packets (as in the previous mode), the \e{raw} (encrypted,\r
+compressed, etc) packets are \e{also} logged. This could be useful to\r
+diagnose corruption in transit. (The same caveats as the previous mode\r
+apply, of course.)\r
+\r
+Note that the non-SSH logging options (\q{Printable output} and\r
+\q{All session output}) only work with PuTTY proper; in programs\r
+without terminal emulation (such as Plink), they will have no effect,\r
+even if enabled via saved settings.\r
+\r
+\S{config-logfilename} \q{Log file name}\r
+\r
+\cfg{winhelp-topic}{logging.filename}\r
+\r
+In this edit box you enter the name of the file you want to log the\r
+session to. The \q{Browse} button will let you look around your file\r
+system to find the right place to put the file; or if you already\r
+know exactly where you want it to go, you can just type a pathname\r
+into the edit box.\r
+\r
+There are a few special features in this box. If you use the \c{&}\r
+character in the file name box, PuTTY will insert details of the\r
+current session in the name of the file it actually opens. The\r
+precise replacements it will do are:\r
+\r
+\b \c{&Y} will be replaced by the current year, as four digits.\r
+\r
+\b \c{&M} will be replaced by the current month, as two digits.\r
+\r
+\b \c{&D} will be replaced by the current day of the month, as two\r
+digits.\r
+\r
+\b \c{&T} will be replaced by the current time, as six digits\r
+(HHMMSS) with no punctuation.\r
+\r
+\b \c{&H} will be replaced by the host name you are connecting to.\r
+\r
+For example, if you enter the host name\r
+\c{c:\\puttylogs\\log-&h-&y&m&d-&t.dat}, you will end up with files looking\r
+like\r
+\r
+\c log-server1.example.com-20010528-110859.dat\r
+\c log-unixbox.somewhere.org-20010611-221001.dat\r
+\r
+\S{config-logfileexists} \q{What to do if the log file already exists}\r
+\r
+\cfg{winhelp-topic}{logging.exists}\r
+\r
+This control allows you to specify what PuTTY should do if it tries\r
+to start writing to a log file and it finds the file already exists.\r
+You might want to automatically destroy the existing log file and\r
+start a new one with the same name. Alternatively, you might want to\r
+open the existing log file and add data to the \e{end} of it.\r
+Finally (the default option), you might not want to have any\r
+automatic behaviour, but to ask the user every time the problem\r
+comes up.\r
+\r
+\S{config-logflush} \I{log file, flushing}\q{Flush log file frequently}\r
+\r
+\cfg{winhelp-topic}{logging.flush}\r
+\r
+This option allows you to control how frequently logged data is\r
+flushed to disc. By default, PuTTY will flush data as soon as it is\r
+displayed, so that if you view the log file while a session is still\r
+open, it will be up to date; and if the client system crashes, there's\r
+a greater chance that the data will be preserved.\r
+\r
+However, this can incur a performance penalty. If PuTTY is running\r
+slowly with logging enabled, you could try unchecking this option. Be\r
+warned that the log file may not always be up to date as a result\r
+(although it will of course be flushed when it is closed, for instance\r
+at the end of a session).\r
+\r
+\S{config-logssh} Options specific to \i{SSH packet log}ging\r
+\r
+These options only apply if SSH packet data is being logged.\r
+\r
+The following options allow particularly sensitive portions of\r
+unencrypted packets to be automatically left out of the log file.\r
+They are only intended to deter casual nosiness; an attacker could\r
+glean a lot of useful information from even these obfuscated logs\r
+(e.g., length of password).\r
+\r
+\S2{config-logssh-omitpw} \q{Omit known password fields}\r
+\r
+\cfg{winhelp-topic}{logging.ssh.omitpassword}\r
+\r
+When checked, decrypted password fields are removed from the log of\r
+transmitted packets. (This includes any user responses to\r
+challenge-response authentication methods such as\r
+\q{keyboard-interactive}.) This does not include X11 authentication\r
+data if using X11 forwarding.\r
+\r
+Note that this will only omit data that PuTTY \e{knows} to be a\r
+password. However, if you start another login session within your\r
+PuTTY session, for instance, any password used will appear in the\r
+clear in the packet log. The next option may be of use to protect\r
+against this.\r
+\r
+This option is enabled by default.\r
+\r
+\S2{config-logssh-omitdata} \q{Omit session data}\r
+\r
+\cfg{winhelp-topic}{logging.ssh.omitdata}\r
+\r
+When checked, all decrypted \q{session data} is omitted; this is\r
+defined as data in terminal sessions and in forwarded channels (TCP,\r
+X11, and authentication agent). This will usually substantially reduce\r
+the size of the resulting log file.\r
+\r
+This option is disabled by default.\r
+\r
+\H{config-terminal} The Terminal panel\r
+\r
+The Terminal configuration panel allows you to control the behaviour\r
+of PuTTY's \i{terminal emulation}.\r
+\r
+\S{config-autowrap} \q{Auto wrap mode initially on}\r
+\r
+\cfg{winhelp-topic}{terminal.autowrap}\r
+\r
+\ii{Auto wrap mode} controls what happens when text printed in a PuTTY\r
+window reaches the right-hand edge of the window.\r
+\r
+With auto wrap mode on, if a long line of text reaches the\r
+right-hand edge, it will wrap over on to the next line so you can\r
+still see all the text. With auto wrap mode off, the cursor will\r
+stay at the right-hand edge of the screen, and all the characters in\r
+the line will be printed on top of each other.\r
+\r
+If you are running a full-screen application and you occasionally\r
+find the screen scrolling up when it looks as if it shouldn't, you\r
+could try turning this option off.\r
+\r
+Auto wrap mode can be turned on and off by \i{control sequence}s sent by\r
+the server. This configuration option controls the \e{default}\r
+state, which will be restored when you reset the terminal (see\r
+\k{reset-terminal}). However, if you modify this option in\r
+mid-session using \q{Change Settings}, it will take effect\r
+immediately.\r
+\r
+\S{config-decom} \q{DEC Origin Mode initially on}\r
+\r
+\cfg{winhelp-topic}{terminal.decom}\r
+\r
+\i{DEC Origin Mode} is a minor option which controls how PuTTY\r
+interprets cursor-position \i{control sequence}s sent by the server.\r
+\r
+The server can send a control sequence that restricts the \i{scrolling\r
+region} of the display. For example, in an editor, the server might\r
+reserve a line at the top of the screen and a line at the bottom,\r
+and might send a control sequence that causes scrolling operations\r
+to affect only the remaining lines.\r
+\r
+With DEC Origin Mode on, \i{cursor coordinates} are counted from the top\r
+of the scrolling region. With it turned off, cursor coordinates are\r
+counted from the top of the whole screen regardless of the scrolling\r
+region.\r
+\r
+It is unlikely you would need to change this option, but if you find\r
+a full-screen application is displaying pieces of text in what looks\r
+like the wrong part of the screen, you could try turning DEC Origin\r
+Mode on to see whether that helps.\r
+\r
+DEC Origin Mode can be turned on and off by control sequences sent\r
+by the server. This configuration option controls the \e{default}\r
+state, which will be restored when you reset the terminal (see\r
+\k{reset-terminal}). However, if you modify this option in\r
+mid-session using \q{Change Settings}, it will take effect\r
+immediately.\r
+\r
+\S{config-crlf} \q{Implicit CR in every LF}\r
+\r
+\cfg{winhelp-topic}{terminal.lfhascr}\r
+\r
+Most servers send two control characters, \i{CR} and \i{LF}, to start a\r
+\i{new line} of the screen. The CR character makes the cursor return to the\r
+left-hand side of the screen. The LF character makes the cursor move\r
+one line down (and might make the screen scroll).\r
+\r
+Some servers only send LF, and expect the terminal to move the\r
+cursor over to the left automatically. If you come across a server\r
+that does this, you will see a \I{stair-stepping}stepped effect on the\r
+screen, like this:\r
+\r
+\c First line of text\r
+\c                   Second line\r
+\c                              Third line\r
+\r
+If this happens to you, try enabling the \q{Implicit CR in every LF}\r
+option, and things might go back to normal:\r
+\r
+\c First line of text\r
+\c Second line\r
+\c Third line\r
+\r
+\S{config-lfcr} \q{Implicit LF in every CR}\r
+\r
+\cfg{winhelp-topic}{terminal.crhaslf}\r
+\r
+Most servers send two control characters, \i{CR} and \i{LF}, to start a\r
+\i{new line} of the screen. The CR character makes the cursor return to the\r
+left-hand side of the screen. The LF character makes the cursor move\r
+one line down (and might make the screen scroll).\r
+\r
+Some servers only send CR, and so the newly \r
+written line is overwritten by the following line. This option causes \r
+a line feed so that all lines are displayed.\r
+\r
+\S{config-erase} \q{Use \i{background colour} to erase screen}\r
+\r
+\cfg{winhelp-topic}{terminal.bce}\r
+\r
+Not all terminals agree on what colour to turn the screen when the\r
+server sends a \q{\i{clear screen}} sequence. Some terminals believe the\r
+screen should always be cleared to the \e{default} background\r
+colour. Others believe the screen should be cleared to whatever the\r
+server has selected as a background colour.\r
+\r
+There exist applications that expect both kinds of behaviour.\r
+Therefore, PuTTY can be configured to do either.\r
+\r
+With this option disabled, screen clearing is always done in the\r
+default background colour. With this option enabled, it is done in\r
+the \e{current} background colour.\r
+\r
+Background-colour erase can be turned on and off by \i{control\r
+sequences} sent by the server. This configuration option controls the\r
+\e{default} state, which will be restored when you reset the\r
+terminal (see \k{reset-terminal}). However, if you modify this\r
+option in mid-session using \q{Change Settings}, it will take effect\r
+immediately.\r
+\r
+\S{config-blink} \q{Enable \i{blinking text}}\r
+\r
+\cfg{winhelp-topic}{terminal.blink}\r
+\r
+The server can ask PuTTY to display text that blinks on and off.\r
+This is very distracting, so PuTTY allows you to turn blinking text\r
+off completely.\r
+\r
+When blinking text is disabled and the server attempts to make some\r
+text blink, PuTTY will instead display the text with a \I{background\r
+colour, bright}bolded background colour.\r
+\r
+Blinking text can be turned on and off by \i{control sequence}s sent by\r
+the server. This configuration option controls the \e{default}\r
+state, which will be restored when you reset the terminal (see\r
+\k{reset-terminal}). However, if you modify this option in\r
+mid-session using \q{Change Settings}, it will take effect\r
+immediately.\r
+\r
+\S{config-answerback} \q{\ii{Answerback} to ^E}\r
+\r
+\cfg{winhelp-topic}{terminal.answerback}\r
+\r
+This option controls what PuTTY will send back to the server if the\r
+server sends it the ^E \i{enquiry character}. Normally it just sends\r
+the string \q{PuTTY}.\r
+\r
+If you accidentally write the contents of a binary file to your\r
+terminal, you will probably find that it contains more than one ^E\r
+character, and as a result your next command line will probably read\r
+\q{PuTTYPuTTYPuTTY...} as if you had typed the answerback string\r
+multiple times at the keyboard. If you set the answerback string to\r
+be empty, this problem should go away, but doing so might cause\r
+other problems.\r
+\r
+Note that this is \e{not} the feature of PuTTY which the server will\r
+typically use to determine your terminal type. That feature is the\r
+\q{\ii{Terminal-type} string} in the Connection panel; see\r
+\k{config-termtype} for details.\r
+\r
+You can include control characters in the answerback string using\r
+\c{^C} notation. (Use \c{^~} to get a literal \c{^}.)\r
+\r
+\S{config-localecho} \q{\ii{Local echo}}\r
+\r
+\cfg{winhelp-topic}{terminal.localecho}\r
+\r
+With local echo disabled, characters you type into the PuTTY window\r
+are not echoed in the window \e{by PuTTY}. They are simply sent to\r
+the server. (The \e{server} might choose to \I{remote echo}echo them\r
+back to you; this can't be controlled from the PuTTY control panel.)\r
+\r
+Some types of session need local echo, and many do not. In its\r
+default mode, PuTTY will automatically attempt to deduce whether or\r
+not local echo is appropriate for the session you are working in. If\r
+you find it has made the wrong decision, you can use this\r
+configuration option to override its choice: you can force local\r
+echo to be turned on, or force it to be turned off, instead of\r
+relying on the automatic detection.\r
+\r
+\S{config-localedit} \q{\ii{Local line editing}}\r
+\r
+\cfg{winhelp-topic}{terminal.localedit}\r
+\r
+Normally, every character you type into the PuTTY window is sent\r
+immediately to the server the moment you type it.\r
+\r
+If you enable local line editing, this changes. PuTTY will let you\r
+edit a whole line at a time locally, and the line will only be sent\r
+to the server when you press Return. If you make a mistake, you can\r
+use the Backspace key to correct it before you press Return, and the\r
+server will never see the mistake.\r
+\r
+Since it is hard to edit a line locally without being able to see\r
+it, local line editing is mostly used in conjunction with \i{local echo}\r
+(\k{config-localecho}). This makes it ideal for use in raw mode\r
+\#{FIXME} or when connecting to \i{MUD}s or \i{talker}s. (Although some more\r
+advanced MUDs do occasionally turn local line editing on and turn\r
+local echo off, in order to accept a password from the user.)\r
+\r
+Some types of session need local line editing, and many do not. In\r
+its default mode, PuTTY will automatically attempt to deduce whether\r
+or not local line editing is appropriate for the session you are\r
+working in. If you find it has made the wrong decision, you can use\r
+this configuration option to override its choice: you can force\r
+local line editing to be turned on, or force it to be turned off,\r
+instead of relying on the automatic detection.\r
+\r
+\S{config-printing} \ii{Remote-controlled printing}\r
+\r
+\cfg{winhelp-topic}{terminal.printing}\r
+\r
+A lot of VT100-compatible terminals support printing under control\r
+of the remote server. PuTTY supports this feature as well, but it is\r
+turned off by default.\r
+\r
+To enable remote-controlled printing, choose a printer from the\r
+\q{Printer to send ANSI printer output to} drop-down list box. This\r
+should allow you to select from all the printers you have installed\r
+drivers for on your computer. Alternatively, you can type the\r
+network name of a networked printer (for example,\r
+\c{\\\\printserver\\printer1}) even if you haven't already\r
+installed a driver for it on your own machine.\r
+\r
+When the remote server attempts to print some data, PuTTY will send\r
+that data to the printer \e{raw} - without translating it,\r
+attempting to format it, or doing anything else to it. It is up to\r
+you to ensure your remote server knows what type of printer it is\r
+talking to.\r
+\r
+Since PuTTY sends data to the printer raw, it cannot offer options\r
+such as portrait versus landscape, print quality, or paper tray\r
+selection. All these things would be done by your PC printer driver\r
+(which PuTTY bypasses); if you need them done, you will have to find\r
+a way to configure your remote server to do them.\r
+\r
+To disable remote printing again, choose \q{None (printing\r
+disabled)} from the printer selection list. This is the default\r
+state.\r
+\r
+\H{config-keyboard} The Keyboard panel\r
+\r
+The Keyboard configuration panel allows you to control the behaviour\r
+of the \i{keyboard} in PuTTY.  The correct state for many of these\r
+settings depends on what the server to which PuTTY is connecting\r
+expects.  With a \i{Unix} server, this is likely to depend on the\r
+\i\c{termcap} or \i\c{terminfo} entry it uses, which in turn is likely to\r
+be controlled by the \q{\ii{Terminal-type} string} setting in the Connection\r
+panel; see \k{config-termtype} for details.  If none of the settings here\r
+seems to help, you may find \k{faq-keyboard} to be useful.\r
+\r
+\S{config-backspace} Changing the action of the \ii{Backspace key}\r
+\r
+\cfg{winhelp-topic}{keyboard.backspace}\r
+\r
+Some terminals believe that the Backspace key should send the same\r
+thing to the server as \i{Control-H} (ASCII code 8). Other terminals\r
+believe that the Backspace key should send ASCII code 127 (usually\r
+known as \i{Control-?}) so that it can be distinguished from Control-H.\r
+This option allows you to choose which code PuTTY generates when you\r
+press Backspace.\r
+\r
+If you are connecting over SSH, PuTTY by default tells the server\r
+the value of this option (see \k{config-ttymodes}), so you may find\r
+that the Backspace key does the right thing either way. Similarly,\r
+if you are connecting to a \i{Unix} system, you will probably find that\r
+the Unix \i\c{stty} command lets you configure which the server\r
+expects to see, so again you might not need to change which one PuTTY\r
+generates. On other systems, the server's expectation might be fixed\r
+and you might have no choice but to configure PuTTY.\r
+\r
+If you do have the choice, we recommend configuring PuTTY to\r
+generate Control-? and configuring the server to expect it, because\r
+that allows applications such as \c{emacs} to use Control-H for\r
+help.\r
+\r
+(Typing \i{Shift-Backspace} will cause PuTTY to send whichever code\r
+isn't configured here as the default.)\r
+\r
+\S{config-homeend} Changing the action of the \i{Home and End keys}\r
+\r
+\cfg{winhelp-topic}{keyboard.homeend}\r
+\r
+The Unix terminal emulator \i\c{rxvt} disagrees with the rest of the\r
+world about what character sequences should be sent to the server by\r
+the Home and End keys.\r
+\r
+\i\c{xterm}, and other terminals, send \c{ESC [1~} for the Home key,\r
+and \c{ESC [4~} for the End key. \c{rxvt} sends \c{ESC [H} for the\r
+Home key and \c{ESC [Ow} for the End key.\r
+\r
+If you find an application on which the Home and End keys aren't\r
+working, you could try switching this option to see if it helps.\r
+\r
+\S{config-funkeys} Changing the action of the \i{function keys} and\r
+\i{keypad}\r
+\r
+\cfg{winhelp-topic}{keyboard.funkeys}\r
+\r
+This option affects the function keys (F1 to F12) and the top row of\r
+the numeric keypad.\r
+\r
+\b In the default mode, labelled \c{ESC [n~}, the function keys\r
+generate sequences like \c{ESC [11~}, \c{ESC [12~} and so on. This\r
+matches the general behaviour of Digital's terminals.\r
+\r
+\b In Linux mode, F6 to F12 behave just like the default mode, but\r
+F1 to F5 generate \c{ESC [[A} through to \c{ESC [[E}. This mimics the\r
+\i{Linux virtual console}.\r
+\r
+\b In \I{xterm}Xterm R6 mode, F5 to F12 behave like the default mode, but F1\r
+to F4 generate \c{ESC OP} through to \c{ESC OS}, which are the\r
+sequences produced by the top row of the \e{keypad} on Digital's\r
+terminals.\r
+\r
+\b In \i{VT400} mode, all the function keys behave like the default\r
+mode, but the actual top row of the numeric keypad generates \c{ESC\r
+OP} through to \c{ESC OS}.\r
+\r
+\b In \i{VT100+} mode, the function keys generate \c{ESC OP} through to\r
+\c{ESC O[}\r
+\r
+\b In \i{SCO} mode, the function keys F1 to F12 generate \c{ESC [M}\r
+through to \c{ESC [X}.  Together with shift, they generate \c{ESC [Y}\r
+through to \c{ESC [j}.  With control they generate \c{ESC [k} through\r
+to \c{ESC [v}, and with shift and control together they generate\r
+\c{ESC [w} through to \c{ESC [\{}.\r
+\r
+If you don't know what any of this means, you probably don't need to\r
+fiddle with it.\r
+\r
+\S{config-appcursor} Controlling \i{Application Cursor Keys} mode\r
+\r
+\cfg{winhelp-topic}{keyboard.appcursor}\r
+\r
+Application Cursor Keys mode is a way for the server to change the\r
+control sequences sent by the arrow keys. In normal mode, the arrow\r
+keys send \c{ESC [A} through to \c{ESC [D}. In application mode,\r
+they send \c{ESC OA} through to \c{ESC OD}.\r
+\r
+Application Cursor Keys mode can be turned on and off by the server,\r
+depending on the application. PuTTY allows you to configure the\r
+initial state.\r
+\r
+You can also disable application cursor keys mode completely, using\r
+the \q{Features} configuration panel; see\r
+\k{config-features-application}.\r
+\r
+\S{config-appkeypad} Controlling \i{Application Keypad} mode\r
+\r
+\cfg{winhelp-topic}{keyboard.appkeypad}\r
+\r
+Application Keypad mode is a way for the server to change the\r
+behaviour of the numeric keypad.\r
+\r
+In normal mode, the keypad behaves like a normal Windows keypad:\r
+with \i{NumLock} on, the number keys generate numbers, and with NumLock\r
+off they act like the arrow keys and Home, End etc.\r
+\r
+In application mode, all the keypad keys send special control\r
+sequences, \e{including} Num Lock. Num Lock stops behaving like Num\r
+Lock and becomes another function key.\r
+\r
+Depending on which version of Windows you run, you may find the Num\r
+Lock light still flashes on and off every time you press Num Lock,\r
+even when application mode is active and Num Lock is acting like a\r
+function key. This is unavoidable.\r
+\r
+Application keypad mode can be turned on and off by the server,\r
+depending on the application. PuTTY allows you to configure the\r
+initial state.\r
+\r
+You can also disable application keypad mode completely, using the\r
+\q{Features} configuration panel; see\r
+\k{config-features-application}.\r
+\r
+\S{config-nethack} Using \i{NetHack keypad mode}\r
+\r
+\cfg{winhelp-topic}{keyboard.nethack}\r
+\r
+PuTTY has a special mode for playing NetHack. You can enable it by\r
+selecting \q{NetHack} in the \q{Initial state of numeric keypad}\r
+control.\r
+\r
+In this mode, the numeric keypad keys 1-9 generate the NetHack\r
+movement commands (\cw{hjklyubn}). The 5 key generates the \c{.}\r
+command (do nothing).\r
+\r
+In addition, pressing Shift or Ctrl with the keypad keys generate\r
+the Shift- or Ctrl-keys you would expect (e.g. keypad-7 generates\r
+\cq{y}, so Shift-keypad-7 generates \cq{Y} and Ctrl-keypad-7\r
+generates Ctrl-Y); these commands tell NetHack to keep moving you in\r
+the same direction until you encounter something interesting.\r
+\r
+For some reason, this feature only works properly when \i{Num Lock} is\r
+on. We don't know why.\r
+\r
+\S{config-compose} Enabling a DEC-like \ii{Compose key}\r
+\r
+\cfg{winhelp-topic}{keyboard.compose}\r
+\r
+DEC terminals have a Compose key, which provides an easy-to-remember\r
+way of typing \i{accented characters}. You press Compose and then type\r
+two more characters. The two characters are \q{combined} to produce\r
+an accented character. The choices of character are designed to be\r
+easy to remember; for example, composing \q{e} and \q{`} produces\r
+the \q{\u00e8{e-grave}} character.\r
+\r
+If your keyboard has a Windows \i{Application key}, it acts as a Compose\r
+key in PuTTY. Alternatively, if you enable the \q{\i{AltGr} acts as\r
+Compose key} option, the AltGr key will become a Compose key.\r
+\r
+\S{config-ctrlalt} \q{Control-Alt is different from \i{AltGr}}\r
+\r
+\cfg{winhelp-topic}{keyboard.ctrlalt}\r
+\r
+Some old keyboards do not have an AltGr key, which can make it\r
+difficult to type some characters. PuTTY can be configured to treat\r
+the key combination Ctrl + Left Alt the same way as the AltGr key.\r
+\r
+By default, this checkbox is checked, and the key combination Ctrl +\r
+Left Alt does something completely different. PuTTY's usual handling\r
+of the left Alt key is to prefix the Escape (Control-\cw{[})\r
+character to whatever character sequence the rest of the keypress\r
+would generate. For example, Alt-A generates Escape followed by\r
+\c{a}. So Alt-Ctrl-A would generate Escape, followed by Control-A.\r
+\r
+If you uncheck this box, Ctrl-Alt will become a synonym for AltGr,\r
+so you can use it to type extra graphic characters if your keyboard\r
+has any.\r
+\r
+(However, Ctrl-Alt will never act as a Compose key, regardless of the\r
+setting of \q{AltGr acts as Compose key} described in\r
+\k{config-compose}.)\r
+\r
+\H{config-bell} The Bell panel\r
+\r
+The Bell panel controls the \i{terminal bell} feature: the server's\r
+ability to cause PuTTY to beep at you.\r
+\r
+In the default configuration, when the server sends the character\r
+with ASCII code 7 (Control-G), PuTTY will play the \i{Windows Default\r
+Beep} sound. This is not always what you want the terminal bell\r
+feature to do; the Bell panel allows you to configure alternative\r
+actions.\r
+\r
+\S{config-bellstyle} \q{Set the style of bell}\r
+\r
+\cfg{winhelp-topic}{bell.style}\r
+\r
+This control allows you to select various different actions to occur\r
+on a terminal bell:\r
+\r
+\b Selecting \q{None} \I{terminal bell, disabling}disables the bell\r
+completely. In this mode, the server can send as many Control-G\r
+characters as it likes and nothing at all will happen.\r
+\r
+\b \q{Make default system alert sound} is the default setting. It\r
+causes the Windows \q{Default Beep} sound to be played. To change\r
+what this sound is, or to test it if nothing seems to be happening,\r
+use the Sound configurer in the Windows Control Panel.\r
+\r
+\b \q{\ii{Visual bell}} is a silent alternative to a beeping computer. In\r
+this mode, when the server sends a Control-G, the whole PuTTY window\r
+will flash white for a fraction of a second.\r
+\r
+\b \q{Beep using the \i{PC speaker}} is self-explanatory.\r
+\r
+\b \q{Play a custom \i{sound file}} allows you to specify a particular\r
+sound file to be used by PuTTY alone, or even by a particular\r
+individual PuTTY session. This allows you to distinguish your PuTTY\r
+beeps from any other beeps on the system. If you select this option,\r
+you will also need to enter the name of your sound file in the edit\r
+control \q{Custom sound file to play as a bell}.\r
+\r
+\S{config-belltaskbar} \q{\ii{Taskbar}/\I{window caption}caption\r
+indication on bell}\r
+\r
+\cfg{winhelp-topic}{bell.taskbar}\r
+\r
+This feature controls what happens to the PuTTY window's entry in\r
+the Windows Taskbar if a bell occurs while the window does not have\r
+the input focus.\r
+\r
+In the default state (\q{Disabled}) nothing unusual happens.\r
+\r
+If you select \q{Steady}, then when a bell occurs and the window is\r
+not in focus, the window's Taskbar entry and its title bar will\r
+change colour to let you know that PuTTY session is asking for your\r
+attention. The change of colour will persist until you select the\r
+window, so you can leave several PuTTY windows minimised in your\r
+terminal, go away from your keyboard, and be sure not to have missed\r
+any important beeps when you get back.\r
+\r
+\q{Flashing} is even more eye-catching: the Taskbar entry will\r
+continuously flash on and off until you select the window.\r
+\r
+\S{config-bellovl} \q{Control the \i{bell overload} behaviour}\r
+\r
+\cfg{winhelp-topic}{bell.overload}\r
+\r
+A common user error in a terminal session is to accidentally run the\r
+Unix command \c{cat} (or equivalent) on an inappropriate file type,\r
+such as an executable, image file, or ZIP file. This produces a huge\r
+stream of non-text characters sent to the terminal, which typically\r
+includes a lot of bell characters. As a result of this the terminal\r
+often doesn't stop beeping for ten minutes, and everybody else in\r
+the office gets annoyed.\r
+\r
+To try to avoid this behaviour, or any other cause of excessive\r
+beeping, PuTTY includes a bell overload management feature. In the\r
+default configuration, receiving more than five bell characters in a\r
+two-second period will cause the overload feature to activate. Once\r
+the overload feature is active, further bells will \I{terminal bell,\r
+disabling} have no effect at all, so the rest of your binary file\r
+will be sent to the screen in silence. After a period of five seconds\r
+during which no further bells are received, the overload feature will\r
+turn itself off again and bells will be re-enabled.\r
+\r
+If you want this feature completely disabled, you can turn it off\r
+using the checkbox \q{Bell is temporarily disabled when over-used}.\r
+\r
+Alternatively, if you like the bell overload feature but don't agree\r
+with the settings, you can configure the details: how many bells\r
+constitute an overload, how short a time period they have to arrive\r
+in to do so, and how much silent time is required before the\r
+overload feature will deactivate itself.\r
+\r
+Bell overload mode is always deactivated by any keypress in the\r
+terminal. This means it can respond to large unexpected streams of\r
+data, but does not interfere with ordinary command-line activities\r
+that generate beeps (such as filename completion).\r
+\r
+\H{config-features} The Features panel\r
+\r
+PuTTY's \i{terminal emulation} is very highly featured, and can do a lot\r
+of things under remote server control. Some of these features can\r
+cause problems due to buggy or strangely configured server\r
+applications.\r
+\r
+The Features configuration panel allows you to disable some of\r
+PuTTY's more advanced terminal features, in case they cause trouble.\r
+\r
+\S{config-features-application} Disabling application keypad and cursor keys\r
+\r
+\cfg{winhelp-topic}{features.application}\r
+\r
+\I{Application Keypad}Application keypad mode (see\r
+\k{config-appkeypad}) and \I{Application Cursor Keys}application\r
+cursor keys mode (see \k{config-appcursor}) alter the behaviour of\r
+the keypad and cursor keys. Some applications enable these modes but\r
+then do not deal correctly with the modified keys. You can force\r
+these modes to be permanently disabled no matter what the server\r
+tries to do.\r
+\r
+\S{config-features-mouse} Disabling \cw{xterm}-style \i{mouse reporting}\r
+\r
+\cfg{winhelp-topic}{features.mouse}\r
+\r
+PuTTY allows the server to send \i{control codes} that let it take over\r
+the mouse and use it for purposes other than \i{copy and paste}.\r
+Applications which use this feature include the text-mode web\r
+browser \i\c{links}, the Usenet newsreader \i\c{trn} version 4, and the\r
+file manager \i\c{mc} (Midnight Commander).\r
+\r
+If you find this feature inconvenient, you can disable it using the\r
+\q{Disable xterm-style mouse reporting} control. With this box\r
+ticked, the mouse will \e{always} do copy and paste in the normal\r
+way.\r
+\r
+Note that even if the application takes over the mouse, you can\r
+still manage PuTTY's copy and paste by holding down the Shift key\r
+while you select and paste, unless you have deliberately turned this\r
+feature off (see \k{config-mouseshift}).\r
+\r
+\S{config-features-resize} Disabling remote \i{terminal resizing}\r
+\r
+\cfg{winhelp-topic}{features.resize}\r
+\r
+PuTTY has the ability to change the terminal's size and position in\r
+response to commands from the server. If you find PuTTY is doing\r
+this unexpectedly or inconveniently, you can tell PuTTY not to\r
+respond to those server commands.\r
+\r
+\S{config-features-altscreen} Disabling switching to the \i{alternate screen}\r
+\r
+\cfg{winhelp-topic}{features.altscreen}\r
+\r
+Many terminals, including PuTTY, support an \q{alternate screen}.\r
+This is the same size as the ordinary terminal screen, but separate.\r
+Typically a screen-based program such as a text editor might switch\r
+the terminal to the alternate screen before starting up. Then at the\r
+end of the run, it switches back to the primary screen, and you see\r
+the screen contents just as they were before starting the editor.\r
+\r
+Some people prefer this not to happen. If you want your editor to\r
+run in the same screen as the rest of your terminal activity, you\r
+can disable the alternate screen feature completely.\r
+\r
+\S{config-features-retitle} Disabling remote \i{window title} changing\r
+\r
+\cfg{winhelp-topic}{features.retitle}\r
+\r
+PuTTY has the ability to change the window title in response to\r
+commands from the server. If you find PuTTY is doing this\r
+unexpectedly or inconveniently, you can tell PuTTY not to respond to\r
+those server commands.\r
+\r
+\S{config-features-qtitle} Response to remote \i{window title} querying\r
+\r
+\cfg{winhelp-topic}{features.qtitle}\r
+\r
+PuTTY can optionally provide the xterm service of allowing server\r
+applications to find out the local window title. This feature is\r
+disabled by default, but you can turn it on if you really want it.\r
+\r
+NOTE that this feature is a \e{potential \i{security hazard}}. If a\r
+malicious application can write data to your terminal (for example,\r
+if you merely \c{cat} a file owned by someone else on the server\r
+machine), it can change your window title (unless you have disabled\r
+this as mentioned in \k{config-features-retitle}) and then use this\r
+service to have the new window title sent back to the server as if\r
+typed at the keyboard. This allows an attacker to fake keypresses\r
+and potentially cause your server-side applications to do things you\r
+didn't want. Therefore this feature is disabled by default, and we\r
+recommend you do not set it to \q{Window title} unless you \e{really}\r
+know what you are doing.\r
+\r
+There are three settings for this option:\r
+\r
+\dt \q{None}\r
+\r
+\dd PuTTY makes no response whatsoever to the relevant escape\r
+sequence. This may upset server-side software that is expecting some\r
+sort of response.\r
+\r
+\dt \q{Empty string}\r
+\r
+\dd PuTTY makes a well-formed response, but leaves it blank. Thus,\r
+server-side software that expects a response is kept happy, but an\r
+attacker cannot influence the response string. This is probably the\r
+setting you want if you have no better ideas.\r
+\r
+\dt \q{Window title}\r
+\r
+\dd PuTTY responds with the actual window title. This is dangerous for\r
+the reasons described above.\r
+\r
+\S{config-features-dbackspace} Disabling \i{destructive backspace}\r
+\r
+\cfg{winhelp-topic}{features.dbackspace}\r
+\r
+Normally, when PuTTY receives character 127 (^?) from the server, it\r
+will perform a \q{destructive backspace}: move the cursor one space\r
+left and delete the character under it. This can apparently cause\r
+problems in some applications, so PuTTY provides the ability to\r
+configure character 127 to perform a normal backspace (without\r
+deleting a character) instead.\r
+\r
+\S{config-features-charset} Disabling remote \i{character set}\r
+configuration\r
+\r
+\cfg{winhelp-topic}{features.charset}\r
+\r
+PuTTY has the ability to change its character set configuration in\r
+response to commands from the server. Some programs send these\r
+commands unexpectedly or inconveniently. In particular, \i{BitchX} (an\r
+IRC client) seems to have a habit of reconfiguring the character set\r
+to something other than the user intended.\r
+\r
+If you find that accented characters are not showing up the way you\r
+expect them to, particularly if you're running BitchX, you could try\r
+disabling the remote character set configuration commands.\r
+\r
+\S{config-features-shaping} Disabling \i{Arabic text shaping}\r
+\r
+\cfg{winhelp-topic}{features.arabicshaping}\r
+\r
+PuTTY supports shaping of Arabic text, which means that if your\r
+server sends text written in the basic \i{Unicode} Arabic alphabet then\r
+it will convert it to the correct display forms before printing it\r
+on the screen.\r
+\r
+If you are using full-screen software which was not expecting this\r
+to happen (especially if you are not an Arabic speaker and you\r
+unexpectedly find yourself dealing with Arabic text files in\r
+applications which are not Arabic-aware), you might find that the\r
+\i{display becomes corrupted}. By ticking this box, you can disable\r
+Arabic text shaping so that PuTTY displays precisely the characters\r
+it is told to display.\r
+\r
+You may also find you need to disable bidirectional text display;\r
+see \k{config-features-bidi}.\r
+\r
+\S{config-features-bidi} Disabling \i{bidirectional text} display\r
+\r
+\cfg{winhelp-topic}{features.bidi}\r
+\r
+PuTTY supports bidirectional text display, which means that if your\r
+server sends text written in a language which is usually displayed\r
+from right to left (such as \i{Arabic} or \i{Hebrew}) then PuTTY will\r
+automatically flip it round so that it is displayed in the right\r
+direction on the screen.\r
+\r
+If you are using full-screen software which was not expecting this\r
+to happen (especially if you are not an Arabic speaker and you\r
+unexpectedly find yourself dealing with Arabic text files in\r
+applications which are not Arabic-aware), you might find that the\r
+\i{display becomes corrupted}. By ticking this box, you can disable\r
+bidirectional text display, so that PuTTY displays text from left to\r
+right in all situations.\r
+\r
+You may also find you need to disable Arabic text shaping;\r
+see \k{config-features-shaping}.\r
+\r
+\H{config-window} The Window panel\r
+\r
+The Window configuration panel allows you to control aspects of the\r
+\i{PuTTY window}.\r
+\r
+\S{config-winsize} Setting the \I{window size}size of the PuTTY window\r
+\r
+\cfg{winhelp-topic}{window.size}\r
+\r
+The \q{\ii{Columns}} and \q{\ii{Rows}} boxes let you set the PuTTY\r
+window to a precise size. Of course you can also \I{window resizing}drag\r
+the window to a new size while a session is running.\r
+\r
+\S{config-winsizelock} What to do when the window is resized\r
+\r
+\cfg{winhelp-topic}{window.resize}\r
+\r
+These options allow you to control what happens when the user tries\r
+to \I{window resizing}resize the PuTTY window using its window furniture.\r
+\r
+There are four options here:\r
+\r
+\b \q{Change the number of rows and columns}: the font size will not\r
+change. (This is the default.)\r
+\r
+\b \q{Change the size of the font}: the number of rows and columns in\r
+the terminal will stay the same, and the \i{font size} will change.\r
+\r
+\b \q{Change font size when maximised}: when the window is resized,\r
+the number of rows and columns will change, \e{except} when the window\r
+is \i{maximise}d (or restored), when the font size will change. (In\r
+this mode, holding down the Alt key while resizing will also cause the\r
+font size to change.)\r
+\r
+\b \q{Forbid resizing completely}: the terminal will refuse to be\r
+resized at all.\r
+\r
+\S{config-scrollback} Controlling \i{scrollback}\r
+\r
+\cfg{winhelp-topic}{window.scrollback}\r
+\r
+These options let you configure the way PuTTY keeps text after it\r
+scrolls off the top of the screen (see \k{using-scrollback}).\r
+\r
+The \q{Lines of scrollback} box lets you configure how many lines of\r
+text PuTTY keeps. The \q{Display scrollbar} options allow you to\r
+hide the \i{scrollbar} (although you can still view the scrollback using\r
+the keyboard as described in \k{using-scrollback}). You can separately\r
+configure whether the scrollbar is shown in \i{full-screen} mode and in\r
+normal modes.\r
+\r
+If you are viewing part of the scrollback when the server sends more\r
+text to PuTTY, the screen will revert to showing the current\r
+terminal contents. You can disable this behaviour by turning off\r
+\q{Reset scrollback on display activity}. You can also make the\r
+screen revert when you press a key, by turning on \q{Reset\r
+scrollback on keypress}.\r
+\r
+\S{config-erasetoscrollback} \q{Push erased text into scrollback}\r
+\r
+\cfg{winhelp-topic}{window.erased}\r
+\r
+When this option is enabled, the contents of the terminal screen\r
+will be pushed into the scrollback when a server-side application\r
+clears the screen, so that your scrollback will contain a better\r
+record of what was on your screen in the past.\r
+\r
+If the application switches to the \i{alternate screen} (see\r
+\k{config-features-altscreen} for more about this), then the\r
+contents of the primary screen will be visible in the scrollback\r
+until the application switches back again.\r
+\r
+This option is enabled by default.\r
+\r
+\H{config-appearance} The Appearance panel\r
+\r
+The Appearance configuration panel allows you to control aspects of\r
+the appearance of \I{PuTTY window}PuTTY's window.\r
+\r
+\S{config-cursor} Controlling the appearance of the \i{cursor}\r
+\r
+\cfg{winhelp-topic}{appearance.cursor}\r
+\r
+The \q{Cursor appearance} option lets you configure the cursor to be\r
+a block, an underline, or a vertical line. A block cursor becomes an\r
+empty box when the window loses focus; an underline or a vertical\r
+line becomes dotted.\r
+\r
+The \q{\ii{Cursor blinks}} option makes the cursor blink on and off. This\r
+works in any of the cursor modes.\r
+\r
+\S{config-font} Controlling the \i{font} used in the terminal window\r
+\r
+\cfg{winhelp-topic}{appearance.font}\r
+\r
+This option allows you to choose what font, in what \I{font size}size,\r
+the PuTTY terminal window uses to display the text in the session.\r
+\r
+By default, you will be offered a choice from all the fixed-width\r
+fonts installed on the system, since VT100-style terminal handling\r
+expects a fixed-width font. If you tick the box marked \q{Allow\r
+selection of variable-pitch fonts}, however, PuTTY will offer\r
+variable-width fonts as well: if you select one of these, the font\r
+will be coerced into fixed-size character cells, which will probably\r
+not look very good (but can work OK with some fonts).\r
+\r
+\S{config-mouseptr} \q{Hide \i{mouse pointer} when typing in window}\r
+\r
+\cfg{winhelp-topic}{appearance.hidemouse}\r
+\r
+If you enable this option, the mouse pointer will disappear if the\r
+PuTTY window is selected and you press a key. This way, it will not\r
+obscure any of the text in the window while you work in your\r
+session. As soon as you move the mouse, the pointer will reappear.\r
+\r
+This option is disabled by default, so the mouse pointer remains\r
+visible at all times.\r
+\r
+\S{config-winborder} Controlling the \i{window border}\r
+\r
+\cfg{winhelp-topic}{appearance.border}\r
+\r
+PuTTY allows you to configure the appearance of the window border to\r
+some extent.\r
+\r
+The checkbox marked \q{Sunken-edge border} changes the appearance of\r
+the window border to something more like a DOS box: the inside edge\r
+of the border is highlighted as if it sank down to meet the surface\r
+inside the window. This makes the border a little bit thicker as\r
+well. It's hard to describe well. Try it and see if you like it.\r
+\r
+You can also configure a completely blank gap between the text in\r
+the window and the border, using the \q{Gap between text and window\r
+edge} control. By default this is set at one pixel. You can reduce\r
+it to zero, or increase it further.\r
+\r
+\H{config-behaviour} The Behaviour panel\r
+\r
+The Behaviour configuration panel allows you to control aspects of\r
+the behaviour of \I{PuTTY window}PuTTY's window.\r
+\r
+\S{config-title} Controlling the \i{window title}\r
+\r
+\cfg{winhelp-topic}{appearance.title}\r
+\r
+The \q{Window title} edit box allows you to set the title of the\r
+PuTTY window. By default the window title will contain the \i{host name}\r
+followed by \q{PuTTY}, for example \c{server1.example.com - PuTTY}.\r
+If you want a different window title, this is where to set it.\r
+\r
+PuTTY allows the server to send \c{xterm} \i{control sequence}s which\r
+modify the title of the window in mid-session (unless this is disabled -\r
+see \k{config-features-retitle}); the title string set here\r
+is therefore only the \e{initial} window title.\r
+\r
+As well as the \e{window} title, there is also an \c{xterm}\r
+sequence to modify the \I{icon title}title of the window's \e{icon}.\r
+This makes sense in a windowing system where the window becomes an\r
+icon when minimised, such as Windows 3.1 or most X Window System\r
+setups; but in the Windows 95-like user interface it isn't as\r
+applicable.\r
+\r
+By default, PuTTY only uses the server-supplied \e{window} title, and\r
+ignores the icon title entirely. If for some reason you want to see\r
+both titles, check the box marked \q{Separate window and icon titles}.\r
+If you do this, PuTTY's window title and Taskbar \I{window caption}caption will\r
+change into the server-supplied icon title if you \i{minimise} the PuTTY\r
+window, and change back to the server-supplied window title if you\r
+restore it. (If the server has not bothered to supply a window or\r
+icon title, none of this will happen.)\r
+\r
+\S{config-warnonclose} \q{Warn before \i{closing window}}\r
+\r
+\cfg{winhelp-topic}{behaviour.closewarn}\r
+\r
+If you press the \i{Close button} in a PuTTY window that contains a\r
+running session, PuTTY will put up a warning window asking if you\r
+really meant to close the window. A window whose session has already\r
+terminated can always be closed without a warning.\r
+\r
+If you want to be able to close a window quickly, you can disable\r
+the \q{Warn before closing window} option.\r
+\r
+\S{config-altf4} \q{Window closes on \i{ALT-F4}}\r
+\r
+\cfg{winhelp-topic}{behaviour.altf4}\r
+\r
+By default, pressing ALT-F4 causes the \I{closing window}window to\r
+close (or a warning box to appear; see \k{config-warnonclose}). If you\r
+disable the \q{Window closes on ALT-F4} option, then pressing ALT-F4\r
+will simply send a key sequence to the server.\r
+\r
+\S{config-altspace} \q{\ii{System menu} appears on \i{ALT-Space}}\r
+\r
+\cfg{winhelp-topic}{behaviour.altspace}\r
+\r
+If this option is enabled, then pressing ALT-Space will bring up the\r
+PuTTY window's menu, like clicking on the top left corner. If it is\r
+disabled, then pressing ALT-Space will just send \c{ESC SPACE} to\r
+the server.\r
+\r
+Some \i{accessibility} programs for Windows may need this option\r
+enabling to be able to control PuTTY's window successfully. For\r
+instance, \i{Dragon NaturallySpeaking} requires it both to open the\r
+system menu via voice, and to close, minimise, maximise and restore\r
+the window.\r
+\r
+\S{config-altonly} \q{\ii{System menu} appears on \i{Alt} alone}\r
+\r
+\cfg{winhelp-topic}{behaviour.altonly}\r
+\r
+If this option is enabled, then pressing and releasing ALT will\r
+bring up the PuTTY window's menu, like clicking on the top left\r
+corner. If it is disabled, then pressing and releasing ALT will have\r
+no effect.\r
+\r
+\S{config-alwaysontop} \q{Ensure window is \i{always on top}}\r
+\r
+\cfg{winhelp-topic}{behaviour.alwaysontop}\r
+\r
+If this option is enabled, the PuTTY window will stay on top of all\r
+other windows.\r
+\r
+\S{config-fullscreen} \q{\ii{Full screen} on Alt-Enter}\r
+\r
+\cfg{winhelp-topic}{behaviour.altenter}\r
+\r
+If this option is enabled, then pressing Alt-Enter will cause the\r
+PuTTY window to become full-screen. Pressing Alt-Enter again will\r
+restore the previous window size.\r
+\r
+The full-screen feature is also available from the \ii{System menu}, even\r
+when it is configured not to be available on the Alt-Enter key. See\r
+\k{using-fullscreen}.\r
+\r
+\H{config-translation} The Translation panel\r
+\r
+The Translation configuration panel allows you to control the\r
+translation between the \i{character set} understood by the server and\r
+the character set understood by PuTTY.\r
+\r
+\S{config-charset} Controlling character set translation\r
+\r
+\cfg{winhelp-topic}{translation.codepage}\r
+\r
+During an interactive session, PuTTY receives a stream of 8-bit\r
+bytes from the server, and in order to display them on the screen it\r
+needs to know what character set to interpret them in. Similarly,\r
+PuTTY needs to know how to translate your keystrokes into the encoding\r
+the server expects. Unfortunately, there is no satisfactory\r
+mechanism for PuTTY and the server to communicate this information,\r
+so it must usually be manually configured.\r
+\r
+There are a lot of character sets to choose from. The \q{Remote\r
+character set} option lets you select one. By default PuTTY will\r
+attempt to choose a character set that is right for your \i{locale} as\r
+reported by Windows; if it gets it wrong, you can select a different\r
+one using this control.\r
+\r
+A few notable character sets are:\r
+\r
+\b The \i{ISO-8859} series are all standard character sets that include\r
+various accented characters appropriate for different sets of\r
+languages.\r
+\r
+\b The \i{Win125x} series are defined by Microsoft, for similar\r
+purposes. In particular Win1252 is almost equivalent to ISO-8859-1,\r
+but contains a few extra characters such as matched quotes and the\r
+Euro symbol.\r
+\r
+\b If you want the old IBM PC character set with block graphics and\r
+line-drawing characters, you can select \q{\i{CP437}}.\r
+\r
+\b PuTTY also supports \i{Unicode} mode, in which the data coming from\r
+the server is interpreted as being in the \i{UTF-8} encoding of Unicode,\r
+and keystrokes are sent UTF-8 encoded. If you select \q{UTF-8} as a\r
+character set you can use this mode. Not all server-side applications\r
+will support it.\r
+\r
+If you need support for a numeric \i{code page} which is not listed in\r
+the drop-down list, such as code page 866, then you can try entering\r
+its name manually (\c{\i{CP866}} for example) in the list box. If the\r
+underlying version of Windows has the appropriate translation table\r
+installed, PuTTY will use it.\r
+\r
+\S{config-cjk-ambig-wide} \q{Treat \i{CJK} ambiguous characters as wide}\r
+\r
+\cfg{winhelp-topic}{translation.cjkambigwide}\r
+\r
+There are \I{East Asian Ambiguous characters}some Unicode characters\r
+whose \I{character width}width is not well-defined. In most contexts, such\r
+characters should be treated as single-width for the purposes of \I{wrapping,\r
+terminal}wrapping and so on; however, in some CJK contexts, they are better\r
+treated as double-width for historical reasons, and some server-side\r
+applications may expect them to be displayed as such. Setting this option\r
+will cause PuTTY to take the double-width interpretation. \r
+\r
+If you use legacy CJK applications, and you find your lines are\r
+wrapping in the wrong places, or you are having other display\r
+problems, you might want to play with this setting.\r
+\r
+This option only has any effect in \i{UTF-8} mode (see \k{config-charset}).\r
+\r
+\S{config-cyr} \q{\i{Caps Lock} acts as \i{Cyrillic} switch}\r
+\r
+\cfg{winhelp-topic}{translation.cyrillic}\r
+\r
+This feature allows you to switch between a US/UK keyboard layout\r
+and a Cyrillic keyboard layout by using the Caps Lock key, if you\r
+need to type (for example) \i{Russian} and English side by side in the\r
+same document.\r
+\r
+Currently this feature is not expected to work properly if your\r
+native keyboard layout is not US or UK.\r
+\r
+\S{config-linedraw} Controlling display of \i{line-drawing characters}\r
+\r
+\cfg{winhelp-topic}{translation.linedraw}\r
+\r
+VT100-series terminals allow the server to send \i{control sequence}s that\r
+shift temporarily into a separate character set for drawing simple\r
+lines and boxes. However, there are a variety of ways in which PuTTY\r
+can attempt to find appropriate characters, and the right one to use\r
+depends on the locally configured \i{font}. In general you should probably\r
+try lots of options until you find one that your particular font\r
+supports.\r
+\r
+\b \q{Use Unicode line drawing code points} tries to use the box\r
+characters that are present in \i{Unicode}. For good Unicode-supporting\r
+fonts this is probably the most reliable and functional option.\r
+\r
+\b \q{Poor man's line drawing} assumes that the font \e{cannot}\r
+generate the line and box characters at all, so it will use the\r
+\c{+}, \c{-} and \c{|} characters to draw approximations to boxes.\r
+You should use this option if none of the other options works.\r
+\r
+\b \q{Font has XWindows encoding} is for use with fonts that have a\r
+special encoding, where the lowest 32 character positions (below the\r
+ASCII printable range) contain the line-drawing characters. This is\r
+unlikely to be the case with any standard Windows font; it will\r
+probably only apply to custom-built fonts or fonts that have been\r
+automatically converted from the X Window System.\r
+\r
+\b \q{Use font in both ANSI and OEM modes} tries to use the same\r
+font in two different character sets, to obtain a wider range of\r
+characters. This doesn't always work; some fonts claim to be a\r
+different size depending on which character set you try to use.\r
+\r
+\b \q{Use font in OEM mode only} is more reliable than that, but can\r
+miss out other characters from the main character set.\r
+\r
+\S{config-linedrawpaste} Controlling \i{copy and paste} of line drawing\r
+characters\r
+\r
+\cfg{winhelp-topic}{selection.linedraw}\r
+\r
+By default, when you copy and paste a piece of the PuTTY screen that\r
+contains VT100 line and box drawing characters, PuTTY will paste\r
+them in the form they appear on the screen: either \i{Unicode} line\r
+drawing code points, or the \q{poor man's} line-drawing characters\r
+\c{+}, \c{-} and \c{|}. The checkbox \q{Copy and paste VT100 line\r
+drawing chars as lqqqk} disables this feature, so line-drawing\r
+characters will be pasted as the \i{ASCII} characters that were printed\r
+to produce them. This will typically mean they come out mostly as\r
+\c{q} and \c{x}, with a scattering of \c{jklmntuvw} at the corners.\r
+This might be useful if you were trying to recreate the same box\r
+layout in another program, for example.\r
+\r
+Note that this option only applies to line-drawing characters which\r
+\e{were} printed by using the VT100 mechanism. Line-drawing\r
+characters that were received as Unicode code points will paste as\r
+Unicode always.\r
+\r
+\H{config-selection} The Selection panel\r
+\r
+The Selection panel allows you to control the way \i{copy and paste}\r
+work in the PuTTY window.\r
+\r
+\S{config-rtfpaste} Pasting in \i{Rich Text Format}\r
+\r
+\cfg{winhelp-topic}{selection.rtf}\r
+\r
+If you enable \q{Paste to clipboard in RTF as well as plain text},\r
+PuTTY will write formatting information to the clipboard as well as\r
+the actual text you copy. The effect of this is\r
+that if you paste into (say) a word processor, the text will appear\r
+in the word processor in the same \i{font}, \i{colour}, and style \r
+(e.g. bold, underline) PuTTY was using to display it.\r
+\r
+This option can easily be inconvenient, so by default it is\r
+disabled.\r
+\r
+\S{config-mouse} Changing the actions of the mouse buttons\r
+\r
+\cfg{winhelp-topic}{selection.buttons}\r
+\r
+PuTTY's copy and paste mechanism is by default modelled on the Unix\r
+\c{xterm} application. The X Window System uses a three-button mouse,\r
+and the convention is that the \i{left button} \I{selecting text}selects,\r
+the \i{right button} extends an existing selection, and the\r
+\i{middle button} pastes.\r
+\r
+Windows often only has two mouse buttons, so in PuTTY's default\r
+configuration (\q{Compromise}), the \e{right} button pastes, and the\r
+\e{middle} button (if you have one) \I{adjusting a selection}extends\r
+a selection.\r
+\r
+If you have a \i{three-button mouse} and you are already used to the\r
+\c{xterm} arrangement, you can select it using the \q{Action of\r
+mouse buttons} control.\r
+\r
+Alternatively, with the \q{Windows} option selected, the middle\r
+button extends, and the right button brings up a \i{context menu} (on\r
+which one of the options is \q{Paste}). (This context menu is always\r
+available by holding down Ctrl and right-clicking, regardless of the\r
+setting of this option.)\r
+\r
+\S{config-mouseshift} \q{Shift overrides application's use of mouse}\r
+\r
+\cfg{winhelp-topic}{selection.shiftdrag}\r
+\r
+PuTTY allows the server to send \i{control codes} that let it\r
+\I{mouse reporting}take over the mouse and use it for purposes other\r
+than \i{copy and paste}.\r
+Applications which use this feature include the text-mode web\r
+browser \c{links}, the Usenet newsreader \c{trn} version 4, and the\r
+file manager \c{mc} (Midnight Commander).\r
+\r
+When running one of these applications, pressing the mouse buttons\r
+no longer performs copy and paste. If you do need to copy and paste,\r
+you can still do so if you hold down Shift while you do your mouse\r
+clicks.\r
+\r
+However, it is possible in theory for applications to even detect\r
+and make use of Shift + mouse clicks. We don't know of any\r
+applications that do this, but in case someone ever writes one,\r
+unchecking the \q{Shift overrides application's use of mouse}\r
+checkbox will cause Shift + mouse clicks to go to the server as well\r
+(so that mouse-driven copy and paste will be completely disabled).\r
+\r
+If you want to prevent the application from taking over the mouse at\r
+all, you can do this using the Features control panel; see\r
+\k{config-features-mouse}.\r
+\r
+\S{config-rectselect} Default selection mode\r
+\r
+\cfg{winhelp-topic}{selection.rect}\r
+\r
+As described in \k{using-selection}, PuTTY has two modes of\r
+selecting text to be copied to the clipboard. In the default mode\r
+(\q{Normal}), dragging the mouse from point A to point B selects to\r
+the end of the line containing A, all the lines in between, and from\r
+the very beginning of the line containing B. In the other mode\r
+(\q{Rectangular block}), dragging the mouse between two points\r
+defines a rectangle, and everything within that rectangle is copied.\r
+\r
+Normally, you have to hold down Alt while dragging the mouse to\r
+select a rectangular block. Using the \q{Default selection mode}\r
+control, you can set \i{rectangular selection} as the default, and then\r
+you have to hold down Alt to get the \e{normal} behaviour.\r
+\r
+\S{config-charclasses} Configuring \i{word-by-word selection}\r
+\r
+\cfg{winhelp-topic}{selection.charclasses}\r
+\r
+PuTTY will select a word at a time in the terminal window if you\r
+\i{double-click} to begin the drag. This panel allows you to control\r
+precisely what is considered to be a word.\r
+\r
+Each character is given a \e{class}, which is a small number\r
+(typically 0, 1 or 2). PuTTY considers a single word to be any\r
+number of adjacent characters in the same class. So by modifying the\r
+assignment of characters to classes, you can modify the word-by-word\r
+selection behaviour.\r
+\r
+In the default configuration, the \i{character classes} are:\r
+\r
+\b Class 0 contains \i{white space} and control characters.\r
+\r
+\b Class 1 contains most \i{punctuation}.\r
+\r
+\b Class 2 contains letters, numbers and a few pieces of punctuation\r
+(the double quote, minus sign, period, forward slash and\r
+underscore).\r
+\r
+So, for example, if you assign the \c{@} symbol into character class\r
+2, you will be able to select an e-mail address with just a double\r
+click.\r
+\r
+In order to adjust these assignments, you start by selecting a group\r
+of characters in the list box. Then enter a class number in the edit\r
+box below, and press the \q{Set} button.\r
+\r
+This mechanism currently only covers ASCII characters, because it\r
+isn't feasible to expand the list to cover the whole of Unicode.\r
+\r
+Character class definitions can be modified by \i{control sequence}s\r
+sent by the server. This configuration option controls the\r
+\e{default} state, which will be restored when you reset the\r
+terminal (see \k{reset-terminal}). However, if you modify this\r
+option in mid-session using \q{Change Settings}, it will take effect\r
+immediately.\r
+\r
+\H{config-colours} The Colours panel\r
+\r
+The Colours panel allows you to control PuTTY's use of \i{colour}.\r
+\r
+\S{config-ansicolour} \q{Allow terminal to specify \i{ANSI colours}}\r
+\r
+\cfg{winhelp-topic}{colours.ansi}\r
+\r
+This option is enabled by default. If it is disabled, PuTTY will\r
+ignore any \i{control sequence}s sent by the server to request coloured\r
+text.\r
+\r
+If you have a particularly garish application, you might want to\r
+turn this option off and make PuTTY only use the default foreground\r
+and background colours.\r
+\r
+\S{config-xtermcolour} \q{Allow terminal to use xterm \i{256-colour mode}}\r
+\r
+\cfg{winhelp-topic}{colours.xterm256}\r
+\r
+This option is enabled by default. If it is disabled, PuTTY will\r
+ignore any control sequences sent by the server which use the\r
+extended 256-colour mode supported by recent versions of \cw{xterm}.\r
+\r
+If you have an application which is supposed to use 256-colour mode\r
+and it isn't working, you may find you need to tell your server that\r
+your terminal supports 256 colours. On Unix, you do this by ensuring\r
+that the setting of \i\cw{TERM} describes a 256-colour-capable\r
+terminal. You can check this using a command such as \c{infocmp}:\r
+\r
+\c $ infocmp | grep colors\r
+\c         colors#256, cols#80, it#8, lines#24, pairs#256,\r
+\e         bbbbbbbbbb\r
+\r
+If you do not see \cq{colors#256} in the output, you may need to\r
+change your terminal setting. On modern Linux machines, you could\r
+try \cq{xterm-256color}.\r
+\r
+\S{config-boldcolour} \q{Bolded text is a different colour}\r
+\r
+\cfg{winhelp-topic}{colours.bold}\r
+\r
+When the server sends a \i{control sequence} indicating that some text\r
+should be displayed in \i{bold}, PuTTY can handle this two ways. It can\r
+either change the \i{font} for a bold version, or use the same font in a\r
+brighter colour. This control lets you choose which.\r
+\r
+By default the box is checked, so non-bold text is displayed in\r
+light grey and bold text is displayed in bright white (and similarly\r
+in other colours). If you uncheck the box, bold and non-bold text\r
+will be displayed in the same colour, and instead the font will\r
+change to indicate the difference.\r
+\r
+\S{config-logpalette} \q{Attempt to use \i{logical palettes}}\r
+\r
+\cfg{winhelp-topic}{colours.logpal}\r
+\r
+Logical palettes are a mechanism by which a Windows application\r
+running on an \i{8-bit colour} display can select precisely the colours\r
+it wants instead of going with the Windows standard defaults.\r
+\r
+If you are not getting the colours you ask for on an 8-bit display,\r
+you can try enabling this option. However, be warned that it's never\r
+worked very well.\r
+\r
+\S{config-syscolour} \q{Use \i{system colours}}\r
+\r
+\cfg{winhelp-topic}{colours.system}\r
+\r
+Enabling this option will cause PuTTY to ignore the configured colours\r
+for \I{default background}\I{default foreground}\q{Default\r
+Background/Foreground} and \I{cursor colour}\q{Cursor Colour/Text} (see\r
+\k{config-colourcfg}), instead going with the system-wide defaults.\r
+\r
+Note that non-bold and \i{bold text} will be the same colour if this\r
+option is enabled. You might want to change to indicating bold text\r
+by font changes (see \k{config-boldcolour}).\r
+\r
+\S{config-colourcfg} Adjusting the colours in the \i{terminal window}\r
+\r
+\cfg{winhelp-topic}{colours.config}\r
+\r
+The main colour control allows you to specify exactly what colours\r
+things should be displayed in. To modify one of the PuTTY colours,\r
+use the list box to select which colour you want to modify. The \i{RGB\r
+values} for that colour will appear on the right-hand side of the\r
+list box. Now, if you press the \q{Modify} button, you will be\r
+presented with a colour selector, in which you can choose a new\r
+colour to go in place of the old one. (You may also edit the RGB\r
+values directly in the edit boxes, if you wish; each value is an\r
+integer from 0 to 255.)\r
+\r
+PuTTY allows you to set the \i{cursor colour}, the \i{default foreground}\r
+and \I{default background}background, and the precise shades of all the\r
+\I{ANSI colours}ANSI configurable colours (black, red, green, yellow, blue,\r
+magenta, cyan, and white). You can also modify the precise shades used for\r
+the \i{bold} versions of these colours; these are used to display bold text\r
+if you have selected \q{Bolded text is a different colour}, and can also be\r
+used if the server asks specifically to use them. (Note that \q{Default\r
+Bold Background} is \e{not} the background colour used for bold text;\r
+it is only used if the server specifically asks for a bold\r
+background.)\r
+\r
+\H{config-connection} The Connection panel\r
+\r
+The Connection panel allows you to configure options that apply to\r
+more than one type of \i{connection}.\r
+\r
+\S{config-keepalive} Using \i{keepalives} to prevent disconnection\r
+\r
+\cfg{winhelp-topic}{connection.keepalive}\r
+\r
+If you find your sessions are closing unexpectedly (most often with\r
+\q{Connection reset by peer}) after they have been idle for a while,\r
+you might want to try using this option.\r
+\r
+Some network \i{routers} and \i{firewalls} need to keep track of all\r
+connections through them. Usually, these firewalls will assume a\r
+connection is dead if no data is transferred in either direction\r
+after a certain time interval. This can cause PuTTY sessions to be\r
+unexpectedly closed by the firewall if no traffic is seen in the\r
+session for some time.\r
+\r
+The keepalive option (\q{Seconds between keepalives}) allows you to\r
+configure PuTTY to send data through the session at regular\r
+intervals, in a way that does not disrupt the actual terminal\r
+session. If you find your firewall is cutting \i{idle connections} off,\r
+you can try entering a non-zero value in this field. The value is\r
+measured in seconds; so, for example, if your firewall cuts\r
+connections off after ten minutes then you might want to enter 300\r
+seconds (5 minutes) in the box.\r
+\r
+Note that keepalives are not always helpful. They help if you have a\r
+firewall which drops your connection after an idle period; but if\r
+the network between you and the server suffers from \i{breaks in\r
+connectivity} then keepalives can actually make things worse. If a\r
+session is idle, and connectivity is temporarily lost between the\r
+endpoints, but the connectivity is restored before either side tries\r
+to send anything, then there will be no problem - neither endpoint\r
+will notice that anything was wrong. However, if one side does send\r
+something during the break, it will repeatedly try to re-send, and\r
+eventually give up and abandon the connection. Then when\r
+connectivity is restored, the other side will find that the first\r
+side doesn't believe there is an open connection any more.\r
+Keepalives can make this sort of problem worse, because they\r
+increase the probability that PuTTY will attempt to send data during\r
+a break in connectivity. (Other types of periodic network activity\r
+can cause this behaviour; in particular, SSH-2 re-keys can have\r
+this effect. See \k{config-ssh-kex-rekey}.)\r
+\r
+Therefore, you might find that keepalives help\r
+connection loss, or you might find they make it worse, depending on\r
+what \e{kind} of network problems you have between you and the\r
+server.\r
+\r
+Keepalives are only supported in Telnet and SSH; the Rlogin and Raw\r
+protocols offer no way of implementing them. (For an alternative, see\r
+\k{config-tcp-keepalives}.)\r
+\r
+Note that if you are using \i{SSH-1} and the server has a bug that makes\r
+it unable to deal with SSH-1 ignore messages (see\r
+\k{config-ssh-bug-ignore1}), enabling keepalives will have no effect.\r
+\r
+\S{config-nodelay} \q{Disable \i{Nagle's algorithm}}\r
+\r
+\cfg{winhelp-topic}{connection.nodelay}\r
+\r
+Nagle's algorithm is a detail of TCP/IP implementations that tries\r
+to minimise the number of small data packets sent down a network\r
+connection. With Nagle's algorithm enabled, PuTTY's \i{bandwidth} usage\r
+will be slightly more efficient; with it disabled, you may find you\r
+get a faster response to your keystrokes when connecting to some\r
+types of server.\r
+\r
+The Nagle algorithm is disabled by default for \i{interactive connections}.\r
+\r
+\S{config-tcp-keepalives} \q{Enable \i{TCP keepalives}}\r
+\r
+\cfg{winhelp-topic}{connection.tcpkeepalive}\r
+\r
+\e{NOTE:} TCP keepalives should not be confused with the\r
+application-level keepalives described in \k{config-keepalive}. If in\r
+doubt, you probably want application-level keepalives; TCP keepalives\r
+are provided for completeness.\r
+\r
+The idea of TCP keepalives is similar to application-level keepalives,\r
+and the same caveats apply. The main differences are:\r
+\r
+\b TCP keepalives are available on \e{all} connection types, including\r
+Raw and Rlogin.\r
+\r
+\b The interval between TCP keepalives is usually much longer,\r
+typically two hours; this is set by the operating system, and cannot\r
+be configured within PuTTY.\r
+\r
+\b If the operating system does not receive a response to a keepalive,\r
+it may send out more in quick succession and terminate the connection\r
+if no response is received.\r
+\r
+TCP keepalives may be more useful for ensuring that \i{half-open connections}\r
+are terminated than for keeping a connection alive.\r
+\r
+TCP keepalives are disabled by default.\r
+\r
+\S{config-address-family} \I{Internet protocol version}\q{Internet protocol}\r
+\r
+\cfg{winhelp-topic}{connection.ipversion}\r
+\r
+This option allows the user to select between the old and new\r
+Internet protocols and addressing schemes (\i{IPv4} and \i{IPv6}).\r
+The selected protocol will be used for most outgoing network\r
+connections (including connections to \I{proxy}proxies); however,\r
+tunnels have their own configuration, for which see\r
+\k{config-ssh-portfwd-address-family}.\r
+\r
+The default setting is \q{Auto}, which means PuTTY will do something\r
+sensible and try to guess which protocol you wanted. (If you specify\r
+a literal \i{Internet address}, it will use whichever protocol that\r
+address implies. If you provide a \i{hostname}, it will see what kinds\r
+of address exist for that hostname; it will use IPv6 if there is an\r
+IPv6 address available, and fall back to IPv4 if not.)\r
+\r
+If you need to force PuTTY to use a particular protocol, you can\r
+explicitly set this to \q{IPv4} or \q{IPv6}.\r
+\r
+\S{config-loghost} \I{logical host name}\q{Logical name of remote host}\r
+\r
+\cfg{winhelp-topic}{connection.loghost}\r
+\r
+This allows you to tell PuTTY that the host it will really end up\r
+connecting to is different from where it thinks it is making a\r
+network connection.\r
+\r
+You might use this, for instance, if you had set up an SSH port\r
+forwarding in one PuTTY session so that connections to some\r
+arbitrary port (say, \cw{localhost} port 10022) were forwarded to a\r
+second machine's SSH port (say, \cw{foovax} port 22), and then\r
+started a second PuTTY connecting to the forwarded port.\r
+\r
+In normal usage, the second PuTTY will access the host key cache\r
+under the host name and port it actually connected to (i.e.\r
+\cw{localhost} port 10022 in this example). Using the logical host\r
+name option, however, you can configure the second PuTTY to cache\r
+the host key under the name of the host \e{you} know that it's\r
+\e{really} going to end up talking to (here \c{foovax}).\r
+\r
+This can be useful if you expect to connect to the same actual\r
+server through many different channels (perhaps because your port\r
+forwarding arrangements keep changing): by consistently setting the\r
+logical host name, you can arrange that PuTTY will not keep asking\r
+you to reconfirm its host key. Conversely, if you expect to use the\r
+same local port number for port forwardings to lots of different\r
+servers, you probably didn't want any particular server's host key\r
+cached under that local port number.\r
+\r
+If you just enter a host name for this option, PuTTY will cache the\r
+SSH host key under the default SSH port for that host, irrespective\r
+of the port you really connected to (since the typical scenario is\r
+like the above example: you connect to a silly real port number and\r
+your connection ends up forwarded to the normal port-22 SSH server\r
+of some other machine). To override this, you can append a port\r
+number to the logical host name, separated by a colon. E.g. entering\r
+\cq{foovax:2200} as the logical host name will cause the host key to\r
+be cached as if you had connected to port 2200 of \c{foovax}.\r
+\r
+If you provide a host name using this option, it is also displayed\r
+in other locations which contain the remote host name, such as the\r
+default window title and the default SSH password prompt. This\r
+reflects the fact that this is the host you're \e{really} connecting\r
+to, which is more important than the mere means you happen to be\r
+using to contact that host. (This applies even if you're using a\r
+protocol other than SSH.)\r
+\r
+\H{config-data} The Data panel\r
+\r
+The Data panel allows you to configure various pieces of data which\r
+can be sent to the server to affect your connection at the far end.\r
+\r
+Each option on this panel applies to more than one protocol.\r
+Options which apply to only one protocol appear on that protocol's\r
+configuration panels.\r
+\r
+\S{config-username} \q{\ii{Auto-login username}}\r
+\r
+\cfg{winhelp-topic}{connection.username}\r
+\r
+All three of the SSH, Telnet and Rlogin protocols allow you to\r
+specify what user name you want to log in as, without having to type\r
+it explicitly every time. (Some Telnet servers don't support this.)\r
+\r
+In this box you can type that user name.\r
+\r
+\S{config-username-from-env} Use of system username\r
+\r
+\cfg{winhelp-topic}{connection.usernamefromenv}\r
+\r
+When the previous box (\k{config-username}) is left blank, by default,\r
+PuTTY will prompt for a username at the time you make a connection.\r
+\r
+In some environments, such as the networks of large organisations\r
+implementing \i{single sign-on}, a more sensible default may be to use\r
+the name of the user logged in to the local operating system (if any);\r
+this is particularly likely to be useful with \i{GSSAPI} authentication\r
+(see \k{config-ssh-auth-gssapi}). This control allows you to change\r
+the default behaviour.\r
+\r
+The current system username is displayed in the dialog as a\r
+convenience. It is not saved in the configuration; if a saved session\r
+is later used by a different user, that user's name will be used.\r
+\r
+\S{config-termtype} \q{\ii{Terminal-type} string}\r
+\r
+\cfg{winhelp-topic}{connection.termtype}\r
+\r
+Most servers you might connect to with PuTTY are designed to be\r
+connected to from lots of different types of terminal. In order to\r
+send the right \i{control sequence}s to each one, the server will need\r
+to know what type of terminal it is dealing with. Therefore, each of\r
+the SSH, Telnet and Rlogin protocols allow a text string to be sent\r
+down the connection describing the terminal.  On a \i{Unix} server,\r
+this selects an entry from the \i\c{termcap} or \i\c{terminfo} database\r
+that tells applications what \i{control sequences} to send to the\r
+terminal, and what character sequences to expect the \i{keyboard}\r
+to generate.\r
+\r
+PuTTY attempts to emulate the Unix \i\c{xterm} program, and by default\r
+it reflects this by sending \c{xterm} as a terminal-type string. If\r
+you find this is not doing what you want - perhaps the remote\r
+system reports \q{Unknown terminal type} - you could try setting\r
+this to something different, such as \i\c{vt220}.\r
+\r
+If you're not sure whether a problem is due to the terminal type\r
+setting or not, you probably need to consult the manual for your\r
+application or your server.\r
+\r
+\S{config-termspeed} \q{\ii{Terminal speed}s}\r
+\r
+\cfg{winhelp-topic}{connection.termspeed}\r
+\r
+The Telnet, Rlogin, and SSH protocols allow the client to specify\r
+terminal speeds to the server.\r
+\r
+This parameter does \e{not} affect the actual speed of the connection,\r
+which is always \q{as fast as possible}; it is just a hint that is\r
+sometimes used by server software to modify its behaviour. For\r
+instance, if a slow speed is indicated, the server may switch to a\r
+less \i{bandwidth}-hungry display mode.\r
+\r
+The value is usually meaningless in a network environment, but\r
+PuTTY lets you configure it, in case you find the server is reacting\r
+badly to the default value.\r
+\r
+The format is a pair of numbers separated by a comma, for instance,\r
+\c{38400,38400}. The first number represents the output speed\r
+(\e{from} the server) in bits per second, and the second is the input\r
+speed (\e{to} the server). (Only the first is used in the Rlogin\r
+protocol.)\r
+\r
+This option has no effect on Raw connections.\r
+\r
+\S{config-environ} Setting \i{environment variables} on the server\r
+\r
+\cfg{winhelp-topic}{telnet.environ}\r
+\r
+The Telnet protocol provides a means for the client to pass\r
+environment variables to the server. Many Telnet servers have\r
+stopped supporting this feature due to security flaws, but PuTTY\r
+still supports it for the benefit of any servers which have found\r
+other ways around the security problems than just disabling the\r
+whole mechanism.\r
+\r
+Version 2 of the SSH protocol also provides a similar mechanism,\r
+which is easier to implement without security flaws. Newer \i{SSH-2}\r
+servers are more likely to support it than older ones.\r
+\r
+This configuration data is not used in the SSH-1, rlogin or raw\r
+protocols.\r
+\r
+To add an environment variable to the list transmitted down the\r
+connection, you enter the variable name in the \q{Variable} box,\r
+enter its value in the \q{Value} box, and press the \q{Add} button.\r
+To remove one from the list, select it in the list box and press\r
+\q{Remove}.\r
+\r
+\H{config-proxy} The Proxy panel\r
+\r
+\cfg{winhelp-topic}{proxy.main}\r
+\r
+The \ii{Proxy} panel allows you to configure PuTTY to use various types\r
+of proxy in order to make its network connections. The settings in\r
+this panel affect the primary network connection forming your PuTTY\r
+session, and also any extra connections made as a result of SSH \i{port\r
+forwarding} (see \k{using-port-forwarding}).\r
+\r
+Note that unlike some software (such as web browsers), PuTTY does not\r
+attempt to automatically determine whether to use a proxy and (if so)\r
+which one to use for a given destination. If you need to use a proxy,\r
+it must always be explicitly configured.\r
+\r
+\S{config-proxy-type} Setting the proxy type\r
+\r
+\cfg{winhelp-topic}{proxy.type}\r
+\r
+The \q{Proxy type} radio buttons allow you to configure what type of\r
+proxy you want PuTTY to use for its network connections. The default\r
+setting is \q{None}; in this mode no proxy is used for any\r
+connection.\r
+\r
+\b Selecting \I{HTTP proxy}\q{HTTP} allows you to proxy your connections\r
+through a web server supporting the HTTP \cw{CONNECT} command, as documented\r
+in \W{http://www.ietf.org/rfc/rfc2817.txt}{RFC 2817}.\r
+\r
+\b Selecting \q{SOCKS 4} or \q{SOCKS 5} allows you to proxy your\r
+connections through a \i{SOCKS server}.\r
+\r
+\b Many firewalls implement a less formal type of proxy in which a\r
+user can make a Telnet connection directly to the firewall machine\r
+and enter a command such as \c{connect myhost.com 22} to connect\r
+through to an external host. Selecting \I{Telnet proxy}\q{Telnet}\r
+allows you to tell PuTTY to use this type of proxy.\r
+\r
+\b Selecting \I{Local proxy}\q{Local} allows you to specify an arbitrary\r
+command on the local machine to act as a proxy. When the session is\r
+started, instead of creating a TCP connection, PuTTY runs the command\r
+(specified in \k{config-proxy-command}), and uses its standard input and\r
+output streams.\r
+\r
+\lcont{\r
+This could be used, for instance, to talk to some kind of network proxy\r
+that PuTTY does not natively support; or you could tunnel a connection\r
+over something other than TCP/IP entirely.\r
+\r
+If you want your local proxy command to make a secondary SSH\r
+connection to a proxy host and then tunnel the primary connection\r
+over that, you might well want the \c{-nc} command-line option in\r
+Plink. See \k{using-cmdline-ncmode} for more information.\r
+}\r
+\r
+\S{config-proxy-exclude} Excluding parts of the network from proxying\r
+\r
+\cfg{winhelp-topic}{proxy.exclude}\r
+\r
+Typically you will only need to use a proxy to connect to non-local\r
+parts of your network; for example, your proxy might be required for\r
+connections outside your company's internal network. In the\r
+\q{Exclude Hosts/IPs} box you can enter ranges of IP addresses, or\r
+ranges of DNS names, for which PuTTY will avoid using the proxy and\r
+make a direct connection instead.\r
+\r
+The \q{Exclude Hosts/IPs} box may contain more than one exclusion\r
+range, separated by commas. Each range can be an IP address or a DNS\r
+name, with a \c{*} character allowing wildcards. For example:\r
+\r
+\c *.example.com\r
+\r
+This excludes any host with a name ending in \c{.example.com} from\r
+proxying.\r
+\r
+\c 192.168.88.*\r
+\r
+This excludes any host with an IP address starting with 192.168.88\r
+from proxying.\r
+\r
+\c 192.168.88.*,*.example.com\r
+\r
+This excludes both of the above ranges at once.\r
+\r
+Connections to the local host (the host name \i\c{localhost}, and any\r
+\i{loopback IP address}) are never proxied, even if the proxy exclude\r
+list does not explicitly contain them. It is very unlikely that this\r
+behaviour would ever cause problems, but if it does you can change\r
+it by enabling \q{Consider proxying local host connections}.\r
+\r
+Note that if you are doing \I{proxy DNS}DNS at the proxy (see\r
+\k{config-proxy-dns}), you should make sure that your proxy\r
+exclusion settings do not depend on knowing the IP address of a\r
+host. If the name is passed on to the proxy without PuTTY looking it\r
+up, it will never know the IP address and cannot check it against\r
+your list.\r
+\r
+\S{config-proxy-dns} \I{proxy DNS}\ii{Name resolution} when using a proxy\r
+\r
+\cfg{winhelp-topic}{proxy.dns}\r
+\r
+If you are using a proxy to access a private network, it can make a\r
+difference whether \i{DNS} name resolution is performed by PuTTY itself\r
+(on the client machine) or performed by the proxy.\r
+\r
+The \q{Do DNS name lookup at proxy end} configuration option allows\r
+you to control this. If you set it to \q{No}, PuTTY will always do\r
+its own DNS, and will always pass an IP address to the proxy. If you\r
+set it to \q{Yes}, PuTTY will always pass host names straight to the\r
+proxy without trying to look them up first.\r
+\r
+If you set this option to \q{Auto} (the default), PuTTY will do\r
+something it considers appropriate for each type of proxy. Telnet,\r
+HTTP, and SOCKS5 proxies will have host names passed straight to\r
+them; SOCKS4 proxies will not.\r
+\r
+Note that if you are doing DNS at the proxy, you should make sure\r
+that your proxy exclusion settings (see \k{config-proxy-exclude}) do\r
+not depend on knowing the IP address of a host. If the name is\r
+passed on to the proxy without PuTTY looking it up, it will never\r
+know the IP address and cannot check it against your list.\r
+\r
+The original SOCKS 4 protocol does not support proxy-side DNS. There\r
+is a protocol extension (SOCKS 4A) which does support it, but not\r
+all SOCKS 4 servers provide this extension. If you enable proxy DNS\r
+and your SOCKS 4 server cannot deal with it, this might be why.\r
+\r
+\S{config-proxy-auth} \I{proxy username}Username and \I{proxy password}password\r
+\r
+\cfg{winhelp-topic}{proxy.auth}\r
+\r
+If your proxy requires \I{proxy authentication}authentication, you can\r
+enter a username and a password in the \q{Username} and \q{Password} boxes.\r
+\r
+\I{security hazard}Note that if you save your session, the proxy\r
+password will be saved in plain text, so anyone who can access your PuTTY\r
+configuration data will be able to discover it.\r
+\r
+Authentication is not fully supported for all forms of proxy:\r
+\r
+\b Username and password authentication is supported for HTTP\r
+proxies and SOCKS 5 proxies.\r
+\r
+\lcont{\r
+\r
+\b With SOCKS 5, authentication is via \i{CHAP} if the proxy\r
+supports it (this is not supported in \i{PuTTYtel}); otherwise the\r
+password is sent to the proxy in \I{plaintext password}plain text.\r
+\r
+\b With HTTP proxying, the only currently supported authentication\r
+method is \I{HTTP basic}\q{basic}, where the password is sent to the proxy\r
+in \I{plaintext password}plain text.\r
+\r
+}\r
+\r
+\b SOCKS 4 can use the \q{Username} field, but does not support\r
+passwords.\r
+\r
+\b You can specify a way to include a username and password in the\r
+Telnet/Local proxy command (see \k{config-proxy-command}).\r
+\r
+\S{config-proxy-command} Specifying the Telnet or Local proxy command\r
+\r
+\cfg{winhelp-topic}{proxy.command}\r
+\r
+If you are using the \i{Telnet proxy} type, the usual command required\r
+by the firewall's Telnet server is \c{connect}, followed by a host\r
+name and a port number. If your proxy needs a different command,\r
+you can enter an alternative here.\r
+\r
+If you are using the \i{Local proxy} type, the local command to run\r
+is specified here.\r
+\r
+In this string, you can use \c{\\n} to represent a new-line, \c{\\r}\r
+to represent a carriage return, \c{\\t} to represent a tab\r
+character, and \c{\\x} followed by two hex digits to represent any\r
+other character. \c{\\\\} is used to encode the \c{\\} character\r
+itself.\r
+\r
+Also, the special strings \c{%host} and \c{%port} will be replaced\r
+by the host name and port number you want to connect to. The strings\r
+\c{%user} and \c{%pass} will be replaced by the proxy username and \r
+password you specify. The strings \c{%proxyhost} and \c{%proxyport}\r
+will be replaced by the host details specified on the \e{Proxy} panel,\r
+if any (this is most likely to be useful for the Local proxy type).\r
+To get a literal \c{%} sign, enter \c{%%}.\r
+\r
+If a Telnet proxy server prompts for a username and password\r
+before commands can be sent, you can use a command such as:\r
+\r
+\c %user\n%pass\nconnect %host %port\n\r
+\r
+This will send your username and password as the first two lines to \r
+the proxy, followed by a command to connect to the desired host and \r
+port. Note that if you do not include the \c{%user} or \c{%pass}\r
+tokens in the Telnet command, then the \q{Username} and \q{Password}\r
+configuration fields will be ignored.\r
+\r
+\H{config-telnet} The \i{Telnet} panel\r
+\r
+The Telnet panel allows you to configure options that only apply to\r
+Telnet sessions.\r
+\r
+\S{config-oldenviron} \q{Handling of OLD_ENVIRON ambiguity}\r
+\r
+\cfg{winhelp-topic}{telnet.oldenviron}\r
+\r
+The original Telnet mechanism for passing \i{environment variables} was\r
+badly specified. At the time the standard (RFC 1408) was written,\r
+BSD telnet implementations were already supporting the feature, and\r
+the intention of the standard was to describe the behaviour the BSD\r
+implementations were already using.\r
+\r
+Sadly there was a typing error in the standard when it was issued,\r
+and two vital function codes were specified the wrong way round. BSD\r
+implementations did not change, and the standard was not corrected.\r
+Therefore, it's possible you might find either \i{BSD} or \i{RFC}-compliant\r
+implementations out there. This switch allows you to choose which\r
+one PuTTY claims to be.\r
+\r
+The problem was solved by issuing a second standard, defining a new\r
+Telnet mechanism called \i\cw{NEW_ENVIRON}, which behaved exactly like\r
+the original \i\cw{OLD_ENVIRON} but was not encumbered by existing\r
+implementations. Most Telnet servers now support this, and it's\r
+unambiguous. This feature should only be needed if you have trouble\r
+passing environment variables to quite an old server.\r
+\r
+\S{config-ptelnet} Passive and active \i{Telnet negotiation} modes\r
+\r
+\cfg{winhelp-topic}{telnet.passive}\r
+\r
+In a Telnet connection, there are two types of data passed between\r
+the client and the server: actual text, and \e{negotiations} about\r
+which Telnet extra features to use.\r
+\r
+PuTTY can use two different strategies for negotiation:\r
+\r
+\b In \I{active Telnet negotiation}\e{active} mode, PuTTY starts to send\r
+negotiations as soon as the connection is opened.\r
+\r
+\b In \I{passive Telnet negotiation}\e{passive} mode, PuTTY will wait to\r
+negotiate until it sees a negotiation from the server.\r
+\r
+The obvious disadvantage of passive mode is that if the server is\r
+also operating in a passive mode, then negotiation will never begin\r
+at all. For this reason PuTTY defaults to active mode.\r
+\r
+However, sometimes passive mode is required in order to successfully\r
+get through certain types of firewall and \i{Telnet proxy} server. If\r
+you have confusing trouble with a \i{firewall}, you could try enabling\r
+passive mode to see if it helps.\r
+\r
+\S{config-telnetkey} \q{Keyboard sends \i{Telnet special commands}}\r
+\r
+\cfg{winhelp-topic}{telnet.specialkeys}\r
+\r
+If this box is checked, several key sequences will have their normal\r
+actions modified:\r
+\r
+\b the Backspace key on the keyboard will send the \I{Erase Character,\r
+Telnet special command}Telnet special backspace code;\r
+\r
+\b Control-C will send the Telnet special \I{Interrupt Process, Telnet\r
+special command}Interrupt Process code;\r
+\r
+\b Control-Z will send the Telnet special \I{Suspend Process, Telnet\r
+special command}Suspend Process code.\r
+\r
+You probably shouldn't enable this\r
+unless you know what you're doing.\r
+\r
+\S{config-telnetnl} \q{Return key sends \i{Telnet New Line} instead of ^M}\r
+\r
+\cfg{winhelp-topic}{telnet.newline}\r
+\r
+Unlike most other remote login protocols, the Telnet protocol has a\r
+special \q{\i{new line}} code that is not the same as the usual line\r
+endings of Control-M or Control-J. By default, PuTTY sends the\r
+Telnet New Line code when you press Return, instead of sending\r
+Control-M as it does in most other protocols.\r
+\r
+Most Unix-style Telnet servers don't mind whether they receive\r
+Telnet New Line or Control-M; some servers do expect New Line, and\r
+some servers prefer to see ^M. If you are seeing surprising\r
+behaviour when you press Return in a Telnet session, you might try\r
+turning this option off to see if it helps.\r
+\r
+\H{config-rlogin} The Rlogin panel\r
+\r
+The \i{Rlogin} panel allows you to configure options that only apply to\r
+Rlogin sessions.\r
+\r
+\S{config-rlogin-localuser} \I{local username in Rlogin}\q{Local username}\r
+\r
+\cfg{winhelp-topic}{rlogin.localuser}\r
+\r
+Rlogin allows an automated (password-free) form of login by means of\r
+a file called \i\c{.rhosts} on the server. You put a line in your\r
+\c{.rhosts} file saying something like \c{jbloggs@pc1.example.com},\r
+and then when you make an Rlogin connection the client transmits the\r
+username of the user running the Rlogin client. The server checks\r
+the username and hostname against \c{.rhosts}, and if they match it\r
+\I{passwordless login}does not ask for a password.\r
+\r
+This only works because Unix systems contain a safeguard to stop a\r
+user from pretending to be another user in an Rlogin connection.\r
+Rlogin connections have to come from \I{privileged port}port numbers below\r
+1024, and Unix systems prohibit this to unprivileged processes; so when the\r
+server sees a connection from a low-numbered port, it assumes the\r
+client end of the connection is held by a privileged (and therefore\r
+trusted) process, so it believes the claim of who the user is.\r
+\r
+Windows does not have this restriction: \e{any} user can initiate an\r
+outgoing connection from a low-numbered port. Hence, the Rlogin\r
+\c{.rhosts} mechanism is completely useless for securely\r
+distinguishing several different users on a Windows machine. If you\r
+have a \c{.rhosts} entry pointing at a Windows PC, you should assume\r
+that \e{anyone} using that PC can \i{spoof} your username in\r
+an Rlogin connection and access your account on the server.\r
+\r
+The \q{Local username} control allows you to specify what user name\r
+PuTTY should claim you have, in case it doesn't match your \i{Windows\r
+user name} (or in case you didn't bother to set up a Windows user\r
+name).\r
+\r
+\H{config-ssh} The SSH panel\r
+\r
+The \i{SSH} panel allows you to configure options that only apply to\r
+SSH sessions.\r
+\r
+\S{config-command} Executing a specific command on the server\r
+\r
+\cfg{winhelp-topic}{ssh.command}\r
+\r
+In SSH, you don't have to run a general shell session on the server.\r
+Instead, you can choose to run a single specific command (such as a\r
+mail user agent, for example). If you want to do this, enter the\r
+command in the \q{\ii{Remote command}} box.\r
+\r
+Note that most servers will close the session after executing the\r
+command.\r
+\r
+\S{config-ssh-noshell} \q{Don't start a \I{remote shell}shell or\r
+\I{remote command}command at all}\r
+\r
+\cfg{winhelp-topic}{ssh.noshell}\r
+\r
+If you tick this box, PuTTY will not attempt to run a shell or\r
+command after connecting to the remote server. You might want to use\r
+this option if you are only using the SSH connection for \i{port\r
+forwarding}, and your user account on the server does not have the\r
+ability to run a shell.\r
+\r
+This feature is only available in \i{SSH protocol version 2} (since the\r
+version 1 protocol assumes you will always want to run a shell).\r
+\r
+This feature can also be enabled using the \c{-N} command-line\r
+option; see \k{using-cmdline-noshell}.\r
+\r
+If you use this feature in Plink, you will not be able to terminate\r
+the Plink process by any graceful means; the only way to kill it\r
+will be by pressing Control-C or sending a kill signal from another\r
+program.\r
+\r
+\S{config-ssh-comp} \q{Enable \i{compression}}\r
+\r
+\cfg{winhelp-topic}{ssh.compress}\r
+\r
+This enables data compression in the SSH connection: data sent by\r
+the server is compressed before sending, and decompressed at the\r
+client end. Likewise, data sent by PuTTY to the server is compressed\r
+first and the server decompresses it at the other end. This can help\r
+make the most of a low-\i{bandwidth} connection.\r
+\r
+\S{config-ssh-prot} \q{Preferred \i{SSH protocol version}}\r
+\r
+\cfg{winhelp-topic}{ssh.protocol}\r
+\r
+This allows you to select whether you would like to use \i{SSH protocol\r
+version 1} or \I{SSH-2}version 2. \#{FIXME: say something about this elsewhere?}\r
+\r
+PuTTY will attempt to use protocol 1 if the server you connect to\r
+does not offer protocol 2, and vice versa.\r
+\r
+If you select \q{1 only} or \q{2 only} here, PuTTY will only connect\r
+if the server you connect to offers the SSH protocol version you\r
+have specified.\r
+\r
+\S{config-ssh-encryption} \ii{Encryption} algorithm selection\r
+\r
+\cfg{winhelp-topic}{ssh.ciphers}\r
+\r
+PuTTY supports a variety of different \i{encryption algorithm}s, and\r
+allows you to choose which one you prefer to use. You can do this by\r
+dragging the algorithms up and down in the list box (or moving them\r
+using the Up and Down buttons) to specify a preference order. When\r
+you make an SSH connection, PuTTY will search down the list from the\r
+top until it finds an algorithm supported by the server, and then\r
+use that.\r
+\r
+PuTTY currently supports the following algorithms:\r
+\r
+\b \i{AES} (Rijndael) - 256, 192, or 128-bit SDCTR or CBC (SSH-2 only)\r
+\r
+\b \i{Arcfour} (RC4) - 256 or 128-bit stream cipher (SSH-2 only)\r
+\r
+\b \i{Blowfish} - 256-bit SDCTR (SSH-2 only) or 128-bit CBC\r
+\r
+\b \ii{Triple-DES} - 168-bit SDCTR (SSH-2 only) or CBC\r
+\r
+\b \ii{Single-DES} - 56-bit CBC (see below for SSH-2)\r
+\r
+If the algorithm PuTTY finds is below the \q{warn below here} line,\r
+you will see a warning box when you make the connection:\r
+\r
+\c The first cipher supported by the server\r
+\c is single-DES, which is below the configured\r
+\c warning threshold.\r
+\c Do you want to continue with this connection?\r
+\r
+This warns you that the first available encryption is not a very\r
+secure one. Typically you would put the \q{warn below here} line\r
+between the encryptions you consider secure and the ones you\r
+consider substandard. By default, PuTTY supplies a preference order\r
+intended to reflect a reasonable preference in terms of security and\r
+speed.\r
+\r
+In SSH-2, the encryption algorithm is negotiated independently for\r
+each direction of the connection, although PuTTY does not support\r
+separate configuration of the preference orders. As a result you may\r
+get two warnings similar to the one above, possibly with different\r
+encryptions.\r
+\r
+Single-DES is not recommended in the SSH-2 protocol\r
+standards, but one or two server implementations do support it.\r
+PuTTY can use single-DES to interoperate with\r
+these servers if you enable the \q{Enable legacy use of single-DES in\r
+SSH-2} option; by default this is disabled and PuTTY will stick to\r
+recommended ciphers.\r
+\r
+\H{config-ssh-kex} The Kex panel\r
+\r
+\# FIXME: This whole section is draft. Feel free to revise.\r
+\r
+The Kex panel (short for \q{\i{key exchange}}) allows you to configure\r
+options related to SSH-2 key exchange.\r
+\r
+Key exchange occurs at the start of an SSH connection (and\r
+occasionally thereafter); it establishes a \i{shared secret} that is used\r
+as the basis for all of SSH's security features. It is therefore very\r
+important for the security of the connection that the key exchange is\r
+secure.\r
+\r
+Key exchange is a cryptographically intensive process; if either the\r
+client or the server is a relatively slow machine, the slower methods\r
+may take several tens of seconds to complete.\r
+\r
+If connection startup is too slow, or the connection hangs\r
+periodically, you may want to try changing these settings.\r
+\r
+If you don't understand what any of this means, it's safe to leave\r
+these settings alone.\r
+\r
+This entire panel is only relevant to SSH protocol version 2; none of\r
+these settings affect SSH-1 at all.\r
+\r
+\S{config-ssh-kex-order} \ii{Key exchange algorithm} selection\r
+\r
+\cfg{winhelp-topic}{ssh.kex.order}\r
+\r
+PuTTY supports a variety of SSH-2 key exchange methods, and allows you\r
+to choose which one you prefer to use; configuration is similar to\r
+cipher selection (see \k{config-ssh-encryption}).\r
+\r
+PuTTY currently supports the following varieties of \i{Diffie-Hellman key\r
+exchange}:\r
+\r
+\b \q{Group 14}: a well-known 2048-bit group.\r
+\r
+\b \q{Group 1}: a well-known 1024-bit group. This is less secure\r
+\#{FIXME better words} than group 14, but may be faster with slow\r
+client or server machines, and may be the only method supported by\r
+older server software.\r
+\r
+\b \q{\ii{Group exchange}}: with this method, instead of using a fixed\r
+group, PuTTY requests that the server suggest a group to use for key\r
+exchange; the server can avoid groups known to be weak, and possibly\r
+invent new ones over time, without any changes required to PuTTY's\r
+configuration. We recommend use of this method, if possible.\r
+\r
+In addition, PuTTY supports \i{RSA key exchange}, which requires much less\r
+computational effort on the part of the client, and somewhat less on\r
+the part of the server, than Diffie-Hellman key exchange.\r
+\r
+If the first algorithm PuTTY finds is below the \q{warn below here}\r
+line, you will see a warning box when you make the connection, similar\r
+to that for cipher selection (see \k{config-ssh-encryption}).\r
+\r
+\S{config-ssh-kex-rekey} \ii{Repeat key exchange}\r
+\r
+\cfg{winhelp-topic}{ssh.kex.repeat}\r
+\r
+If the session key negotiated at connection startup is used too much\r
+or for too long, it may become feasible to mount attacks against the\r
+SSH connection. Therefore, the SSH-2 protocol specifies that a new key\r
+exchange should take place every so often; this can be initiated by\r
+either the client or the server.\r
+\r
+While this renegotiation is taking place, no data can pass through\r
+the SSH connection, so it may appear to \q{freeze}. (The occurrence of\r
+repeat key exchange is noted in the Event Log; see\r
+\k{using-eventlog}.) Usually the same algorithm is used as at the\r
+start of the connection, with a similar overhead.\r
+\r
+These options control how often PuTTY will initiate a repeat key\r
+exchange (\q{rekey}). You can also force a key exchange at any time\r
+from the Special Commands menu (see \k{using-specials}).\r
+\r
+\# FIXME: do we have any additions to the SSH-2 specs' advice on\r
+these values? Do we want to enforce any limits?\r
+\r
+\b \q{Max minutes before rekey} specifies the amount of time that is\r
+allowed to elapse before a rekey is initiated. If this is set to zero,\r
+PuTTY will not rekey due to elapsed time. The SSH-2 protocol\r
+specification recommends a timeout of at most 60 minutes.\r
+\r
+You might have a need to disable time-based rekeys completely for the same\r
+reasons that \i{keepalives} aren't always helpful. If you anticipate\r
+suffering a network dropout of several hours in the middle of an SSH\r
+connection, but were not actually planning to send \e{data} down\r
+that connection during those hours, then an attempted rekey in the\r
+middle of the dropout will probably cause the connection to be\r
+abandoned, whereas if rekeys are disabled then the connection should\r
+in principle survive (in the absence of interfering \i{firewalls}). See\r
+\k{config-keepalive} for more discussion of these issues; for these\r
+purposes, rekeys have much the same properties as keepalives.\r
+(Except that rekeys have cryptographic value in themselves, so you\r
+should bear that in mind when deciding whether to turn them off.)\r
+Note, however, the the SSH \e{server} can still initiate rekeys.\r
+\r
+\b \q{Max data before rekey} specifies the amount of data (in bytes)\r
+that is permitted to flow in either direction before a rekey is\r
+initiated. If this is set to zero, PuTTY will not rekey due to\r
+transferred data. The SSH-2 protocol specification recommends a limit\r
+of at most 1 gigabyte.\r
+\r
+\lcont{\r
+\r
+As well as specifying a value in bytes, the following shorthand can be\r
+used:\r
+\r
+\b \cq{1k} specifies 1 kilobyte (1024 bytes).\r
+\r
+\b \cq{1M} specifies 1 megabyte (1024 kilobytes).\r
+\r
+\b \cq{1G} specifies 1 gigabyte (1024 megabytes).\r
+\r
+}\r
+\r
+Disabling data-based rekeys entirely is a bad idea.  The \i{integrity},\r
+and to a lesser extent, \i{confidentiality} of the SSH-2 protocol depend\r
+in part on rekeys occuring before a 32-bit packet sequence number\r
+wraps around.  Unlike time-based rekeys, data-based rekeys won't occur\r
+when the SSH connection is idle, so they shouldn't cause the same\r
+problems.  The SSH-1 protocol, incidentally, has even weaker integrity\r
+protection than SSH-2 without rekeys.\r
+\r
+\H{config-ssh-auth} The Auth panel\r
+\r
+The Auth panel allows you to configure \i{authentication} options for\r
+SSH sessions.\r
+\r
+\S{config-ssh-noauth} \q{Bypass authentication entirely}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.bypass}\r
+\r
+In SSH-2, it is possible to establish a connection without using SSH's\r
+mechanisms to identify or authenticate oneself to the server. Some\r
+servers may prefer to handle authentication in the data channel, for\r
+instance, or may simply require no authentication whatsoever.\r
+\r
+By default, PuTTY assumes the server requires authentication (most\r
+do), and thus must provide a username. If you find you are getting\r
+unwanted username prompts, you could try checking this option.\r
+\r
+This option only affects SSH-2 connections. SSH-1 connections always\r
+require an authentication step.\r
+\r
+\S{config-ssh-banner} \q{Display pre-authentication banner}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.banner}\r
+\r
+SSH-2 servers can provide a message for clients to display to the\r
+prospective user before the user logs in; this is sometimes known as a\r
+pre-authentication \q{\i{banner}}. Typically this is used to provide\r
+information about the server and legal notices.\r
+\r
+By default, PuTTY displays this message before prompting for a\r
+password or similar credentials (although, unfortunately, not before\r
+prompting for a login name, due to the nature of the protocol design).\r
+By unchecking this option, display of the banner can be suppressed\r
+entirely.\r
+\r
+\S{config-ssh-tryagent} \q{Attempt authentication using Pageant}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.pageant}\r
+\r
+If this option is enabled, then PuTTY will look for Pageant (the SSH\r
+private-key storage agent) and attempt to authenticate with any\r
+suitable public keys Pageant currently holds.\r
+\r
+This behaviour is almost always desirable, and is therefore enabled\r
+by default. In rare cases you might need to turn it off in order to\r
+force authentication by some non-public-key method such as\r
+passwords.\r
+\r
+This option can also be controlled using the \c{-noagent}\r
+command-line option. See \k{using-cmdline-agentauth}.\r
+\r
+See \k{pageant} for more information about Pageant in general.\r
+\r
+\S{config-ssh-tis} \q{Attempt \I{TIS authentication}TIS or\r
+\i{CryptoCard authentication}}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.tis}\r
+\r
+TIS and CryptoCard authentication are (despite their names) generic\r
+forms of simple \I{challenge/response authentication}challenge/response\r
+authentication available in SSH protocol version 1 only. You might use\r
+them if you were using \i{S/Key} \i{one-time passwords}, for example,\r
+or if you had a physical \i{security token} that generated responses\r
+to authentication challenges.  They can even be used to prompt for\r
+simple passwords.\r
+\r
+With this switch enabled, PuTTY will attempt these forms of\r
+authentication if the server is willing to try them. You will be\r
+presented with a challenge string (which may be different every\r
+time) and must supply the correct response in order to log in. If\r
+your server supports this, you should talk to your system\r
+administrator about precisely what form these challenges and\r
+responses take.\r
+\r
+\S{config-ssh-ki} \q{Attempt \i{keyboard-interactive authentication}}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.ki}\r
+\r
+The SSH-2 equivalent of TIS authentication is called\r
+\q{keyboard-interactive}. It is a flexible authentication method\r
+using an arbitrary sequence of requests and responses; so it is not\r
+only useful for \I{challenge/response authentication}challenge/response\r
+mechanisms such as \i{S/Key}, but it can also be used for (for example)\r
+asking the user for a \I{password expiry}new password when the old one\r
+has expired.\r
+\r
+PuTTY leaves this option enabled by default, but supplies a switch\r
+to turn it off in case you should have trouble with it.\r
+\r
+\S{config-ssh-agentfwd} \q{Allow \i{agent forwarding}}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.agentfwd}\r
+\r
+This option allows the SSH server to open forwarded connections back\r
+to your local copy of \i{Pageant}. If you are not running Pageant, this\r
+option will do nothing.\r
+\r
+See \k{pageant} for general information on Pageant, and\r
+\k{pageant-forward} for information on agent forwarding. Note that\r
+there is a security risk involved with enabling this option; see\r
+\k{pageant-security} for details.\r
+\r
+\S{config-ssh-changeuser} \q{Allow attempted \i{changes of username} in SSH-2}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.changeuser}\r
+\r
+In the SSH-1 protocol, it is impossible to change username after\r
+failing to authenticate. So if you mis-type your username at the\r
+PuTTY \q{login as:} prompt, you will not be able to change it except\r
+by restarting PuTTY.\r
+\r
+The SSH-2 protocol \e{does} allow changes of username, in principle,\r
+but does not make it mandatory for SSH-2 servers to accept them. In\r
+particular, \i{OpenSSH} does not accept a change of username; once you\r
+have sent one username, it will reject attempts to try to\r
+authenticate as another user. (Depending on the version of OpenSSH,\r
+it may quietly return failure for all login attempts, or it may send\r
+an error message.)\r
+\r
+For this reason, PuTTY will by default not prompt you for your\r
+username more than once, in case the server complains. If you know\r
+your server can cope with it, you can enable the \q{Allow attempted\r
+changes of username} option to modify PuTTY's behaviour.\r
+\r
+\S{config-ssh-privkey} \q{\ii{Private key} file for authentication}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.privkey}\r
+\r
+This box is where you enter the name of your private key file if you\r
+are using \i{public key authentication}. See \k{pubkey} for information\r
+about public key authentication in SSH.\r
+\r
+This key must be in PuTTY's native format (\c{*.\i{PPK}}). If you have a\r
+private key in another format that you want to use with PuTTY, see\r
+\k{puttygen-conversions}.\r
+\r
+If a key file is specified here, and \i{Pageant} is running (see\r
+\k{pageant}), PuTTY will first try asking Pageant to authenticate with\r
+that key, and ignore any other keys Pageant may have. If that fails,\r
+PuTTY will ask for a passphrase as normal.\r
+\r
+\H{config-ssh-auth-gssapi} The \i{GSSAPI} panel\r
+\r
+\cfg{winhelp-topic}{ssh.auth.gssapi}\r
+\r
+The \q{GSSAPI} subpanel of the \q{Auth} panel controls the use of\r
+GSSAPI authentication. This is a mechanism which delegates the\r
+authentication exchange to a library elsewhere on the client\r
+machine, which in principle can authenticate in many different ways\r
+but in practice is usually used with the \i{Kerberos} \i{single sign-on}\r
+protocol.\r
+\r
+GSSAPI is only available in the SSH-2 protocol.\r
+\r
+The topmost control on the GSSAPI subpanel is the checkbox labelled\r
+\q{Attempt GSSAPI authentication}. If this is disabled, GSSAPI will\r
+not be attempted at all and the rest of this panel is unused. If it\r
+is enabled, GSSAPI authentication will be attempted, and (typically)\r
+if your client machine has valid Kerberos credentials loaded, then\r
+PuTTY should be able to authenticate automatically to servers that\r
+support Kerberos logins.\r
+\r
+\S{config-ssh-auth-gssapi-delegation} \q{Allow GSSAPI credential\r
+delegation}\r
+\r
+\cfg{winhelp-topic}{ssh.auth.gssapi.delegation}\r
+\r
+\i{GSSAPI credential delegation} is a mechanism for passing on your\r
+Kerberos (or other) identity to the session on the SSH server. If\r
+you enable this option, then not only will PuTTY be able to log in\r
+automatically to a server that accepts your Kerberos credentials,\r
+but also you will be able to connect out from that server to other\r
+Kerberos-supporting services and use the same credentials just as\r
+automatically.\r
+\r
+(This option is the Kerberos analogue of SSH agent forwarding; see\r
+\k{pageant-forward} for some information on that.)\r
+\r
+Note that, like SSH agent forwarding, there is a security\r
+implication in the use of this option: the administrator of the\r
+server you connect to, or anyone else who has cracked the\r
+administrator account on that server, could fake your identity when\r
+connecting to further Kerberos-supporting services. However,\r
+Kerberos sites are typically run by a central authority, so the\r
+administrator of one server is likely to already have access to the\r
+other services too; so this would typically be less of a risk than\r
+SSH agent forwarding.\r
+\r
+\S{config-ssh-auth-gssapi-libraries} Preference order for GSSAPI\r
+libraries\r
+\r
+\cfg{winhelp-topic}{ssh.auth.gssapi.libraries}\r
+\r
+GSSAPI is a mechanism which allows more than one authentication\r
+method to be accessed through the same interface. Therefore, more\r
+than one authentication library may exist on your system which can\r
+be accessed using GSSAPI.\r
+\r
+PuTTY contains native support for a few well-known such libraries,\r
+and will look for all of them on your system and use whichever it\r
+finds. If more than one exists on your system and you need to use a\r
+specific one, you can adjust the order in which it will search using\r
+this preference list control.\r
+\r
+One of the options in the preference list is to use a user-specified\r
+GSSAPI library. If the library you want to use is not mentioned by\r
+name in PuTTY's list of options, you can enter its full pathname in\r
+the \q{User-supplied GSSAPI library path} field, and move the\r
+\q{User-supplied GSSAPI library} option in the preference list to\r
+make sure it is selected before anything else.\r
+\r
+\H{config-ssh-tty} The TTY panel\r
+\r
+The TTY panel lets you configure the remote pseudo-terminal.\r
+\r
+\S{config-ssh-pty} \I{pseudo-terminal allocation}\q{Don't allocate\r
+a pseudo-terminal}\r
+\r
+\cfg{winhelp-topic}{ssh.nopty}\r
+\r
+When connecting to a \i{Unix} system, most \I{interactive\r
+connections}interactive shell sessions are run in a \e{pseudo-terminal},\r
+which allows the Unix system to pretend it's talking to a real physical\r
+terminal device but allows the SSH server to catch all the data coming\r
+from that fake device and send it back to the client.\r
+\r
+Occasionally you might find you have a need to run a session \e{not}\r
+in a pseudo-terminal. In PuTTY, this is generally only useful for\r
+very specialist purposes; although in Plink (see \k{plink}) it is\r
+the usual way of working.\r
+\r
+\S{config-ttymodes} Sending \i{terminal modes}\r
+\r
+\cfg{winhelp-topic}{ssh.ttymodes}\r
+\r
+The SSH protocol allows the client to send \q{terminal modes} for\r
+the remote pseudo-terminal. These usually control the server's\r
+expectation of the local terminal's behaviour.\r
+\r
+If your server does not have sensible defaults for these modes, you\r
+may find that changing them here helps. If you don't understand any of\r
+this, it's safe to leave these settings alone.\r
+\r
+(None of these settings will have any effect if no pseudo-terminal\r
+is requested or allocated.)\r
+\r
+You can add or modify a mode by selecting it from the drop-down list,\r
+choosing whether it's set automatically or to a specific value with\r
+the radio buttons and edit box, and hitting \q{Add}. A mode (or\r
+several) can be removed from the list by selecting them and hitting\r
+\q{Remove}. The effect of the mode list is as follows:\r
+\r
+\b If a mode is not on the list, it will not be specified to the\r
+server under any circumstances.\r
+\r
+\b If a mode is on the list:\r
+\r
+\lcont{\r
+\r
+\b If the \q{Auto} option is selected, the PuTTY tools will decide\r
+whether to specify that mode to the server, and if so, will send\r
+a sensible value.\r
+\r
+\lcont{\r
+\r
+PuTTY proper will send modes that it has an opinion on (currently only\r
+the code for the Backspace key, \cw{ERASE}). Plink on Unix\r
+will propagate appropriate modes from the local terminal, if any.\r
+\r
+}\r
+\r
+\b If a value is specified, it will be sent to the server under all\r
+circumstances. The precise syntax of the value box depends on the\r
+mode.\r
+\r
+}\r
+\r
+By default, all of the available modes are listed as \q{Auto},\r
+which should do the right thing in most circumstances.\r
+\r
+The precise effect of each setting, if any, is up to the server. Their\r
+names come from \i{POSIX} and other Unix systems, and they are most\r
+likely to have a useful effect on such systems. (These are the same\r
+settings that can usually be changed using the \i\c{stty} command once\r
+logged in to such servers.)\r
+\r
+Some notable modes are described below; for fuller explanations, see\r
+your server documentation.\r
+\r
+\b \I{ERASE special character}\cw{ERASE} is the character that when typed\r
+by the user will delete one space to the left. When set to \q{Auto}\r
+(the default setting), this follows the setting of the local Backspace\r
+key in PuTTY (see \k{config-backspace}).\r
+\r
+\lcont{\r
+This and other \i{special character}s are specified using \c{^C} notation\r
+for Ctrl-C, and so on. Use \c{^<27>} or \c{^<0x1B>} to specify a\r
+character numerically, and \c{^~} to get a literal \c{^}. Other\r
+non-control characters are denoted by themselves. Leaving the box\r
+entirely blank indicates that \e{no} character should be assigned to\r
+the specified function, although this may not be supported by all\r
+servers.\r
+}\r
+\r
+\b \I{QUIT special character}\cw{QUIT} is a special character that\r
+usually forcefully ends the current process on the server\r
+(\cw{SIGQUIT}). On many servers its default setting is Ctrl-backslash\r
+(\c{^\\}), which is easy to accidentally invoke on many keyboards. If\r
+this is getting in your way, you may want to change it to another\r
+character or turn it off entirely.\r
+\r
+\b Boolean modes such as \cw{ECHO} and \cw{ICANON} can be specified in\r
+PuTTY in a variety of ways, such as \cw{true}/\cw{false},\r
+\cw{yes}/\cw{no}, and \cw{0}/\cw{1}.\r
+\r
+\b Terminal speeds are configured elsewhere; see \k{config-termspeed}.\r
+\r
+\H{config-ssh-x11} The X11 panel\r
+\r
+\cfg{winhelp-topic}{ssh.tunnels.x11}\r
+\r
+The X11 panel allows you to configure \i{forwarding of X11} over an\r
+SSH connection.\r
+\r
+If your server lets you run X Window System applications, X11\r
+forwarding allows you to securely give those applications access to\r
+a local X display on your PC.\r
+\r
+To enable X11 forwarding, check the \q{Enable X11 forwarding} box.\r
+If your X display is somewhere unusual, you will need to enter its\r
+location in the \q{X display location} box; if this is left blank,\r
+PuTTY will try to find a sensible default in the environment, or use the\r
+primary local display (\c{:0}) if that fails.\r
+\r
+See \k{using-x-forwarding} for more information about X11\r
+forwarding.\r
+\r
+\S{config-ssh-x11auth} Remote \i{X11 authentication}\r
+\r
+\cfg{winhelp-topic}{ssh.tunnels.x11auth}\r
+\r
+If you are using X11 forwarding, the virtual X server created on the\r
+SSH server machine will be protected by authorisation data. This\r
+data is invented, and checked, by PuTTY.\r
+\r
+The usual authorisation method used for this is called\r
+\i\cw{MIT-MAGIC-COOKIE-1}. This is a simple password-style protocol:\r
+the X client sends some cookie data to the server, and the server\r
+checks that it matches the real cookie. The cookie data is sent over\r
+an unencrypted X11 connection; so if you allow a client on a third\r
+machine to access the virtual X server, then the cookie will be sent\r
+in the clear.\r
+\r
+PuTTY offers the alternative protocol \i\cw{XDM-AUTHORIZATION-1}. This\r
+is a cryptographically authenticated protocol: the data sent by the\r
+X client is different every time, and it depends on the IP address\r
+and port of the client's end of the connection and is also stamped\r
+with the current time. So an eavesdropper who captures an\r
+\cw{XDM-AUTHORIZATION-1} string cannot immediately re-use it for\r
+their own X connection.\r
+\r
+PuTTY's support for \cw{XDM-AUTHORIZATION-1} is a somewhat\r
+experimental feature, and may encounter several problems:\r
+\r
+\b Some X clients probably do not even support\r
+\cw{XDM-AUTHORIZATION-1}, so they will not know what to do with the\r
+data PuTTY has provided.\r
+\r
+\b This authentication mechanism will only work in SSH-2. In SSH-1,\r
+the SSH server does not tell the client the source address of\r
+a forwarded connection in a machine-readable format, so it's\r
+impossible to verify the \cw{XDM-AUTHORIZATION-1} data.\r
+\r
+\b You may find this feature causes problems with some SSH servers,\r
+which will not clean up \cw{XDM-AUTHORIZATION-1} data after a\r
+session, so that if you then connect to the same server using\r
+a client which only does \cw{MIT-MAGIC-COOKIE-1} and are allocated\r
+the same remote display number, you might find that out-of-date\r
+authentication data is still present on your server and your X\r
+connections fail.\r
+\r
+PuTTY's default is \cw{MIT-MAGIC-COOKIE-1}. If you change it, you\r
+should be sure you know what you're doing.\r
+\r
+\S{config-ssh-xauthority} X authority file for local display\r
+\r
+\cfg{winhelp-topic}{ssh.tunnels.xauthority}\r
+\r
+If you are using X11 forwarding, the local X server to which your\r
+forwarded connections are eventually directed may itself require\r
+authorisation.\r
+\r
+Some Windows X servers do not require this: they do authorisation by\r
+simpler means, such as accepting any connection from the local\r
+machine but not from anywhere else. However, if your X server does\r
+require authorisation, then PuTTY needs to know what authorisation\r
+is required.\r
+\r
+One way in which this data might be made available is for the X\r
+server to store it somewhere in a file which has the same format\r
+as the Unix \c{.Xauthority} file. If this is how your Windows X\r
+server works, then you can tell PuTTY where to find this file by\r
+configuring this option. By default, PuTTY will not attempt to find\r
+any authorisation for your local display.\r
+\r
+\H{config-ssh-portfwd} \I{port forwarding}The Tunnels panel\r
+\r
+\cfg{winhelp-topic}{ssh.tunnels.portfwd}\r
+\r
+The Tunnels panel allows you to configure tunnelling of arbitrary\r
+connection types through an SSH connection.\r
+\r
+Port forwarding allows you to tunnel other types of \i{network\r
+connection} down an SSH session. See \k{using-port-forwarding} for a\r
+general discussion of port forwarding and how it works.\r
+\r
+The port forwarding section in the Tunnels panel shows a list of all\r
+the port forwardings that PuTTY will try to set up when it connects\r
+to the server. By default no port forwardings are set up, so this\r
+list is empty.\r
+\r
+To add a port forwarding:\r
+\r
+\b Set one of the \q{Local} or \q{Remote} radio buttons, depending\r
+on whether you want to \I{local port forwarding}forward a local port\r
+to a remote destination (\q{Local}) or \I{remote port forwarding}forward\r
+a remote port to a local destination (\q{Remote}). Alternatively,\r
+select \q{Dynamic} if you want PuTTY to \I{dynamic port forwarding}provide\r
+a local SOCKS 4/4A/5 proxy on a local port (note that this proxy only\r
+supports TCP connections; the SSH protocol does not support forwarding\r
+\i{UDP}).\r
+\r
+\b Enter a source \i{port number} into the \q{Source port} box. For\r
+local forwardings, PuTTY will listen on this port of your PC. For\r
+remote forwardings, your SSH server will listen on this port of the\r
+remote machine. Note that most servers will not allow you to listen\r
+on \I{privileged port}port numbers less than 1024.\r
+\r
+\b If you have selected \q{Local} or \q{Remote} (this step is not\r
+needed with \q{Dynamic}), enter a hostname and port number separated\r
+by a colon, in the \q{Destination} box. Connections received on the\r
+source port will be directed to this destination. For example, to\r
+connect to a POP-3 server, you might enter\r
+\c{popserver.example.com:110}.\r
+\r
+\b Click the \q{Add} button. Your forwarding details should appear\r
+in the list box.\r
+\r
+To remove a port forwarding, simply select its details in the list\r
+box, and click the \q{Remove} button.\r
+\r
+In the \q{Source port} box, you can also optionally enter an \I{listen\r
+address}IP address to listen on, by specifying (for instance)\r
+\c{127.0.0.5:79}.\r
+See \k{using-port-forwarding} for more information on how this\r
+works and its restrictions.\r
+\r
+In place of port numbers, you can enter \i{service names}, if they are\r
+known to the local system. For instance, in the \q{Destination} box,\r
+you could enter \c{popserver.example.com:pop3}.\r
+\r
+You can \I{port forwarding, changing mid-session}modify the currently\r
+active set of port forwardings in mid-session using \q{Change\r
+Settings} (see \k{using-changesettings}). If you delete a local or\r
+dynamic port forwarding in mid-session, PuTTY will stop listening for\r
+connections on that port, so it can be re-used by another program. If\r
+you delete a remote port forwarding, note that:\r
+\r
+\b The SSH-1 protocol contains no mechanism for asking the server to\r
+stop listening on a remote port.\r
+\r
+\b The SSH-2 protocol does contain such a mechanism, but not all SSH\r
+servers support it. (In particular, \i{OpenSSH} does not support it in\r
+any version earlier than 3.9.)\r
+\r
+If you ask to delete a remote port forwarding and PuTTY cannot make\r
+the server actually stop listening on the port, it will instead just\r
+start refusing incoming connections on that port. Therefore,\r
+although the port cannot be reused by another program, you can at\r
+least be reasonably sure that server-side programs can no longer\r
+access the service at your end of the port forwarding.\r
+\r
+If you delete a forwarding, any existing connections established using\r
+that forwarding remain open. Similarly, changes to global settings\r
+such as \q{Local ports accept connections from other hosts} only take\r
+effect on new forwardings.\r
+\r
+If the connection you are forwarding over SSH is itself a second SSH\r
+connection made by another copy of PuTTY, you might find the\r
+\q{logical host name} configuration option useful to warn PuTTY of\r
+which host key it should be expecting. See \k{config-loghost} for\r
+details of this.\r
+\r
+\S{config-ssh-portfwd-localhost} Controlling the visibility of\r
+forwarded ports\r
+\r
+\cfg{winhelp-topic}{ssh.tunnels.portfwd.localhost}\r
+\r
+The source port for a forwarded connection usually does not accept\r
+connections from any machine except the \I{localhost}SSH client or\r
+server machine itself (for local and remote forwardings respectively).\r
+There are controls in the Tunnels panel to change this:\r
+\r
+\b The \q{Local ports accept connections from other hosts} option\r
+allows you to set up local-to-remote port forwardings in such a way\r
+that machines other than your client PC can connect to the forwarded\r
+port. (This also applies to dynamic SOCKS forwarding.)\r
+\r
+\b The \q{Remote ports do the same} option does the same thing for\r
+remote-to-local port forwardings (so that machines other than the\r
+SSH server machine can connect to the forwarded port.) Note that\r
+this feature is only available in the SSH-2 protocol, and not all\r
+SSH-2 servers support it (\i{OpenSSH} 3.0 does not, for example).\r
+\r
+\S{config-ssh-portfwd-address-family} Selecting \i{Internet protocol\r
+version} for forwarded ports\r
+\r
+\cfg{winhelp-topic}{ssh.tunnels.portfwd.ipversion}\r
+\r
+This switch allows you to select a specific Internet protocol (\i{IPv4}\r
+or \i{IPv6}) for the local end of a forwarded port. By default, it is\r
+set on \q{Auto}, which means that:\r
+\r
+\b for a local-to-remote port forwarding, PuTTY will listen for\r
+incoming connections in both IPv4 and (if available) IPv6\r
+\r
+\b for a remote-to-local port forwarding, PuTTY will choose a\r
+sensible protocol for the outgoing connection.\r
+\r
+This overrides the general Internet protocol version preference\r
+on the Connection panel (see \k{config-address-family}).\r
+\r
+Note that some operating systems may listen for incoming connections\r
+in IPv4 even if you specifically asked for IPv6, because their IPv4\r
+and IPv6 protocol stacks are linked together. Apparently \i{Linux} does\r
+this, and Windows does not. So if you're running PuTTY on Windows\r
+and you tick \q{IPv6} for a local or dynamic port forwarding, it\r
+will \e{only} be usable by connecting to it using IPv6; whereas if\r
+you do the same on Linux, you can also use it with IPv4. However,\r
+ticking \q{Auto} should always give you a port which you can connect\r
+to using either protocol.\r
+\r
+\H{config-ssh-bugs} \I{SSH server bugs}The Bugs panel\r
+\r
+Not all SSH servers work properly. Various existing servers have\r
+bugs in them, which can make it impossible for a client to talk to\r
+them unless it knows about the bug and works around it.\r
+\r
+Since most servers announce their software version number at the\r
+beginning of the SSH connection, PuTTY will attempt to detect which\r
+bugs it can expect to see in the server and automatically enable\r
+workarounds. However, sometimes it will make mistakes; if the server\r
+has been deliberately configured to conceal its version number, or\r
+if the server is a version which PuTTY's bug database does not know\r
+about, then PuTTY will not know what bugs to expect.\r
+\r
+The Bugs panel allows you to manually configure the bugs PuTTY\r
+expects to see in the server. Each bug can be configured in three\r
+states:\r
+\r
+\b \q{Off}: PuTTY will assume the server does not have the bug.\r
+\r
+\b \q{On}: PuTTY will assume the server \e{does} have the bug.\r
+\r
+\b \q{Auto}: PuTTY will use the server's version number announcement\r
+to try to guess whether or not the server has the bug.\r
+\r
+\S{config-ssh-bug-ignore1} \q{Chokes on SSH-1 \i{ignore message}s}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.ignore1}\r
+\r
+An ignore message (SSH_MSG_IGNORE) is a message in the SSH protocol\r
+which can be sent from the client to the server, or from the server\r
+to the client, at any time. Either side is required to ignore the\r
+message whenever it receives it. PuTTY uses ignore messages to\r
+\I{password camouflage}hide the password packet in SSH-1, so that\r
+a listener cannot tell the length of the user's password; it also\r
+uses ignore messages for connection \i{keepalives} (see\r
+\k{config-keepalive}).\r
+\r
+If this bug is detected, PuTTY will stop using ignore messages. This\r
+means that keepalives will stop working, and PuTTY will have to fall\r
+back to a secondary defence against SSH-1 password-length\r
+eavesdropping. See \k{config-ssh-bug-plainpw1}. If this bug is\r
+enabled when talking to a correct server, the session will succeed,\r
+but keepalives will not work and the session might be more\r
+vulnerable to eavesdroppers than it could be.\r
+\r
+\S{config-ssh-bug-plainpw1} \q{Refuses all SSH-1 \i{password camouflage}}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.plainpw1}\r
+\r
+When talking to an SSH-1 server which cannot deal with ignore\r
+messages (see \k{config-ssh-bug-ignore1}), PuTTY will attempt to\r
+disguise the length of the user's password by sending additional\r
+padding \e{within} the password packet. This is technically a\r
+violation of the SSH-1 specification, and so PuTTY will only do it\r
+when it cannot use standards-compliant ignore messages as\r
+camouflage. In this sense, for a server to refuse to accept a padded\r
+password packet is not really a bug, but it does make life\r
+inconvenient if the server can also not handle ignore messages.\r
+\r
+If this \q{bug} is detected, PuTTY will assume that neither ignore\r
+messages nor padding are acceptable, and that it thus has no choice\r
+but to send the user's password with no form of camouflage, so that\r
+an eavesdropping user will be easily able to find out the exact length\r
+of the password. If this bug is enabled when talking to a correct\r
+server, the session will succeed, but will be more vulnerable to\r
+eavesdroppers than it could be.\r
+\r
+This is an SSH-1-specific bug. SSH-2 is secure against this type of\r
+attack.\r
+\r
+\S{config-ssh-bug-rsa1} \q{Chokes on SSH-1 \i{RSA} authentication}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.rsa1}\r
+\r
+Some SSH-1 servers cannot deal with RSA authentication messages at\r
+all. If \i{Pageant} is running and contains any SSH-1 keys, PuTTY will\r
+normally automatically try RSA authentication before falling back to\r
+passwords, so these servers will crash when they see the RSA attempt.\r
+\r
+If this bug is detected, PuTTY will go straight to password\r
+authentication. If this bug is enabled when talking to a correct\r
+server, the session will succeed, but of course RSA authentication\r
+will be impossible.\r
+\r
+This is an SSH-1-specific bug.\r
+\r
+\S{config-ssh-bug-ignore2} \q{Chokes on SSH-2 \i{ignore message}s}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.ignore2}\r
+\r
+An ignore message (SSH_MSG_IGNORE) is a message in the SSH protocol\r
+which can be sent from the client to the server, or from the server\r
+to the client, at any time. Either side is required to ignore the\r
+message whenever it receives it. PuTTY uses ignore messages in SSH-2\r
+to confuse the encrypted data stream and make it harder to\r
+cryptanalyse. It also uses ignore messages for connection\r
+\i{keepalives} (see \k{config-keepalive}).\r
+\r
+If it believes the server to have this bug, PuTTY will stop using\r
+ignore messages. If this bug is enabled when talking to a correct\r
+server, the session will succeed, but keepalives will not work and\r
+the session might be less cryptographically secure than it could be.\r
+\r
+\S{config-ssh-bug-hmac2} \q{Miscomputes SSH-2 HMAC keys}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.hmac2}\r
+\r
+Versions 2.3.0 and below of the SSH server software from\r
+\cw{ssh.com} compute the keys for their \i{HMAC} \i{message authentication\r
+code}s incorrectly. A typical symptom of this problem is that PuTTY\r
+dies unexpectedly at the beginning of the session, saying\r
+\q{Incorrect MAC received on packet}.\r
+\r
+If this bug is detected, PuTTY will compute its HMAC keys in the\r
+same way as the buggy server, so that communication will still be\r
+possible. If this bug is enabled when talking to a correct server,\r
+communication will fail.\r
+\r
+This is an SSH-2-specific bug.\r
+\r
+\S{config-ssh-bug-derivekey2} \q{Miscomputes SSH-2 \i{encryption} keys}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.derivekey2}\r
+\r
+Versions below 2.0.11 of the SSH server software from \i\cw{ssh.com}\r
+compute the keys for the session encryption incorrectly. This\r
+problem can cause various error messages, such as \q{Incoming packet\r
+was garbled on decryption}, or possibly even \q{Out of memory}.\r
+\r
+If this bug is detected, PuTTY will compute its encryption keys in\r
+the same way as the buggy server, so that communication will still\r
+be possible. If this bug is enabled when talking to a correct\r
+server, communication will fail.\r
+\r
+This is an SSH-2-specific bug.\r
+\r
+\S{config-ssh-bug-sig} \q{Requires padding on SSH-2 \i{RSA} \i{signatures}}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.rsapad2}\r
+\r
+Versions below 3.3 of \i{OpenSSH} require SSH-2 RSA signatures to be\r
+padded with zero bytes to the same length as the RSA key modulus.\r
+The SSH-2 specification says that an unpadded signature MUST be\r
+accepted, so this is a bug. A typical symptom of this problem is\r
+that PuTTY mysteriously fails RSA authentication once in every few\r
+hundred attempts, and falls back to passwords.\r
+\r
+If this bug is detected, PuTTY will pad its signatures in the way\r
+OpenSSH expects. If this bug is enabled when talking to a correct\r
+server, it is likely that no damage will be done, since correct\r
+servers usually still accept padded signatures because they're used\r
+to talking to OpenSSH.\r
+\r
+This is an SSH-2-specific bug.\r
+\r
+\S{config-ssh-bug-pksessid2} \q{Misuses the \i{session ID} in SSH-2 PK auth}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.pksessid2}\r
+\r
+Versions below 2.3 of \i{OpenSSH} require SSH-2 \i{public-key authentication}\r
+to be done slightly differently: the data to be signed by the client\r
+contains the session ID formatted in a different way. If public-key\r
+authentication mysteriously does not work but the Event Log (see\r
+\k{using-eventlog}) thinks it has successfully sent a signature, it\r
+might be worth enabling the workaround for this bug to see if it\r
+helps.\r
+\r
+If this bug is detected, PuTTY will sign data in the way OpenSSH\r
+expects. If this bug is enabled when talking to a correct server,\r
+SSH-2 public-key authentication will fail.\r
+\r
+This is an SSH-2-specific bug.\r
+\r
+\S{config-ssh-bug-rekey} \q{Handles SSH-2 key re-exchange badly}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.rekey2}\r
+\r
+Some SSH servers cannot cope with \i{repeat key exchange} at\r
+all, and will ignore attempts by the client to start one. Since\r
+PuTTY pauses the session while performing a repeat key exchange, the\r
+effect of this would be to cause the session to hang after an hour\r
+(unless you have your rekey timeout set differently; see\r
+\k{config-ssh-kex-rekey} for more about rekeys).\r
+Other, very old, SSH servers handle repeat key exchange even more\r
+badly, and disconnect upon receiving a repeat key exchange request.\r
+\r
+If this bug is detected, PuTTY will never initiate a repeat key\r
+exchange. If this bug is enabled when talking to a correct server,\r
+the session should still function, but may be less secure than you\r
+would expect.\r
+\r
+This is an SSH-2-specific bug.\r
+\r
+\S{config-ssh-bug-maxpkt2} \q{Ignores SSH-2 \i{maximum packet size}}\r
+\r
+\cfg{winhelp-topic}{ssh.bugs.maxpkt2}\r
+\r
+When an SSH-2 channel is set up, each end announces the maximum size\r
+of data packet that it is willing to receive for that channel.  Some\r
+servers ignore PuTTY's announcement and send packets larger than PuTTY\r
+is willing to accept, causing it to report \q{Incoming packet was\r
+garbled on decryption}.\r
+\r
+If this bug is detected, PuTTY never allows the channel's\r
+\i{flow-control window} to grow large enough to allow the server to\r
+send an over-sized packet.  If this bug is enabled when talking to a\r
+correct server, the session will work correctly, but download\r
+performance will be less than it could be.\r
+\r
+\H{config-serial} The Serial panel\r
+\r
+The \i{Serial} panel allows you to configure options that only apply\r
+when PuTTY is connecting to a local \I{serial port}\i{serial line}.\r
+\r
+\S{config-serial-line} Selecting a serial line to connect to\r
+\r
+\cfg{winhelp-topic}{serial.line}\r
+\r
+The \q{Serial line to connect to} box allows you to choose which\r
+serial line you want PuTTY to talk to, if your computer has more\r
+than one serial port.\r
+\r
+On Windows, the first serial line is called \i\cw{COM1}, and if there\r
+is a second it is called \cw{COM2}, and so on.\r
+\r
+This configuration setting is also visible on the Session panel,\r
+where it replaces the \q{Host Name} box (see \k{config-hostname}) if\r
+the connection type is set to \q{Serial}.\r
+\r
+\S{config-serial-speed} Selecting the speed of your serial line\r
+\r
+\cfg{winhelp-topic}{serial.speed}\r
+\r
+The \q{Speed} box allows you to choose the speed (or \q{baud rate})\r
+at which to talk to the serial line. Typical values might be 9600,\r
+19200, 38400 or 57600. Which one you need will depend on the device\r
+at the other end of the serial cable; consult the manual for that\r
+device if you are in doubt.\r
+\r
+This configuration setting is also visible on the Session panel,\r
+where it replaces the \q{Port} box (see \k{config-hostname}) if the\r
+connection type is set to \q{Serial}.\r
+\r
+\S{config-serial-databits} Selecting the number of data bits\r
+\r
+\cfg{winhelp-topic}{serial.databits}\r
+\r
+The \q{Data bits} box allows you to choose how many data bits are\r
+transmitted in each byte sent or received through the serial line.\r
+Typical values are 7 or 8.\r
+\r
+\S{config-serial-stopbits} Selecting the number of stop bits\r
+\r
+\cfg{winhelp-topic}{serial.stopbits}\r
+\r
+The \q{Stop bits} box allows you to choose how many stop bits are\r
+used in the serial line protocol. Typical values are 1, 1.5 or 2.\r
+\r
+\S{config-serial-parity} Selecting the serial parity checking scheme\r
+\r
+\cfg{winhelp-topic}{serial.parity}\r
+\r
+The \q{Parity} box allows you to choose what type of parity checking\r
+is used on the serial line. The settings are:\r
+\r
+\b \q{None}: no parity bit is sent at all.\r
+\r
+\b \q{Odd}: an extra parity bit is sent alongside each byte, and\r
+arranged so that the total number of 1 bits is odd.\r
+\r
+\b \q{Even}: an extra parity bit is sent alongside each byte, and\r
+arranged so that the total number of 1 bits is even.\r
+\r
+\b \q{Mark}: an extra parity bit is sent alongside each byte, and\r
+always set to 1.\r
+\r
+\b \q{Space}: an extra parity bit is sent alongside each byte, and\r
+always set to 0.\r
+\r
+\S{config-serial-flow} Selecting the serial flow control scheme\r
+\r
+\cfg{winhelp-topic}{serial.flow}\r
+\r
+The \q{Flow control} box allows you to choose what type of flow\r
+control checking is used on the serial line. The settings are:\r
+\r
+\b \q{None}: no flow control is done. Data may be lost if either\r
+side attempts to send faster than the serial line permits.\r
+\r
+\b \q{XON/XOFF}: flow control is done by sending XON and XOFF\r
+characters within the data stream.\r
+\r
+\b \q{RTS/CTS}: flow control is done using the RTS and CTS wires on\r
+the serial line.\r
+\r
+\b \q{DSR/DTR}: flow control is done using the DSR and DTR wires on\r
+the serial line.\r
+\r
+\H{config-file} \ii{Storing configuration in a file}\r
+\r
+PuTTY does not currently support storing its configuration in a file\r
+instead of the \i{Registry}. However, you can work around this with a\r
+couple of \i{batch file}s.\r
+\r
+You will need a file called (say) \c{PUTTY.BAT} which imports the\r
+contents of a file into the Registry, then runs PuTTY, exports the\r
+contents of the Registry back into the file, and deletes the\r
+Registry entries. This can all be done using the Regedit command\r
+line options, so it's all automatic. Here is what you need in\r
+\c{PUTTY.BAT}:\r
+\r
+\c @ECHO OFF\r
+\c regedit /s putty.reg\r
+\c regedit /s puttyrnd.reg\r
+\c start /w putty.exe\r
+\c regedit /ea new.reg HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\r
+\c copy new.reg putty.reg\r
+\c del new.reg\r
+\c regedit /s puttydel.reg\r
+\r
+This batch file needs two auxiliary files: \c{PUTTYRND.REG} which\r
+sets up an initial safe location for the \c{PUTTY.RND} random seed\r
+file, and \c{PUTTYDEL.REG} which destroys everything in the Registry\r
+once it's been successfully saved back to the file.\r
+\r
+Here is \c{PUTTYDEL.REG}:\r
+\r
+\c REGEDIT4\r
+\c  \r
+\c [-HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]\r
+\r
+Here is an example \c{PUTTYRND.REG} file:\r
+\r
+\c REGEDIT4\r
+\c  \r
+\c [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY]\r
+\c "RandSeedFile"="a:\\putty.rnd"\r
+\r
+You should replace \c{a:\\putty.rnd} with the location where you\r
+want to store your random number data. If the aim is to carry around\r
+PuTTY and its settings on one floppy, you probably want to store it\r
+on the floppy.\r