checking in all the old panacean stuff
This commit is contained in:
36
puttysrc/DOC/BLURB.BUT
Normal file
36
puttysrc/DOC/BLURB.BUT
Normal file
@@ -0,0 +1,36 @@
|
||||
\define{versionidblurb} \versionid $Id: blurb.but 7048 2007-01-01 21:19:14Z jacob $
|
||||
|
||||
\title PuTTY User Manual
|
||||
|
||||
\cfg{xhtml-leaf-level}{1}
|
||||
\cfg{xhtml-leaf-smallest-contents}{2}
|
||||
\cfg{xhtml-leaf-contains-contents}{true}
|
||||
\cfg{xhtml-body-end}{<p>If you want to provide feedback on this manual
|
||||
or on the PuTTY tools themselves, see the
|
||||
<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/feedback.html">Feedback
|
||||
page</a>.</p>}
|
||||
|
||||
\cfg{html-template-fragment}{%k}{%b}
|
||||
|
||||
\cfg{info-max-file-size}{0}
|
||||
|
||||
\cfg{xhtml-contents-filename}{index.html}
|
||||
\cfg{text-filename}{puttydoc.txt}
|
||||
\cfg{winhelp-filename}{putty.hlp}
|
||||
\cfg{info-filename}{putty.info}
|
||||
|
||||
PuTTY is a free (MIT-licensed) Win32 Telnet and SSH client. This
|
||||
manual documents PuTTY, and its companion utilities PSCP, PSFTP,
|
||||
Plink, Pageant and PuTTYgen.
|
||||
|
||||
\e{Note to Unix users:} this manual currently primarily documents the
|
||||
Windows versions of the PuTTY utilities. Some options are therefore
|
||||
mentioned that are absent from the \i{Unix version}; the Unix version has
|
||||
features not described here; and the \i\cw{pterm} and command-line
|
||||
\cw{puttygen} utilities are not described at all. The only
|
||||
Unix-specific documentation that currently exists is the
|
||||
\I{man pages for PuTTY tools}man pages.
|
||||
|
||||
\copyright This manual is copyright 2001-2007 Simon Tatham. All
|
||||
rights reserved. You may distribute this documentation under the MIT
|
||||
licence. See \k{licence} for the licence text in full.
|
||||
23
puttysrc/DOC/CHM.BUT
Normal file
23
puttysrc/DOC/CHM.BUT
Normal file
@@ -0,0 +1,23 @@
|
||||
\# File containing the magic HTML configuration directives to create
|
||||
\# an MS HTML Help project. We put this on the end of the PuTTY
|
||||
\# docs build command line to build the HHP and friends.
|
||||
|
||||
\cfg{html-leaf-level}{infinite}
|
||||
\cfg{html-leaf-contains-contents}{false}
|
||||
\cfg{html-suppress-navlinks}{true}
|
||||
\cfg{html-suppress-address}{true}
|
||||
|
||||
\cfg{html-contents-filename}{index.html}
|
||||
\cfg{html-template-filename}{%k.html}
|
||||
\cfg{html-template-fragment}{%k}
|
||||
|
||||
\cfg{html-mshtmlhelp-chm}{putty.chm}
|
||||
\cfg{html-mshtmlhelp-project}{putty.hhp}
|
||||
\cfg{html-mshtmlhelp-contents}{putty.hhc}
|
||||
\cfg{html-mshtmlhelp-index}{putty.hhk}
|
||||
|
||||
\cfg{html-body-end}{}
|
||||
|
||||
\cfg{html-head-end}{<link rel="stylesheet" type="text/css" href="chm.css">}
|
||||
|
||||
\versionid $Id: chm.but 7272 2007-02-11 18:13:56Z jacob $
|
||||
7
puttysrc/DOC/CHM.CSS
Normal file
7
puttysrc/DOC/CHM.CSS
Normal file
@@ -0,0 +1,7 @@
|
||||
/* Stylesheet for a Windows .CHM help file */
|
||||
|
||||
body { font-size: 75%; font-family: Verdana, Arial, Helvetica, Sans-Serif; }
|
||||
|
||||
h1 { font-weight: bold; font-size: 150%; }
|
||||
h2 { font-weight: bold; font-size: 130%; }
|
||||
h3 { font-weight: bold; font-size: 120%; }
|
||||
3097
puttysrc/DOC/CONFIG.BUT
Normal file
3097
puttysrc/DOC/CONFIG.BUT
Normal file
File diff suppressed because it is too large
Load Diff
334
puttysrc/DOC/ERRORS.BUT
Normal file
334
puttysrc/DOC/ERRORS.BUT
Normal file
@@ -0,0 +1,334 @@
|
||||
\define{versioniderrors} \versionid $Id: errors.but 6461 2005-11-14 09:41:42Z jacob $
|
||||
|
||||
\C{errors} Common \i{error messages}
|
||||
|
||||
This chapter lists a number of common error messages which PuTTY and
|
||||
its associated tools can produce, and explains what they mean in
|
||||
more detail.
|
||||
|
||||
We do not attempt to list \e{all} error messages here: there are
|
||||
many which should never occur, and some which should be
|
||||
self-explanatory. If you get an error message which is not listed in
|
||||
this chapter and which you don't understand, report it to us as a
|
||||
bug (see \k{feedback}) and we will add documentation for it.
|
||||
|
||||
\H{errors-hostkey-absent} \q{The server's host key is not cached in
|
||||
the registry}
|
||||
|
||||
\cfg{winhelp-topic}{errors.hostkey.absent}
|
||||
|
||||
This error message occurs when PuTTY connects to a new SSH server.
|
||||
Every server identifies itself by means of a host key; once PuTTY
|
||||
knows the host key for a server, it will be able to detect if a
|
||||
malicious attacker redirects your connection to another machine.
|
||||
|
||||
If you see this message, it means that PuTTY has not seen this host
|
||||
key before, and has no way of knowing whether it is correct or not.
|
||||
You should attempt to verify the host key by other means, such as
|
||||
asking the machine's administrator.
|
||||
|
||||
If you see this message and you know that your installation of PuTTY
|
||||
\e{has} connected to the same server before, it may have been
|
||||
recently upgraded to SSH protocol version 2. SSH protocols 1 and 2
|
||||
use separate host keys, so when you first use \i{SSH-2} with a server
|
||||
you have only used SSH-1 with before, you will see this message
|
||||
again. You should verify the correctness of the key as before.
|
||||
|
||||
See \k{gs-hostkey} for more information on host keys.
|
||||
|
||||
\H{errors-hostkey-wrong} \q{WARNING - POTENTIAL SECURITY BREACH!}
|
||||
|
||||
\cfg{winhelp-topic}{errors.hostkey.changed}
|
||||
|
||||
This message, followed by \q{The server's host key does not match
|
||||
the one PuTTY has cached in the registry}, means that PuTTY has
|
||||
connected to the SSH server before, knows what its host key
|
||||
\e{should} be, but has found a different one.
|
||||
|
||||
This may mean that a malicious attacker has replaced your server
|
||||
with a different one, or has redirected your network connection to
|
||||
their own machine. On the other hand, it may simply mean that the
|
||||
administrator of your server has accidentally changed the key while
|
||||
upgrading the SSH software; this \e{shouldn't} happen but it is
|
||||
unfortunately possible.
|
||||
|
||||
You should contact your server's administrator and see whether they
|
||||
expect the host key to have changed. If so, verify the new host key
|
||||
in the same way as you would if it was new.
|
||||
|
||||
See \k{gs-hostkey} for more information on host keys.
|
||||
|
||||
\H{errors-portfwd-space} \q{Out of space for port forwardings}
|
||||
|
||||
PuTTY has a fixed-size buffer which it uses to store the details of
|
||||
all \i{port forwardings} you have set up in an SSH session. If you
|
||||
specify too many port forwardings on the PuTTY or Plink command line
|
||||
and this buffer becomes full, you will see this error message.
|
||||
|
||||
We need to fix this (fixed-size buffers are almost always a mistake)
|
||||
but we haven't got round to it. If you actually have trouble with
|
||||
this, let us know and we'll move it up our priority list.
|
||||
|
||||
\H{errors-cipher-warning} \q{The first cipher supported by the server is
|
||||
... below the configured warning threshold}
|
||||
|
||||
This occurs when the SSH server does not offer any ciphers which you
|
||||
have configured PuTTY to consider strong enough. By default, PuTTY
|
||||
puts up this warning only for \ii{single-DES} and \i{Arcfour} encryption.
|
||||
|
||||
See \k{config-ssh-encryption} for more information on this message.
|
||||
|
||||
\H{errors-toomanyauth} \q{Server sent disconnect message type 2
|
||||
(protocol error): "Too many authentication failures for root"}
|
||||
|
||||
This message is produced by an \i{OpenSSH} (or \i{Sun SSH}) server if it
|
||||
receives more failed authentication attempts than it is willing to
|
||||
tolerate.
|
||||
|
||||
This can easily happen if you are using Pageant and have a
|
||||
large number of keys loaded into it, since these servers count each
|
||||
offer of a public key as an authentication attempt. This can be worked
|
||||
around by specifying the key that's required for the authentication in
|
||||
the PuTTY configuration (see \k{config-ssh-privkey}); PuTTY will ignore
|
||||
any other keys Pageant may have, but will ask Pageant to do the
|
||||
authentication, so that you don't have to type your passphrase.
|
||||
|
||||
On the server, this can be worked around by disabling public-key
|
||||
authentication or (for Sun SSH only) by increasing \c{MaxAuthTries} in
|
||||
\c{sshd_config}.
|
||||
|
||||
\H{errors-memory} \q{\ii{Out of memory}}
|
||||
|
||||
This occurs when PuTTY tries to allocate more memory than the system
|
||||
can give it. This \e{may} happen for genuine reasons: if the
|
||||
computer really has run out of memory, or if you have configured an
|
||||
extremely large number of lines of scrollback in your terminal.
|
||||
PuTTY is not able to recover from running out of memory; it will
|
||||
terminate immediately after giving this error.
|
||||
|
||||
However, this error can also occur when memory is not running out at
|
||||
all, because PuTTY receives data in the wrong format. In SSH-2 and
|
||||
also in SFTP, the server sends the length of each message before the
|
||||
message itself; so PuTTY will receive the length, try to allocate
|
||||
space for the message, and then receive the rest of the message. If
|
||||
the length PuTTY receives is garbage, it will try to allocate a
|
||||
ridiculous amount of memory, and will terminate with an \q{Out of
|
||||
memory} error.
|
||||
|
||||
This can happen in SSH-2, if PuTTY and the server have not enabled
|
||||
encryption in the same way (see \k{faq-outofmem} in the FAQ). Some
|
||||
versions of \i{OpenSSH} have a known problem with this: see
|
||||
\k{faq-openssh-bad-openssl}.
|
||||
|
||||
This can also happen in PSCP or PSFTP, if your \i{login scripts} on the
|
||||
server generate output: the client program will be expecting an SFTP
|
||||
message starting with a length, and if it receives some text from
|
||||
your login scripts instead it will try to interpret them as a
|
||||
message length. See \k{faq-outofmem2} for details of this.
|
||||
|
||||
\H{errors-internal} \q{\ii{Internal error}}, \q{\ii{Internal fault}},
|
||||
\q{\ii{Assertion failed}}
|
||||
|
||||
Any error beginning with the word \q{Internal} should \e{never}
|
||||
occur. If it does, there is a bug in PuTTY by definition; please see
|
||||
\k{feedback} and report it to us.
|
||||
|
||||
Similarly, any error message starting with \q{Assertion failed} is a
|
||||
bug in PuTTY. Please report it to us, and include the exact text
|
||||
from the error message box.
|
||||
|
||||
\H{errors-cant-load-key} \q{Unable to use this private key file},
|
||||
\q{Couldn't load private key}, \q{Key is of wrong type}
|
||||
|
||||
\cfg{winhelp-topic}{errors.cantloadkey}
|
||||
|
||||
Various forms of this error are printed in the PuTTY window, or
|
||||
written to the PuTTY Event Log (see \k{using-eventlog}) when trying
|
||||
public-key authentication, or given by Pageant when trying to load a
|
||||
private key.
|
||||
|
||||
If you see one of these messages, it often indicates that you've tried
|
||||
to load a key of an inappropriate type into PuTTY, Plink, PSCP, PSFTP,
|
||||
or Pageant.
|
||||
|
||||
You may have specified a key that's inappropriate for the connection
|
||||
you're making. The SSH-1 and SSH-2 protocols require different private
|
||||
key formats, and a SSH-1 key can't be used for a SSH-2 connection (or
|
||||
vice versa).
|
||||
|
||||
Alternatively, you may have tried to load an SSH-2 key in a \q{foreign}
|
||||
format (OpenSSH or \cw{ssh.com}) directly into one of the PuTTY tools,
|
||||
in which case you need to import it into PuTTY's native format
|
||||
(\c{*.PPK}) using PuTTYgen - see \k{puttygen-conversions}.
|
||||
|
||||
\H{errors-refused} \q{Server refused our public key} or \q{Key
|
||||
refused}
|
||||
|
||||
Various forms of this error are printed in the PuTTY window, or
|
||||
written to the PuTTY Event Log (see \k{using-eventlog}) when trying
|
||||
public-key authentication.
|
||||
|
||||
If you see one of these messages, it means that PuTTY has sent a
|
||||
public key to the server and offered to authenticate with it, and
|
||||
the server has refused to accept authentication. This usually means
|
||||
that the server is not configured to accept this key to authenticate
|
||||
this user.
|
||||
|
||||
This is almost certainly not a problem with PuTTY. If you see this
|
||||
type of message, the first thing you should do is check your
|
||||
\e{server} configuration carefully. Common errors include having
|
||||
the wrong permissions or ownership set on the public key or the
|
||||
user's home directory on the server. Also, read the PuTTY Event Log;
|
||||
the server may have sent diagnostic messages explaining exactly what
|
||||
problem it had with your setup.
|
||||
|
||||
\H{errors-access-denied} \q{Access denied}, \q{Authentication refused}
|
||||
|
||||
Various forms of this error are printed in the PuTTY window, or
|
||||
written to the PuTTY Event Log (see \k{using-eventlog}) during
|
||||
authentication.
|
||||
|
||||
If you see one of these messages, it means that the server has refused
|
||||
all the forms of authentication PuTTY has tried and it has no further
|
||||
ideas.
|
||||
|
||||
It may be worth checking the Event Log for diagnostic messages from
|
||||
the server giving more detail.
|
||||
|
||||
This error can be caused by buggy SSH-1 servers that fail to cope with
|
||||
the various strategies we use for camouflaging passwords in transit.
|
||||
Upgrade your server, or use the workarounds described in
|
||||
\k{config-ssh-bug-ignore1} and possibly \k{config-ssh-bug-plainpw1}.
|
||||
|
||||
\H{errors-crc} \q{Incorrect \i{CRC} received on packet} or \q{Incorrect
|
||||
MAC received on packet}
|
||||
|
||||
This error occurs when PuTTY decrypts an SSH packet and its checksum
|
||||
is not correct. This probably means something has gone wrong in the
|
||||
encryption or decryption process. It's difficult to tell from this
|
||||
error message whether the problem is in the client, in the server,
|
||||
or in between.
|
||||
|
||||
A known server problem which can cause this error is described in
|
||||
\k{faq-openssh-bad-openssl} in the FAQ.
|
||||
|
||||
\H{errors-garbled} \q{Incoming packet was garbled on decryption}
|
||||
|
||||
This error occurs when PuTTY decrypts an SSH packet and the
|
||||
decrypted data makes no sense. This probably means something has
|
||||
gone wrong in the encryption or decryption process. It's difficult
|
||||
to tell from this error message whether the problem is in the client,
|
||||
in the server, or in between.
|
||||
|
||||
If you get this error, one thing you could try would be to fiddle
|
||||
with the setting of \q{Miscomputes SSH-2 encryption keys} on the Bugs
|
||||
panel (see \k{config-ssh-bug-derivekey2}).
|
||||
|
||||
Another known server problem which can cause this error is described
|
||||
in \k{faq-openssh-bad-openssl} in the FAQ.
|
||||
|
||||
\H{errors-x11-proxy} \q{PuTTY X11 proxy: \e{various errors}}
|
||||
|
||||
This family of errors are reported when PuTTY is doing X forwarding.
|
||||
They are sent back to the X application running on the SSH server,
|
||||
which will usually report the error to the user.
|
||||
|
||||
When PuTTY enables X forwarding (see \k{using-x-forwarding}) it
|
||||
creates a virtual X display running on the SSH server. This display
|
||||
requires authentication to connect to it (this is how PuTTY prevents
|
||||
other users on your server machine from connecting through the PuTTY
|
||||
proxy to your real X display). PuTTY also sends the server the
|
||||
details it needs to enable clients to connect, and the server should
|
||||
put this mechanism in place automatically, so your X applications
|
||||
should just work.
|
||||
|
||||
A common reason why people see one of these messages is because they
|
||||
used SSH to log in as one user (let's say \q{fred}), and then used
|
||||
the Unix \c{su} command to become another user (typically \q{root}).
|
||||
The original user, \q{fred}, has access to the X authentication data
|
||||
provided by the SSH server, and can run X applications which are
|
||||
forwarded over the SSH connection. However, the second user
|
||||
(\q{root}) does not automatically have the authentication data
|
||||
passed on to it, so attempting to run an X application as that user
|
||||
often fails with this error.
|
||||
|
||||
If this happens, \e{it is not a problem with PuTTY}. You need to
|
||||
arrange for your X authentication data to be passed from the user
|
||||
you logged in as to the user you used \c{su} to become. How you do
|
||||
this depends on your particular system; in fact many modern versions
|
||||
of \c{su} do it automatically.
|
||||
|
||||
\H{errors-connaborted} \q{Network error: Software caused connection
|
||||
abort}
|
||||
|
||||
This is a generic error produced by the Windows network code when it
|
||||
kills an established connection for some reason. For example, it might
|
||||
happen if you pull the network cable out of the back of an
|
||||
Ethernet-connected computer, or if Windows has any other similar
|
||||
reason to believe the entire network has become unreachable.
|
||||
|
||||
Windows also generates this error if it has given up on the machine
|
||||
at the other end of the connection ever responding to it. If the
|
||||
network between your client and server goes down and your client
|
||||
then tries to send some data, Windows will make several attempts to
|
||||
send the data and will then give up and kill the connection. In
|
||||
particular, this can occur even if you didn't type anything, if you
|
||||
are using SSH-2 and PuTTY attempts a key re-exchange. (See
|
||||
\k{config-ssh-kex-rekey} for more about key re-exchange.)
|
||||
|
||||
(It can also occur if you are using keepalives in your connection.
|
||||
Other people have reported that keepalives \e{fix} this error for
|
||||
them. See \k{config-keepalive} for a discussion of the pros and cons
|
||||
of keepalives.)
|
||||
|
||||
We are not aware of any reason why this error might occur that would
|
||||
represent a bug in PuTTY. The problem is between you, your Windows
|
||||
system, your network and the remote system.
|
||||
|
||||
\H{errors-connreset} \q{Network error: Connection reset by peer}
|
||||
|
||||
This error occurs when the machines at each end of a network
|
||||
connection lose track of the state of the connection between them.
|
||||
For example, you might see it if your SSH server crashes, and
|
||||
manages to reboot fully before you next attempt to send data to it.
|
||||
|
||||
However, the most common reason to see this message is if you are
|
||||
connecting through a \i{firewall} or a \i{NAT router} which has timed the
|
||||
connection out. See \k{faq-idleout} in the FAQ for more details. You
|
||||
may be able to improve the situation by using keepalives; see
|
||||
\k{config-keepalive} for details on this.
|
||||
|
||||
Note that Windows can produce this error in some circumstances without
|
||||
seeing a connection reset from the server, for instance if the
|
||||
connection to the network is lost.
|
||||
|
||||
\H{errors-connrefused} \q{Network error: Connection refused}
|
||||
|
||||
This error means that the network connection PuTTY tried to make to
|
||||
your server was rejected by the server. Usually this happens because
|
||||
the server does not provide the service which PuTTY is trying to
|
||||
access.
|
||||
|
||||
Check that you are connecting with the correct protocol (SSH, Telnet
|
||||
or Rlogin), and check that the port number is correct. If that
|
||||
fails, consult the administrator of your server.
|
||||
|
||||
\H{errors-conntimedout} \q{Network error: Connection timed out}
|
||||
|
||||
This error means that the network connection PuTTY tried to make to
|
||||
your server received no response at all from the server. Usually
|
||||
this happens because the server machine is completely isolated from
|
||||
the network, or because it is turned off.
|
||||
|
||||
Check that you have correctly entered the host name or IP address of
|
||||
your server machine. If that fails, consult the administrator of
|
||||
your server.
|
||||
|
||||
\i{Unix} also generates this error when it tries to send data down a
|
||||
connection and contact with the server has been completely lost
|
||||
during a connection. (There is a delay of minutes before Unix gives
|
||||
up on receiving a reply from the server.) This can occur if you type
|
||||
things into PuTTY while the network is down, but it can also occur
|
||||
if PuTTY decides of its own accord to send data: due to a repeat key
|
||||
exchange in SSH-2 (see \k{config-ssh-kex-rekey}) or due to
|
||||
keepalives (\k{config-keepalive}).
|
||||
1430
puttysrc/DOC/FAQ.BUT
Normal file
1430
puttysrc/DOC/FAQ.BUT
Normal file
File diff suppressed because it is too large
Load Diff
414
puttysrc/DOC/FEEDBACK.BUT
Normal file
414
puttysrc/DOC/FEEDBACK.BUT
Normal file
@@ -0,0 +1,414 @@
|
||||
\define{versionidfeedback} \versionid $Id: feedback.but 6895 2006-11-08 21:15:30Z jacob $
|
||||
|
||||
\A{feedback} \ii{Feedback} and \i{bug reporting}
|
||||
|
||||
This is a guide to providing feedback to the PuTTY development team.
|
||||
It is provided as both a web page on the PuTTY site, and an appendix
|
||||
in the PuTTY manual.
|
||||
|
||||
\K{feedback-general} gives some general guidelines for sending any
|
||||
kind of e-mail to the development team. Following sections give more
|
||||
specific guidelines for particular types of e-mail, such as bug
|
||||
reports and feature requests.
|
||||
|
||||
\H{feedback-general} General guidelines
|
||||
|
||||
The PuTTY development team gets a \e{lot} of mail. If you can
|
||||
possibly solve your own problem by reading the manual, reading the
|
||||
FAQ, reading the web site, asking a fellow user, perhaps posting to a
|
||||
newsgroup (see \k{feedback-other-fora}), or some other means, then it
|
||||
would make our lives much easier.
|
||||
|
||||
We get so much e-mail that we literally do not have time to answer
|
||||
it all. We regret this, but there's nothing we can do about it. So
|
||||
if you can \e{possibly} avoid sending mail to the PuTTY team, we
|
||||
recommend you do so. In particular, support requests
|
||||
(\k{feedback-support}) are probably better sent to newsgroups, or
|
||||
passed to a local expert if possible.
|
||||
|
||||
The PuTTY contact email address is a private \i{mailing list} containing
|
||||
four or five core developers. Don't be put off by it being a mailing
|
||||
list: if you need to send confidential data as part of a bug report,
|
||||
you can trust the people on the list to respect that confidence.
|
||||
Also, the archives aren't publicly available, so you shouldn't be
|
||||
letting yourself in for any spam by sending us mail.
|
||||
|
||||
Please use a meaningful subject line on your message. We get a lot of
|
||||
mail, and it's hard to find the message we're looking for if they all
|
||||
have subject lines like \q{PuTTY bug}.
|
||||
|
||||
\S{feedback-largefiles} Sending large attachments
|
||||
|
||||
Since the PuTTY contact address is a mailing list, e-mails larger
|
||||
than 40Kb will be held for inspection by the list administrator, and
|
||||
will not be allowed through unless they really appear to be worth
|
||||
their large size.
|
||||
|
||||
If you are considering sending any kind of large data file to the
|
||||
PuTTY team, it's almost always a bad idea, or at the very least it
|
||||
would be better to ask us first whether we actually need the file.
|
||||
Alternatively, you could put the file on a web site and just send us
|
||||
the URL; that way, we don't have to download it unless we decide we
|
||||
actually need it, and only one of us needs to download it instead of
|
||||
it being automatically copied to all the developers.
|
||||
|
||||
Some people like to send mail in MS Word format. Please \e{don't}
|
||||
send us bug reports, or any other mail, as a Word document. Word
|
||||
documents are roughly fifty times larger than writing the same
|
||||
report in plain text. In addition, most of the PuTTY team read their
|
||||
e-mail on Unix machines, so copying the file to a Windows box to run
|
||||
Word is very inconvenient. Not only that, but several of us don't
|
||||
even \e{have} a copy of Word!
|
||||
|
||||
Some people like to send us screen shots when demonstrating a
|
||||
problem. Please don't do this without checking with us first - we
|
||||
almost never actually need the information in the screen shot.
|
||||
Sending a screen shot of an error box is almost certainly
|
||||
unnecessary when you could just tell us in plain text what the error
|
||||
was. (On some versions of Windows, pressing Ctrl-C when the error
|
||||
box is displayed will copy the text of the message to the clipboard.)
|
||||
Sending a full-screen shot is \e{occasionally} useful, but it's
|
||||
probably still wise to check whether we need it before sending it.
|
||||
|
||||
If you \e{must} mail a screen shot, don't send it as a \cw{.BMP}
|
||||
file. \cw{BMP}s have no compression and they are \e{much} larger
|
||||
than other image formats such as PNG, TIFF and GIF. Convert the file
|
||||
to a properly compressed image format before sending it.
|
||||
|
||||
Please don't mail us executables, at all. Our mail server blocks all
|
||||
incoming e-mail containing executables, as a defence against the
|
||||
vast numbers of e-mail viruses we receive every day. If you mail us
|
||||
an executable, it will just bounce.
|
||||
|
||||
If you have made a tiny modification to the PuTTY code, please send
|
||||
us a \e{patch} to the source code if possible, rather than sending
|
||||
us a huge \cw{.ZIP} file containing the complete sources plus your
|
||||
modification. If you've only changed 10 lines, we'd prefer to
|
||||
receive a mail that's 30 lines long than one containing multiple
|
||||
megabytes of data we already have.
|
||||
|
||||
\S{feedback-other-fora} Other places to ask for help
|
||||
|
||||
There are two Usenet newsgroups that are particularly relevant to the
|
||||
PuTTY tools:
|
||||
|
||||
\b \W{news:comp.security.ssh}\c{comp.security.ssh}, for questions
|
||||
specific to using the SSH protocol;
|
||||
|
||||
\b \W{news:comp.terminals}\c{comp.terminals}, for issues relating to
|
||||
terminal emulation (for instance, keyboard problems).
|
||||
|
||||
Please use the newsgroup most appropriate to your query, and remember
|
||||
that these are general newsgroups, not specifically about PuTTY.
|
||||
|
||||
If you don't have direct access to Usenet, you can access these
|
||||
newsgroups through Google Groups
|
||||
(\W{http://groups.google.com/}\cw{groups.google.com}).
|
||||
|
||||
\H{feedback-bugs} Reporting bugs
|
||||
|
||||
If you think you have found a bug in PuTTY, your first steps should
|
||||
be:
|
||||
|
||||
\b Check the
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/}{Wishlist
|
||||
page} on the PuTTY website, and see if we already know about the
|
||||
problem. If we do, it is almost certainly not necessary to mail us
|
||||
about it, unless you think you have extra information that might be
|
||||
helpful to us in fixing it. (Of course, if we actually \e{need}
|
||||
specific extra information about a particular bug, the Wishlist page
|
||||
will say so.)
|
||||
|
||||
\b Check the
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html}{Change
|
||||
Log} on the PuTTY website, and see if we have already fixed the bug
|
||||
in the \i{development snapshots}.
|
||||
|
||||
\b Check the
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html}{FAQ}
|
||||
on the PuTTY website (also provided as \k{faq} in the manual), and
|
||||
see if it answers your question. The FAQ lists the most common
|
||||
things which people think are bugs, but which aren't bugs.
|
||||
|
||||
\b Download the latest development snapshot and see if the problem
|
||||
still happens with that. This really is worth doing. As a general
|
||||
rule we aren't very interested in bugs that appear in the release
|
||||
version but not in the development version, because that usually
|
||||
means they are bugs we have \e{already fixed}. On the other hand, if
|
||||
you can find a bug in the development version that doesn't appear in
|
||||
the release, that's likely to be a new bug we've introduced since
|
||||
the release and we're definitely interested in it.
|
||||
|
||||
If none of those options solved your problem, and you still need to
|
||||
report a bug to us, it is useful if you include some general
|
||||
information:
|
||||
|
||||
\b Tell us what \i{version of PuTTY} you are running. To find this out,
|
||||
use the \q{About PuTTY} option from the System menu. Please \e{do
|
||||
not} just tell us \q{I'm running the latest version}; e-mail can be
|
||||
delayed and it may not be obvious which version was the latest at
|
||||
the time you sent the message.
|
||||
|
||||
\b PuTTY is a multi-platform application; tell us what version of what
|
||||
OS you are running PuTTY on. (If you're running on Unix, or Windows
|
||||
for Alpha, tell us, or we'll assume you're running on Windows for
|
||||
Intel as this is overwhelmingly the case.)
|
||||
|
||||
\b Tell us what protocol you are connecting with: SSH, Telnet,
|
||||
Rlogin or Raw mode.
|
||||
|
||||
\b Tell us what kind of server you are connecting to; what OS, and
|
||||
if possible what SSH server (if you're using SSH). You can get some
|
||||
of this information from the PuTTY Event Log (see \k{using-eventlog}
|
||||
in the manual).
|
||||
|
||||
\b Send us the contents of the PuTTY Event Log, unless you
|
||||
have a specific reason not to (for example, if it contains
|
||||
confidential information that you think we should be able to solve
|
||||
your problem without needing to know).
|
||||
|
||||
\b Try to give us as much information as you can to help us
|
||||
see the problem for ourselves. If possible, give us a step-by-step
|
||||
sequence of \e{precise} instructions for reproducing the fault.
|
||||
|
||||
\b Don't just tell us that PuTTY \q{does the wrong thing}; tell us
|
||||
exactly and precisely what it did, and also tell us exactly and
|
||||
precisely what you think it should have done instead. Some people
|
||||
tell us PuTTY does the wrong thing, and it turns out that it was
|
||||
doing the right thing and their expectations were wrong. Help to
|
||||
avoid this problem by telling us exactly what you think it should
|
||||
have done, and exactly what it did do.
|
||||
|
||||
\b If you think you can, you're welcome to try to fix the problem
|
||||
yourself. A \i{patch} to the code which fixes a bug is an excellent
|
||||
addition to a bug report. However, a patch is never a \e{substitute}
|
||||
for a good bug report; if your patch is wrong or inappropriate, and
|
||||
you haven't supplied us with full information about the actual bug,
|
||||
then we won't be able to find a better solution.
|
||||
|
||||
\b
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/bugs.html}\cw{http://www.chiark.greenend.org.uk/~sgtatham/bugs.html}
|
||||
is an article on how to report bugs effectively in general. If your
|
||||
bug report is \e{particularly} unclear, we may ask you to go away,
|
||||
read this article, and then report the bug again.
|
||||
|
||||
It is reasonable to report bugs in PuTTY's documentation, if you
|
||||
think the documentation is unclear or unhelpful. But we do need to
|
||||
be given exact details of \e{what} you think the documentation has
|
||||
failed to tell you, or \e{how} you think it could be made clearer.
|
||||
If your problem is simply that you don't \e{understand} the
|
||||
documentation, we suggest posting to a newsgroup (see
|
||||
\k{feedback-other-fora}) and seeing if someone
|
||||
will explain what you need to know. \e{Then}, if you think the
|
||||
documentation could usefully have told you that, send us a bug
|
||||
report and explain how you think we should change it.
|
||||
|
||||
\H{feedback-features} Requesting extra features
|
||||
|
||||
If you want to request a new feature in PuTTY, the very first things
|
||||
you should do are:
|
||||
|
||||
\b Check the
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/}{Wishlist
|
||||
page} on the PuTTY website, and see if your feature is already on
|
||||
the list. If it is, it probably won't achieve very much to repeat
|
||||
the request. (But see \k{feedback-feature-priority} if you want to
|
||||
persuade us to give your particular feature higher priority.)
|
||||
|
||||
\b Check the Wishlist and
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html}{Change
|
||||
Log} on the PuTTY website, and see if we have already added your
|
||||
feature in the development snapshots. If it isn't clear, download
|
||||
the latest development snapshot and see if the feature is present.
|
||||
If it is, then it will also be in the next release and there is no
|
||||
need to mail us at all.
|
||||
|
||||
If you can't find your feature in either the development snapshots
|
||||
\e{or} the Wishlist, then you probably do need to submit a feature
|
||||
request. Since the PuTTY authors are very busy, it helps if you try
|
||||
to do some of the work for us:
|
||||
|
||||
\b Do as much of the design as you can. Think about \q{corner
|
||||
cases}; think about how your feature interacts with other existing
|
||||
features. Think about the user interface; if you can't come up with
|
||||
a simple and intuitive interface to your feature, you shouldn't be
|
||||
surprised if we can't either. Always imagine whether it's possible
|
||||
for there to be more than one, or less than one, of something you'd
|
||||
assumed there would be one of. (For example, if you were to want
|
||||
PuTTY to put an icon in the System tray rather than the Taskbar, you
|
||||
should think about what happens if there's more than one PuTTY
|
||||
active; how would the user tell which was which?)
|
||||
|
||||
\b If you can program, it may be worth offering to write the feature
|
||||
yourself and send us a patch. However, it is likely to be helpful
|
||||
if you confer with us first; there may be design issues you haven't
|
||||
thought of, or we may be about to make big changes to the code which
|
||||
your patch would clash with, or something. If you check with the
|
||||
maintainers first, there is a better chance of your code actually
|
||||
being usable. Also, read the design principles listed in \k{udp}: if
|
||||
you do not conform to them, we will probably not be able to accept
|
||||
your patch.
|
||||
|
||||
\H{feedback-feature-priority} Requesting features that have already
|
||||
been requested
|
||||
|
||||
If a feature is already listed on the Wishlist, then it usually
|
||||
means we would like to add it to PuTTY at some point. However, this
|
||||
may not be in the near future. If there's a feature on the Wishlist
|
||||
which you would like to see in the \e{near} future, there are
|
||||
several things you can do to try to increase its priority level:
|
||||
|
||||
\b Mail us and vote for it. (Be sure to mention that you've seen it
|
||||
on the Wishlist, or we might think you haven't even \e{read} the
|
||||
Wishlist). This probably won't have very \e{much} effect; if a huge
|
||||
number of people vote for something then it may make a difference,
|
||||
but one or two extra votes for a particular feature are unlikely to
|
||||
change our priority list immediately. Offering a new and compelling
|
||||
justification might help. Also, don't expect a reply.
|
||||
|
||||
\b Offer us money if we do the work sooner rather than later. This
|
||||
sometimes works, but not always. The PuTTY team all have full-time
|
||||
jobs and we're doing all of this work in our free time; we may
|
||||
sometimes be willing to give up some more of our free time in
|
||||
exchange for some money, but if you try to bribe us for a \e{big}
|
||||
feature it's entirely possible that we simply won't have the time to
|
||||
spare - whether you pay us or not. (Also, we don't accept bribes to
|
||||
add \e{bad} features to the Wishlist, because our desire to provide
|
||||
high-quality software to the users comes first.)
|
||||
|
||||
\b Offer to help us write the code. This is probably the \e{only}
|
||||
way to get a feature implemented quickly, if it's a big one that we
|
||||
don't have time to do ourselves.
|
||||
|
||||
\H{feedback-support} \ii{Support requests}
|
||||
|
||||
If you're trying to make PuTTY do something for you and it isn't
|
||||
working, but you're not sure whether it's a bug or not, then
|
||||
\e{please} consider looking for help somewhere else. This is one of
|
||||
the most common types of mail the PuTTY team receives, and we simply
|
||||
don't have time to answer all the questions. Questions of this type
|
||||
include:
|
||||
|
||||
\b If you want to do something with PuTTY but have no idea where to
|
||||
start, and reading the manual hasn't helped, try posting to a
|
||||
newsgroup (see \k{feedback-other-fora}) and see if someone can explain
|
||||
it to you.
|
||||
|
||||
\b If you have tried to do something with PuTTY but it hasn't
|
||||
worked, and you aren't sure whether it's a bug in PuTTY or a bug in
|
||||
your SSH server or simply that you're not doing it right, then try
|
||||
posting to a newsgroup (see \k{feedback-other-fora}) and see
|
||||
if someone can solve your problem. Or try doing the same thing with
|
||||
a different SSH client and see if it works with that. Please do not
|
||||
report it as a PuTTY bug unless you are really sure it \e{is} a bug
|
||||
in PuTTY.
|
||||
|
||||
\b If someone else installed PuTTY for you, or you're using PuTTY on
|
||||
someone else's computer, try asking them for help first. They're more
|
||||
likely to understand how they installed it and what they expected you
|
||||
to use it for than we are.
|
||||
|
||||
\b If you have successfully made a connection to your server and now
|
||||
need to know what to type at the server's command prompt, or other
|
||||
details of how to use the server-end software, talk to your server's
|
||||
system administrator. This is not the PuTTY team's problem. PuTTY is
|
||||
only a communications tool, like a telephone; if you can't speak the
|
||||
same language as the person at the other end of the phone, it isn't
|
||||
the telephone company's job to teach it to you.
|
||||
|
||||
If you absolutely cannot get a support question answered any other
|
||||
way, you can try mailing it to us, but we can't guarantee to have
|
||||
time to answer it.
|
||||
|
||||
\H{feedback-webadmin} Web server administration
|
||||
|
||||
If the PuTTY \i{web site} is down (Connection Timed Out), please don't
|
||||
bother mailing us to tell us about it. Most of us read our e-mail on
|
||||
the same machines that host the web site, so if those machines are
|
||||
down then we will notice \e{before} we read our e-mail. So there's
|
||||
no point telling us our servers are down.
|
||||
|
||||
Of course, if the web site has some other error (Connection Refused,
|
||||
404 Not Found, 403 Forbidden, or something else) then we might
|
||||
\e{not} have noticed and it might still be worth telling us about it.
|
||||
|
||||
If you want to report a problem with our web site, check that you're
|
||||
looking at our \e{real} web site and not a mirror. The real web site
|
||||
is at
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/}\c{http://www.chiark.greenend.org.uk/~sgtatham/putty/};
|
||||
if that's not where you're reading this, then don't report the
|
||||
problem to us until you've checked that it's really a problem with
|
||||
the main site. If it's only a problem with the mirror, you should
|
||||
try to contact the administrator of that mirror site first, and only
|
||||
contact us if that doesn't solve the problem (in case we need to
|
||||
remove the mirror from our list).
|
||||
|
||||
\H{feedback-permission} Asking permission for things
|
||||
|
||||
PuTTY is distributed under the MIT Licence (see \k{licence} for
|
||||
details). This means you can do almost \e{anything} you like with
|
||||
our software, our source code, and our documentation. The only
|
||||
things you aren't allowed to do are to remove our copyright notices
|
||||
or the licence text itself, or to hold us legally responsible if
|
||||
something goes wrong.
|
||||
|
||||
So if you want permission to include PuTTY on a magazine cover disk,
|
||||
or as part of a collection of useful software on a CD or a web site,
|
||||
then \e{permission is already granted}. You don't have to mail us
|
||||
and ask. Just go ahead and do it. We don't mind.
|
||||
|
||||
(If you want to distribute PuTTY alongside your own application for
|
||||
use with that application, or if you want to distribute PuTTY within
|
||||
your own organisation, then we recommend, but do not insist, that
|
||||
you offer your own first-line technical support, to answer questions
|
||||
about the interaction of PuTTY with your environment. If your users
|
||||
mail us directly, we won't be able to tell them anything useful about
|
||||
your specific setup.)
|
||||
|
||||
If you want to use parts of the PuTTY source code in another
|
||||
program, then it might be worth mailing us to talk about technical
|
||||
details, but if all you want is to ask permission then you don't
|
||||
need to bother. You already have permission.
|
||||
|
||||
If you just want to link to our web site, just go ahead. (It's not
|
||||
clear that we \e{could} stop you doing this, even if we wanted to!)
|
||||
|
||||
\H{feedback-mirrors} Mirroring the PuTTY web site
|
||||
|
||||
\#{This paragraph also in putty-website/mirrors.html}
|
||||
Mirrors of the PuTTY web site are welcome, especially in regions not
|
||||
well covered by existing mirrors. (However, if you're in a region that is
|
||||
already well served by mirrors, you should consider whether yet another one
|
||||
will be worth the effort.) Please don't bother asking us for permission before
|
||||
setting up a mirror. You already have permission.
|
||||
|
||||
If you mail us \e{after} you have set up the mirror and checked that
|
||||
it works, and remember to let us know which country your mirror is in,
|
||||
then we'll add it to the
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/mirrors.html}{Mirrors
|
||||
page} on the PuTTY website.
|
||||
|
||||
If you have technical questions about the process of mirroring, then
|
||||
you might want to mail us before setting up the mirror (see also the
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/mirrors.html#guidelines}{guidelines on the Mirrors page});
|
||||
but if you just want to ask for permission, you don't need to. You
|
||||
already have permission.
|
||||
|
||||
\H{feedback-compliments} Praise and compliments
|
||||
|
||||
One of the most rewarding things about maintaining free software is
|
||||
getting e-mails that just say \q{thanks}. We are always happy to
|
||||
receive e-mails of this type.
|
||||
|
||||
Regrettably we don't have time to answer them all in person. If you
|
||||
mail us a compliment and don't receive a reply, \e{please} don't
|
||||
think we've ignored you. We did receive it and we were happy about
|
||||
it; we just didn't have time to tell you so personally.
|
||||
|
||||
To everyone who's ever sent us praise and compliments, in the past
|
||||
and the future: \e{you're welcome}!
|
||||
|
||||
\H{feedback-address} E-mail address
|
||||
|
||||
The actual address to mail is
|
||||
\cw{<\W{mailto:putty@projects.tartarus.org}{putty@projects.tartarus.org}>}.
|
||||
155
puttysrc/DOC/GS.BUT
Normal file
155
puttysrc/DOC/GS.BUT
Normal file
@@ -0,0 +1,155 @@
|
||||
\define{versionidgs} \versionid $Id: gs.but 6815 2006-08-28 10:35:12Z simon $
|
||||
|
||||
\C{gs} Getting started with PuTTY
|
||||
|
||||
This chapter gives a quick guide to the simplest types of
|
||||
interactive login session using PuTTY.
|
||||
|
||||
\H{gs-insecure} \ii{Starting a session}
|
||||
|
||||
When you start PuTTY, you will see a \i{dialog box}. This dialog box
|
||||
allows you to control everything PuTTY can do. See \k{config} for
|
||||
details of all the things you can control.
|
||||
|
||||
You don't usually need to change most of the configuration options.
|
||||
To start the simplest kind of session, all you need to do is to
|
||||
enter a few basic parameters.
|
||||
|
||||
In the \q{Host Name} box, enter the Internet \i{host name} of the server
|
||||
you want to connect to. You should have been told this by the
|
||||
provider of your login account.
|
||||
|
||||
Now select a login \i{protocol} to use, from the \q{Connection type}
|
||||
buttons. For a login session, you should select \i{Telnet},
|
||||
\i{Rlogin} or \i{SSH}. See \k{which-one} for a description of the
|
||||
differences between the three protocols, and advice on which one to
|
||||
use. The fourth protocol, \I{raw protocol}\e{Raw}, is not used for
|
||||
interactive login sessions; you would usually use this for debugging
|
||||
other Internet services (see \k{using-rawprot}). The fifth option,
|
||||
\e{Serial}, is used for connecting to a local serial line, and works
|
||||
somewhat differently: see \k{using-serial} for more information on
|
||||
this.
|
||||
|
||||
When you change the selected protocol, the number in the \q{Port}
|
||||
box will change. This is normal: it happens because the various
|
||||
login services are usually provided on different network ports by
|
||||
the server machine. Most servers will use the standard port numbers,
|
||||
so you will not need to change the port setting. If your server
|
||||
provides login services on a non-standard port, your system
|
||||
administrator should have told you which one. (For example, many
|
||||
\i{MUDs} run Telnet service on a port other than 23.)
|
||||
|
||||
Once you have filled in the \q{Host Name}, \q{Protocol}, and
|
||||
possibly \q{Port} settings, you are ready to connect. Press the
|
||||
\q{Open} button at the bottom of the dialog box, and PuTTY will
|
||||
begin trying to connect you to the server.
|
||||
|
||||
\H{gs-hostkey} \ii{Verifying the host key} (SSH only)
|
||||
|
||||
If you are not using the \i{SSH} protocol, you can skip this
|
||||
section.
|
||||
|
||||
If you are using SSH to connect to a server for the first time, you
|
||||
will probably see a message looking something like this:
|
||||
|
||||
\c The server's host key is not cached in the registry. You
|
||||
\c have no guarantee that the server is the computer you
|
||||
\c think it is.
|
||||
\c The server's rsa2 key fingerprint is:
|
||||
\c ssh-rsa 1024 7b:e5:6f:a7:f4:f9:81:62:5c:e3:1f:bf:8b:57:6c:5a
|
||||
\c If you trust this host, hit Yes to add the key to
|
||||
\c PuTTY's cache and carry on connecting.
|
||||
\c If you want to carry on connecting just once, without
|
||||
\c adding the key to the cache, hit No.
|
||||
\c If you do not trust this host, hit Cancel to abandon the
|
||||
\c connection.
|
||||
|
||||
This is a feature of the SSH protocol. It is designed to protect you
|
||||
against a network attack known as \i\e{spoofing}: secretly
|
||||
redirecting your connection to a different computer, so that you
|
||||
send your password to the wrong machine. Using this technique, an
|
||||
attacker would be able to learn the password that guards your login
|
||||
account, and could then log in as if they were you and use the
|
||||
account for their own purposes.
|
||||
|
||||
To prevent this attack, each server has a unique identifying code,
|
||||
called a \e{host key}. These keys are created in a way that prevents
|
||||
one server from forging another server's key. So if you connect to a
|
||||
server and it sends you a different host key from the one you were
|
||||
expecting, PuTTY can warn you that the server may have been switched
|
||||
and that a spoofing attack might be in progress.
|
||||
|
||||
PuTTY records the host key for each server you connect to, in the
|
||||
Windows \i{Registry}. Every time you connect to a server, it checks
|
||||
that the host key presented by the server is the same host key as it
|
||||
was the last time you connected. If it is not, you will see a
|
||||
warning, and you will have the chance to abandon your connection
|
||||
before you type any private information (such as a password) into
|
||||
it.
|
||||
|
||||
However, when you connect to a server you have not connected to
|
||||
before, PuTTY has no way of telling whether the host key is the
|
||||
right one or not. So it gives the warning shown above, and asks you
|
||||
whether you want to \I{trusting host keys}trust this host key or
|
||||
not.
|
||||
|
||||
Whether or not to trust the host key is your choice. If you are
|
||||
connecting within a company network, you might feel that all the
|
||||
network users are on the same side and spoofing attacks are
|
||||
unlikely, so you might choose to trust the key without checking it.
|
||||
If you are connecting across a hostile network (such as the
|
||||
Internet), you should check with your system administrator, perhaps
|
||||
by telephone or in person. (Some modern servers have more than one
|
||||
host key. If the system administrator sends you more than one
|
||||
\I{host key fingerprint}fingerprint, you should make sure the one
|
||||
PuTTY shows you is on the list, but it doesn't matter which one it is.)
|
||||
|
||||
\# FIXME: this is all very fine but of course in practice the world
|
||||
doesn't work that way. Ask the team if they have any good ideas for
|
||||
changes to this section!
|
||||
|
||||
\H{gs-login} \ii{Logging in}
|
||||
|
||||
After you have connected, and perhaps verified the server's host
|
||||
key, you will be asked to log in, probably using a \i{username} and
|
||||
a \i{password}. Your system administrator should have provided you
|
||||
with these. Enter the username and the password, and the server
|
||||
should grant you access and begin your session. If you have
|
||||
\I{mistyping a password}mistyped your password, most servers will
|
||||
give you several chances to get it right.
|
||||
|
||||
If you are using SSH, be careful not to type your username wrongly,
|
||||
because you will not have a chance to correct it after you press
|
||||
Return; many SSH servers do not permit you to make two login attempts
|
||||
using \i{different usernames}. If you type your username wrongly, you
|
||||
must close PuTTY and start again.
|
||||
|
||||
If your password is refused but you are sure you have typed it
|
||||
correctly, check that Caps Lock is not enabled. Many login servers,
|
||||
particularly Unix computers, treat upper case and lower case as
|
||||
different when checking your password; so if Caps Lock is on, your
|
||||
password will probably be refused.
|
||||
|
||||
\H{gs-session} After logging in
|
||||
|
||||
After you log in to the server, what happens next is up to the
|
||||
server! Most servers will print some sort of login message and then
|
||||
present a \i{prompt}, at which you can type
|
||||
\I{commands on the server}commands which the
|
||||
server will carry out. Some servers will offer you on-line help;
|
||||
others might not. If you are in doubt about what to do next, consult
|
||||
your system administrator.
|
||||
|
||||
\H{gs-logout} \ii{Logging out}
|
||||
|
||||
When you have finished your session, you should log out by typing
|
||||
the server's own logout command. This might vary between servers; if
|
||||
in doubt, try \c{logout} or \c{exit}, or consult a manual or your
|
||||
system administrator. When the server processes your logout command,
|
||||
the PuTTY window should close itself automatically.
|
||||
|
||||
You \e{can} close a PuTTY session using the \i{Close button} in the
|
||||
window border, but this might confuse the server - a bit like
|
||||
hanging up a telephone unexpectedly in the middle of a conversation.
|
||||
We recommend you do not do this unless the server has stopped
|
||||
responding to you and you cannot close the window any other way.
|
||||
839
puttysrc/DOC/INDEX.BUT
Normal file
839
puttysrc/DOC/INDEX.BUT
Normal file
@@ -0,0 +1,839 @@
|
||||
\define{versionidindex} \versionid $Id: index.but 6836 2006-08-29 21:46:56Z jacob $
|
||||
|
||||
\IM{Unix version} Unix version of PuTTY tools
|
||||
\IM{Unix version} Linux version of PuTTY tools
|
||||
|
||||
\IM{Unix} Unix
|
||||
\IM{Unix} Linux
|
||||
|
||||
\IM{Command Prompt}{command prompt window}{MS-DOS Prompt}{console window} Command Prompt
|
||||
\IM{Command Prompt}{command prompt window}{MS-DOS Prompt}{console window} MS-DOS Prompt
|
||||
\IM{Command Prompt}{command prompt window}{MS-DOS Prompt}{console window} console window
|
||||
|
||||
\IM{spoof}{spoofed}{spoofing} spoofing
|
||||
|
||||
\IM{verifying the host key} verifying the host key
|
||||
\IM{verifying the host key} host key, verifying
|
||||
|
||||
\IM{trusting host keys} trusting host keys
|
||||
\IM{trusting host keys} host keys, trusting
|
||||
|
||||
\IM{host key fingerprint} fingerprint, of SSH host key
|
||||
\IM{host key fingerprint} host key fingerprint (SSH)
|
||||
\IM{host key fingerprint} SSH host key fingerprint
|
||||
|
||||
\IM{starting a session} starting a session
|
||||
\IM{starting a session} session, starting
|
||||
|
||||
\IM{commands on the server}{remote command} commands on the server
|
||||
\IM{commands on the server}{remote command} remote commands
|
||||
\IM{commands on the server}{remote command} server, commands on
|
||||
|
||||
\IM{mistyping a password} mistyping a password
|
||||
\IM{mistyping a password} password, mistyping
|
||||
|
||||
\IM{different usernames}{changes of username} different user names
|
||||
\IM{different usernames}{changes of username} changing user names
|
||||
\IM{different usernames}{changes of username} user names, different
|
||||
\IM{different usernames}{changes of username} login names, different
|
||||
\IM{different usernames}{changes of username} account names, different
|
||||
|
||||
\IM{differences between SSH, Telnet and Rlogin} differences between
|
||||
SSH, Telnet and Rlogin
|
||||
\IM{differences between SSH, Telnet and Rlogin} protocols,
|
||||
differences between
|
||||
\IM{differences between SSH, Telnet and Rlogin} SSH, differences
|
||||
from Telnet and Rlogin
|
||||
\IM{differences between SSH, Telnet and Rlogin} Telnet, differences
|
||||
from SSH and Rlogin
|
||||
\IM{differences between SSH, Telnet and Rlogin} Rlogin, differences
|
||||
from SSH and Telnet
|
||||
\IM{differences between SSH, Telnet and Rlogin} selecting a protocol
|
||||
\IM{differences between SSH, Telnet and Rlogin} choosing a protocol
|
||||
|
||||
\IM{MUD}{MUDs} MUDs
|
||||
|
||||
\IM{talker}{talker systems} talker systems
|
||||
|
||||
\IM{security hazard}{security risk} security hazard
|
||||
|
||||
\IM{SSH-1}{SSH protocol version 1} SSH-1
|
||||
\IM{SSH-2}{SSH protocol version 2} SSH-2
|
||||
|
||||
\IM{terminal window}{PuTTY window} terminal window
|
||||
\IM{terminal window}{PuTTY window} PuTTY terminal window
|
||||
\IM{terminal window}{PuTTY window} window, terminal
|
||||
|
||||
\IM{copy and paste} copy and paste
|
||||
\IM{copy and paste} cut and paste
|
||||
\IM{copy and paste} paste, copy and
|
||||
|
||||
\IM{three-button mouse} three-button mouse
|
||||
\IM{three-button mouse} mouse, three-button
|
||||
|
||||
\IM{left mouse button}{left button} left mouse button
|
||||
\IM{middle mouse button}{middle button} middle mouse button
|
||||
\IM{right mouse button}{right button} right mouse button
|
||||
|
||||
\IM{selecting words}{word-by-word selection} selecting whole words
|
||||
\IM{selecting words}{word-by-word selection} words, selecting
|
||||
|
||||
\IM{selecting lines} selecting whole lines
|
||||
\IM{selecting lines} lines, selecting
|
||||
|
||||
\IM{rectangular selection} rectangular selection
|
||||
\IM{rectangular selection} selection, rectangular
|
||||
|
||||
\IM{adjusting a selection} adjusting a selection
|
||||
\IM{adjusting a selection} extending a selection
|
||||
\IM{adjusting a selection} selection, adjusting
|
||||
|
||||
\IM{right mouse button, with Ctrl} right mouse button, with Ctrl
|
||||
\IM{right mouse button, with Ctrl} Ctrl, with right mouse button
|
||||
|
||||
\IM{system menu} system menu
|
||||
\IM{system menu} menu, system
|
||||
\IM{system menu} window menu
|
||||
|
||||
\IM{context menu} context menu
|
||||
\IM{context menu} menu, context
|
||||
\IM{context menu} right mouse button menu
|
||||
|
||||
\IM{Event Log} Event Log
|
||||
\IM{Event Log} PuTTY Event Log
|
||||
\IM{Event Log} Log, Event
|
||||
|
||||
\IM{Telnet special commands} Telnet special commands
|
||||
\IM{Telnet special commands} special commands, in Telnet
|
||||
|
||||
\IM{SSH special commands} SSH special commands
|
||||
\IM{SSH special commands} special commands, in SSH
|
||||
|
||||
\IM{Repeat key exchange, SSH special command} Repeat key exchange, SSH special command
|
||||
\IM{Repeat key exchange, SSH special command} key exchange, forcing repeat
|
||||
\IM{Repeat key exchange, SSH special command} SSH key exchange, forcing repeat
|
||||
|
||||
\IM{accented characters} accented characters
|
||||
\IM{accented characters} characters, accented
|
||||
|
||||
\IM{line-drawing characters} line-drawing characters
|
||||
\IM{line-drawing characters} box-drawing characters
|
||||
\IM{line-drawing characters} characters, line-drawing
|
||||
\IM{line-drawing characters} ANSI graphics
|
||||
|
||||
\IM{port forwarding}{port forwardings} port forwarding in SSH
|
||||
\IM{port forwarding}{port forwardings} SSH port forwarding
|
||||
\IM{port forwarding}{port forwardings} forwarding ports in SSH
|
||||
\IM{port forwarding}{port forwardings} tunnelling using SSH
|
||||
\IM{port forwarding}{port forwardings} SSH tunnelling
|
||||
|
||||
\IM{port forwarding, changing mid-session} port forwarding in SSH, changing mid-session
|
||||
\IM{port forwarding, changing mid-session} SSH port forwarding, changing mid-session
|
||||
\IM{port forwarding, changing mid-session} forwarding ports in SSH, changing mid-session
|
||||
\IM{port forwarding, changing mid-session} tunnelling using SSH, changing mid-session
|
||||
\IM{port forwarding, changing mid-session} SSH tunnelling, changing mid-session
|
||||
|
||||
\IM{local port forwarding} local-to-remote port forwarding
|
||||
\IM{remote port forwarding} remote-to-local port forwarding
|
||||
|
||||
\IM{dynamic port forwarding} dynamic port forwarding
|
||||
\IM{dynamic port forwarding} SOCKS port forwarding
|
||||
|
||||
\IM{debugging Internet protocols} debugging Internet protocols
|
||||
\IM{debugging Internet protocols} Internet protocols, debugging
|
||||
\IM{debugging Internet protocols} protocols, debugging
|
||||
|
||||
\IM{Internet protocol version} Internet Protocol version
|
||||
\IM{Internet protocol version} version, of Internet Protocol
|
||||
|
||||
\IM{raw TCP connections} raw TCP connections
|
||||
\IM{raw TCP connections} TCP connections, raw
|
||||
|
||||
\IM{command-line arguments} command-line arguments
|
||||
\IM{command-line arguments} arguments, command-line
|
||||
\IM{command-line arguments} options, command-line
|
||||
\IM{command-line arguments} switches, command-line
|
||||
|
||||
\IM{Windows shortcut} Windows shortcut
|
||||
\IM{Windows shortcut} shortcut, Windows
|
||||
|
||||
\IM{telnet URLs} Telnet URLs
|
||||
\IM{telnet URLs} URLs, Telnet
|
||||
|
||||
\IM{saved sessions, loading from command line} saved sessions,
|
||||
loading from command line
|
||||
\IM{saved sessions, loading from command line} loading saved
|
||||
sessions from command line
|
||||
\IM{saved sessions, loading from command line} command line, loading
|
||||
saved sessions from
|
||||
|
||||
\IM{putty @sessionname} \c{putty @sessionname}
|
||||
\IM{putty @sessionname} \c{@sessionname} command-line argument
|
||||
|
||||
\IM{protocol selection} protocol selection
|
||||
\IM{protocol selection} selecting a protocol
|
||||
\IM{protocol selection} choosing a protocol
|
||||
|
||||
\IM{login name}{username} login name
|
||||
\IM{login name}{username} user name
|
||||
\IM{login name}{username} account name
|
||||
|
||||
\IM{reading commands from a file} reading commands from a file
|
||||
\IM{reading commands from a file} commands, reading from a file
|
||||
|
||||
\IM{agent forwarding} agent forwarding
|
||||
\IM{agent forwarding} authentication agent forwarding
|
||||
\IM{agent forwarding} SSH agent forwarding
|
||||
\IM{agent forwarding} forwarding, SSH agent
|
||||
|
||||
\IM{X11 forwarding}{forwarding of X11} X11 forwarding
|
||||
\IM{X11 forwarding}{forwarding of X11} SSH X11 forwarding
|
||||
\IM{X11 forwarding}{forwarding of X11} forwarding, of X11
|
||||
|
||||
\IM{X11 authentication} X11 authentication
|
||||
\IM{X11 authentication} authentication, X11
|
||||
|
||||
\IM{pseudo-terminal allocation} pseudo-terminal allocation
|
||||
\IM{pseudo-terminal allocation} pty allocation
|
||||
\IM{pseudo-terminal allocation} allocation, of pseudo-terminal
|
||||
|
||||
\IM{ERASE special character} \cw{ERASE}, special character
|
||||
\IM{ERASE special character} \cw{VERASE}, special character
|
||||
\IM{QUIT special character} \cw{QUIT}, special character
|
||||
\IM{QUIT special character} \cw{VQUIT}, special character
|
||||
|
||||
\IM{-telnet} \c{-telnet} command-line option
|
||||
\IM{-raw} \c{-raw} command-line option
|
||||
\IM{-rlogin} \c{-rlogin} command-line option
|
||||
\IM{-ssh} \c{-ssh} command-line option
|
||||
\IM{-cleanup} \c{-cleanup} command-line option
|
||||
\IM{-load} \c{-load} command-line option
|
||||
\IM{-v} \c{-v} command-line option
|
||||
\IM{-l} \c{-l} command-line option
|
||||
\IM{-L-upper} \c{-L} command-line option
|
||||
\IM{-R-upper} \c{-R} command-line option
|
||||
\IM{-D-upper} \c{-D} command-line option
|
||||
\IM{-m} \c{-m} command-line option
|
||||
\IM{-P-upper} \c{-P} command-line option
|
||||
\IM{-pw} \c{-pw} command-line option
|
||||
\IM{-A-upper} \c{-A} command-line option
|
||||
\IM{-a} \c{-a} command-line option
|
||||
\IM{-X-upper} \c{-X} command-line option
|
||||
\IM{-x} \c{-x} command-line option
|
||||
\IM{-T-upper} \c{-T} command-line option
|
||||
\IM{-t} \c{-t} command-line option
|
||||
\IM{-C-upper} \c{-C} command-line option
|
||||
\IM{-N-upper} \c{-N} command-line option
|
||||
\IM{-1} \c{-1} command-line option
|
||||
\IM{-2} \c{-2} command-line option
|
||||
\IM{-i} \c{-i} command-line option
|
||||
\IM{-pgpfp} \c{-pgpfp} command-line option
|
||||
|
||||
\IM{removing registry entries} removing registry entries
|
||||
\IM{removing registry entries} registry entries, removing
|
||||
|
||||
\IM{random seed file} random seed file
|
||||
\IM{random seed file} \c{putty.rnd} (random seed file)
|
||||
|
||||
\IM{putty.rnd} \c{putty.rnd} (random seed file)
|
||||
|
||||
\IM{suppressing remote shell} remote shell, suppressing
|
||||
\IM{suppressing remote shell} shell, remote, suppressing
|
||||
|
||||
\IM{SSH protocol version} SSH protocol version
|
||||
\IM{SSH protocol version} protocol version, SSH
|
||||
\IM{SSH protocol version} version, of SSH protocol
|
||||
|
||||
\IM{PPK} \cw{PPK} file
|
||||
\IM{PPK} private key file, PuTTY
|
||||
|
||||
\IM{PGP key fingerprint} PGP key fingerprint
|
||||
\IM{PGP key fingerprint} fingerprint, of PGP key
|
||||
|
||||
\IM{verifying new versions} verifying new versions of PuTTY
|
||||
\IM{verifying new versions} new version, verifying
|
||||
\IM{verifying new versions} upgraded version, verifying
|
||||
|
||||
\IM{connection}{network connection} network connection
|
||||
\IM{connection}{network connection} connection, network
|
||||
|
||||
\IM{host name}{hostname} host name
|
||||
\IM{host name}{hostname} DNS name
|
||||
\IM{host name}{hostname} server name
|
||||
|
||||
\IM{IP address}{Internet address} IP address
|
||||
\IM{IP address}{Internet address} address, IP
|
||||
|
||||
\IM{localhost} \c{localhost}
|
||||
|
||||
\IM{loopback IP address}{loopback address} loopback IP address
|
||||
\IM{loopback IP address}{loopback address} IP address, loopback
|
||||
|
||||
\IM{listen address} listen address
|
||||
\IM{listen address} bind address
|
||||
|
||||
\IM{DNS} DNS
|
||||
\IM{DNS} Domain Name System
|
||||
|
||||
\IM{name resolution} name resolution
|
||||
\IM{name resolution} DNS resolution
|
||||
\IM{name resolution} host name resolution
|
||||
\IM{name resolution} server name resolution
|
||||
|
||||
\IM{loading and storing saved sessions} sessions, loading and storing
|
||||
\IM{loading and storing saved sessions} settings, loading and storing
|
||||
\IM{loading and storing saved sessions} saving settings
|
||||
\IM{loading and storing saved sessions} storing settings
|
||||
\IM{loading and storing saved sessions} loading settings
|
||||
|
||||
\IM{Default Settings} Default Settings
|
||||
\IM{Default Settings} settings, default
|
||||
|
||||
\IM{Registry} Registry (Windows)
|
||||
\IM{Registry} Windows Registry
|
||||
|
||||
\IM{inactive window} inactive window
|
||||
\IM{inactive window} window, inactive
|
||||
\IM{inactive window} terminal window, inactive
|
||||
|
||||
\IM{SSH packet log} SSH packet log
|
||||
\IM{SSH packet log} packet log, SSH
|
||||
|
||||
\IM{auto wrap mode}{auto wrap} auto wrap mode
|
||||
\IM{auto wrap mode}{auto wrap} wrapping, automatic
|
||||
\IM{auto wrap mode}{auto wrap} line wrapping, automatic
|
||||
|
||||
\IM{control sequence}{control codes} control sequences
|
||||
\IM{control sequence}{control codes} terminal control sequences
|
||||
\IM{control sequence}{control codes} escape sequences
|
||||
|
||||
\IM{cursor coordinates} cursor coordinates
|
||||
\IM{cursor coordinates} coordinates, cursor
|
||||
|
||||
\IM{CR} CR (Carriage Return)
|
||||
\IM{CR} Carriage Return
|
||||
|
||||
\IM{LF} LF (Line Feed)
|
||||
\IM{LF} Line Feed
|
||||
|
||||
\IM{clear screen} clear screen
|
||||
\IM{clear screen} erase screen
|
||||
\IM{clear screen} screen, clearing
|
||||
|
||||
\IM{blinking text} blinking text
|
||||
\IM{blinking text} flashing text
|
||||
|
||||
\IM{answerback} answerback string
|
||||
|
||||
\IM{local echo} local echo
|
||||
\IM{local echo} echo, local
|
||||
|
||||
\IM{remote echo} remote echo
|
||||
\IM{remote echo} echo, remote
|
||||
|
||||
\IM{local line editing} local line editing
|
||||
\IM{local line editing} line editing, local
|
||||
|
||||
\IM{remote-controlled printing} ANSI printing
|
||||
\IM{remote-controlled printing} remote-controlled printing
|
||||
\IM{remote-controlled printing} printing, remote-controlled
|
||||
|
||||
\IM{Home and End keys} Home key
|
||||
\IM{Home and End keys} End key
|
||||
|
||||
\IM{keypad} keypad, numeric
|
||||
\IM{keypad} numeric keypad
|
||||
|
||||
\IM{Application Cursor Keys} Application Cursor Keys
|
||||
\IM{Application Cursor Keys} cursor keys, \q{Application} mode
|
||||
|
||||
\IM{Application Keypad} Application Keypad
|
||||
\IM{Application Keypad} keypad, \q{Application} mode
|
||||
\IM{Application Keypad} numeric keypad, \q{Application} mode
|
||||
|
||||
\IM{Num Lock}{NumLock} Num Lock
|
||||
|
||||
\IM{NetHack keypad mode} NetHack keypad mode
|
||||
\IM{NetHack keypad mode} keypad, NetHack mode
|
||||
|
||||
\IM{compose key} Compose key
|
||||
\IM{compose key} DEC Compose key
|
||||
|
||||
\IM{terminal bell} terminal bell
|
||||
\IM{terminal bell} bell, terminal
|
||||
\IM{terminal bell} beep, terminal
|
||||
\IM{terminal bell} feep
|
||||
|
||||
\IM{Windows Default Beep} Windows Default Beep sound
|
||||
\IM{Windows Default Beep} Default Beep sound, Windows
|
||||
|
||||
\IM{terminal bell, disabling} terminal bell, disabling
|
||||
\IM{terminal bell, disabling} bell, disabling
|
||||
|
||||
\IM{visual bell} visual bell
|
||||
\IM{visual bell} bell, visual
|
||||
|
||||
\IM{PC speaker} PC speaker
|
||||
\IM{PC speaker} beep, with PC speaker
|
||||
|
||||
\IM{sound file} sound file
|
||||
\IM{sound file} \cw{WAV} file
|
||||
|
||||
\IM{bell overload} bell overload mode
|
||||
\IM{bell overload} terminal bell overload mode
|
||||
|
||||
\IM{mouse reporting} mouse reporting
|
||||
\IM{mouse reporting} \c{xterm} mouse reporting
|
||||
|
||||
\IM{links} \c{links} (web browser)
|
||||
|
||||
\IM{mc} \c{mc}
|
||||
\IM{mc} Midnight Commander
|
||||
|
||||
\IM{terminal resizing}{window resizing} terminal resizing
|
||||
\IM{terminal resizing}{window resizing} window resizing
|
||||
\IM{terminal resizing}{window resizing} resizing, terminal
|
||||
|
||||
\IM{destructive backspace} destructive backspace
|
||||
\IM{destructive backspace} non-destructive backspace
|
||||
\IM{destructive backspace} backspace, destructive
|
||||
|
||||
\IM{Arabic text shaping} Arabic text shaping
|
||||
\IM{Arabic text shaping} shaping, of Arabic text
|
||||
|
||||
\IM{Unicode} Unicode
|
||||
\IM{Unicode} ISO-10646 (Unicode)
|
||||
|
||||
\IM{ASCII} ASCII
|
||||
\IM{ASCII} US-ASCII
|
||||
|
||||
\IM{bidirectional text} bidirectional text
|
||||
\IM{bidirectional text} right-to-left text
|
||||
|
||||
\IM{display becomes corrupted} display corruption
|
||||
\IM{display becomes corrupted} corruption, of display
|
||||
|
||||
\IM{rows} rows, in terminal window
|
||||
\IM{columns} columns, in terminal window
|
||||
|
||||
\IM{window size} window size
|
||||
\IM{window size} size, of window
|
||||
|
||||
\IM{font size} font size
|
||||
\IM{font size} size, of font
|
||||
|
||||
\IM{full screen}{full-screen} full-screen mode
|
||||
|
||||
\IM{cursor blinks} blinking cursor
|
||||
\IM{cursor blinks} flashing cursor
|
||||
\IM{cursor blinks} cursor, blinking
|
||||
|
||||
\IM{font} font
|
||||
\IM{font} typeface
|
||||
|
||||
\IM{minimise} minimise window
|
||||
\IM{minimise} window, minimising
|
||||
|
||||
\IM{maximise} maximise window
|
||||
\IM{maximise} window, maximising
|
||||
|
||||
\IM{closing window}{close window} closing window
|
||||
\IM{closing window}{close window} window, closing
|
||||
|
||||
\IM{Dragon NaturallySpeaking} Dragon NaturallySpeaking
|
||||
\IM{Dragon NaturallySpeaking} NaturallySpeaking
|
||||
|
||||
\IM{AltGr} \q{AltGr} key
|
||||
\IM{Alt} \q{Alt} key
|
||||
|
||||
\IM{CJK} CJK
|
||||
\IM{CJK} Chinese
|
||||
\IM{CJK} Japanese
|
||||
\IM{CJK} Korean
|
||||
|
||||
\IM{East Asian Ambiguous characters} East Asian Ambiguous characters
|
||||
\IM{East Asian Ambiguous characters} CJK ambiguous characters
|
||||
|
||||
\IM{character width} character width
|
||||
\IM{character width} single-width character
|
||||
\IM{character width} double-width character
|
||||
|
||||
\IM{Rich Text Format} Rich Text Format
|
||||
\IM{Rich Text Format} RTF
|
||||
|
||||
\IM{bold}{bold text} bold text
|
||||
|
||||
\IM{colour}{colours} colour
|
||||
|
||||
\IM{8-bit colour} 8-bit colour
|
||||
\IM{8-bit colour} colour, 8-bit
|
||||
|
||||
\IM{system colours} system colours
|
||||
\IM{system colours} colours, system
|
||||
|
||||
\IM{ANSI colours} ANSI colours
|
||||
\IM{ANSI colours} colours, ANSI
|
||||
|
||||
\IM{cursor colour} cursor colour
|
||||
\IM{cursor colour} colour, of cursor
|
||||
|
||||
\IM{default background} background colour, default
|
||||
\IM{default background} colour, background, default
|
||||
|
||||
\IM{default foreground} foreground colour, default
|
||||
\IM{default foreground} colour, foreground, default
|
||||
|
||||
\IM{TERM} \cw{TERM} environment variable
|
||||
|
||||
\IM{logical palettes} logical palettes
|
||||
\IM{logical palettes} palettes, logical
|
||||
|
||||
\IM{breaks in connectivity} connectivity, breaks in
|
||||
\IM{breaks in connectivity} intermittent connectivity
|
||||
|
||||
\IM{idle connections} idle connections
|
||||
\IM{idle connections} timeout, of connections
|
||||
\IM{idle connections} connections, idle
|
||||
|
||||
\IM{interactive connections}{interactive session} interactive connections
|
||||
\IM{interactive connections}{interactive session} connections, interactive
|
||||
|
||||
\IM{keepalives} keepalives, application
|
||||
|
||||
\IM{Nagle's algorithm} Nagle's algorithm
|
||||
\IM{Nagle's algorithm} \cw{TCP_NODELAY}
|
||||
|
||||
\IM{TCP keepalives} TCP keepalives
|
||||
\IM{TCP keepalives} keepalives, TCP
|
||||
\IM{TCP keepalives} \cw{SO_KEEPALIVE}
|
||||
|
||||
\IM{half-open connections} half-open connections
|
||||
\IM{half-open connections} connections, half-open
|
||||
|
||||
\IM{auto-login username} user name, for auto-login
|
||||
\IM{auto-login username} login name, for auto-login
|
||||
\IM{auto-login username} account name, for auto-login
|
||||
|
||||
\IM{terminal emulation}{terminal-type} terminal emulation
|
||||
\IM{terminal emulation}{terminal-type} emulation, terminal
|
||||
|
||||
\IM{terminal speed} terminal speed
|
||||
\IM{terminal speed} speed, terminal
|
||||
\IM{terminal speed} baud rate, of terminal
|
||||
|
||||
\IM{environment variables} environment variables
|
||||
\IM{environment variables} variables, environment
|
||||
|
||||
\IM{proxy} proxy server
|
||||
\IM{proxy} server, proxy
|
||||
|
||||
\IM{HTTP proxy} HTTP proxy
|
||||
\IM{HTTP proxy} proxy, HTTP
|
||||
\IM{HTTP proxy} server, HTTP
|
||||
\IM{HTTP proxy} \cw{CONNECT} proxy (HTTP)
|
||||
|
||||
\IM{SOCKS server} SOCKS proxy
|
||||
\IM{SOCKS server} server, SOCKS
|
||||
\IM{SOCKS server} proxy, SOCKS
|
||||
|
||||
\IM{Telnet proxy} Telnet proxy
|
||||
\IM{Telnet proxy} TCP proxy
|
||||
\IM{Telnet proxy} ad-hoc proxy
|
||||
\IM{Telnet proxy} proxy, Telnet
|
||||
|
||||
\IM{Local proxy} local proxy
|
||||
\IM{Local proxy} proxy command
|
||||
\IM{Local proxy} command, proxy
|
||||
|
||||
\IM{proxy DNS} proxy DNS
|
||||
\IM{proxy DNS} DNS, with proxy
|
||||
\IM{proxy DNS} name resolution, with proxy
|
||||
\IM{proxy DNS} host name resolution, with proxy
|
||||
\IM{proxy DNS} server name resolution, with proxy
|
||||
|
||||
\IM{proxy username} proxy user name
|
||||
\IM{proxy username} user name, for proxy
|
||||
\IM{proxy username} login name, for proxy
|
||||
\IM{proxy username} account name, for proxy
|
||||
|
||||
\IM{proxy password} proxy password
|
||||
\IM{proxy password} password, for proxy
|
||||
|
||||
\IM{proxy authentication} proxy authentication
|
||||
\IM{proxy authentication} authentication, to proxy
|
||||
|
||||
\IM{HTTP basic} HTTP \q{basic} authentication
|
||||
\IM{HTTP basic} \q{basic} authentication (HTTP)
|
||||
|
||||
\IM{plaintext password} plain text password
|
||||
\IM{plaintext password} password, plain text
|
||||
|
||||
\IM{Telnet negotiation} Telnet option negotiation
|
||||
\IM{Telnet negotiation} option negotiation, Telnet
|
||||
\IM{Telnet negotiation} negotiation, of Telnet options
|
||||
|
||||
\IM{firewall}{firewalls} firewalls
|
||||
|
||||
\IM{NAT router}{NAT} NAT routers
|
||||
\IM{NAT router}{NAT} routers, NAT
|
||||
\IM{NAT router}{NAT} Network Address Translation
|
||||
\IM{NAT router}{NAT} IP masquerading
|
||||
|
||||
\IM{Telnet New Line} Telnet New Line
|
||||
\IM{Telnet New Line} new line, in Telnet
|
||||
|
||||
\IM{.rhosts} \c{.rhosts} file
|
||||
\IM{.rhosts} \q{rhosts} file
|
||||
|
||||
\IM{passwordless login} passwordless login
|
||||
\IM{passwordless login} login, passwordless
|
||||
|
||||
\IM{Windows user name} local user name, in Windows
|
||||
\IM{Windows user name} user name, local, in Windows
|
||||
\IM{Windows user name} login name, local, in Windows
|
||||
\IM{Windows user name} account name, local, in Windows
|
||||
|
||||
\IM{local username in Rlogin} local user name, in Rlogin
|
||||
\IM{local username in Rlogin} user name, local, in Rlogin
|
||||
\IM{local username in Rlogin} login name, local, in Rlogin
|
||||
\IM{local username in Rlogin} account name, local, in Rlogin
|
||||
|
||||
\IM{privileged port} privileged port
|
||||
\IM{privileged port} low-numbered port
|
||||
\IM{privileged port} port, privileged
|
||||
|
||||
\IM{remote shell} shell, remote
|
||||
\IM{remote shell} remote shell
|
||||
|
||||
\IM{encryption}{encrypted}{encrypt} encryption
|
||||
|
||||
\IM{encryption algorithm} encryption algorithm
|
||||
\IM{encryption algorithm} cipher algorithm
|
||||
\IM{encryption algorithm} symmetric-key algorithm
|
||||
\IM{encryption algorithm} algorithm, encryption
|
||||
|
||||
\IM{AES} AES
|
||||
\IM{AES} Advanced Encryption Standard
|
||||
\IM{AES} Rijndael
|
||||
|
||||
\IM{Arcfour} Arcfour
|
||||
\IM{Arcfour} RC4
|
||||
|
||||
\IM{triple-DES} triple-DES
|
||||
|
||||
\IM{single-DES} single-DES
|
||||
\IM{single-DES} DES
|
||||
|
||||
\IM{key exchange} key exchange
|
||||
\IM{key exchange} kex
|
||||
|
||||
\IM{shared secret} shared secret
|
||||
\IM{shared secret} secret, shared
|
||||
|
||||
\IM{key exchange algorithm} key exchange algorithm
|
||||
\IM{key exchange algorithm} algorithm, key exchange
|
||||
|
||||
\IM{Diffie-Hellman key exchange} Diffie-Hellman key exchange
|
||||
\IM{Diffie-Hellman key exchange} key exchange, Diffie-Hellman
|
||||
|
||||
\IM{group exchange} Diffie-Hellman group exchange
|
||||
\IM{group exchange} group exchange, Diffie-Hellman
|
||||
|
||||
\IM{repeat key exchange} repeat key exchange
|
||||
\IM{repeat key exchange} key exchange, repeat
|
||||
|
||||
\IM{challenge/response authentication} challenge/response authentication
|
||||
\IM{challenge/response authentication} authentication, challenge/response
|
||||
|
||||
\IM{security token} security token
|
||||
\IM{security token} token, security
|
||||
|
||||
\IM{one-time passwords} one-time passwords
|
||||
\IM{one-time passwords} password, one-time
|
||||
|
||||
\IM{keyboard-interactive authentication} keyboard-interactive authentication
|
||||
\IM{keyboard-interactive authentication} authentication, keyboard-interactive
|
||||
|
||||
\IM{password expiry} password expiry
|
||||
\IM{password expiry} expiry, of passwords
|
||||
|
||||
\IM{public key authentication}{public-key authentication} public key authentication
|
||||
\IM{public key authentication}{public-key authentication} RSA authentication
|
||||
\IM{public key authentication}{public-key authentication} DSA authentication
|
||||
\IM{public key authentication}{public-key authentication} authentication, public key
|
||||
|
||||
\IM{MIT-MAGIC-COOKIE-1} \cw{MIT-MAGIC-COOKIE-1}
|
||||
\IM{MIT-MAGIC-COOKIE-1} magic cookie
|
||||
\IM{MIT-MAGIC-COOKIE-1} cookie, magic
|
||||
|
||||
\IM{SSH server bugs} SSH server bugs
|
||||
\IM{SSH server bugs} bugs, in SSH servers
|
||||
|
||||
\IM{ignore message} SSH \q{ignore} messages
|
||||
\IM{ignore message} \q{ignore} messages, in SSH
|
||||
|
||||
\IM{message authentication code} message authentication code
|
||||
\IM{message authentication code} MAC (message authentication code)
|
||||
|
||||
\IM{signatures} signature
|
||||
\IM{signatures} digital signature
|
||||
|
||||
\IM{storing configuration in a file} storing settings in a file
|
||||
\IM{storing configuration in a file} saving settings in a file
|
||||
\IM{storing configuration in a file} loading settings from a file
|
||||
|
||||
\IM{transferring files} transferring files
|
||||
\IM{transferring files} files, transferring
|
||||
|
||||
\IM{receiving files}{download a file} receiving files
|
||||
\IM{receiving files}{download a file} files, receiving
|
||||
\IM{receiving files}{download a file} downloading files
|
||||
|
||||
\IM{sending files}{upload a file} sending files
|
||||
\IM{sending files}{upload a file} files, sending
|
||||
\IM{sending files}{upload a file} uploading files
|
||||
|
||||
\IM{listing files} listing files
|
||||
\IM{listing files} files, listing
|
||||
|
||||
\IM{wildcard}{wildcards} wildcards
|
||||
\IM{wildcard}{wildcards} glob (wildcard)
|
||||
|
||||
\IM{PATH} \c{PATH} environment variable
|
||||
|
||||
\IM{SFTP} SFTP
|
||||
\IM{SFTP} SSH file transfer protocol
|
||||
|
||||
\IM{-unsafe} \c{-unsafe} PSCP command-line option
|
||||
\IM{-ls-PSCP} \c{-ls} PSCP command-line option
|
||||
\IM{-p-PSCP} \c{-p} PSCP command-line option
|
||||
\IM{-q-PSCP} \c{-q} PSCP command-line option
|
||||
\IM{-r-PSCP} \c{-r} PSCP command-line option
|
||||
\IM{-batch-PSCP} \c{-batch} PSCP command-line option
|
||||
\IM{-sftp} \c{-sftp} PSCP command-line option
|
||||
\IM{-scp} \c{-scp} PSCP command-line option
|
||||
|
||||
\IM{return value} return value
|
||||
\IM{return value} exit value
|
||||
|
||||
\IM{-b-PSFTP} \c{-b} PSFTP command-line option
|
||||
\IM{-bc-PSFTP} \c{-bc} PSFTP command-line option
|
||||
\IM{-be-PSFTP} \c{-be} PSFTP command-line option
|
||||
\IM{-batch-PSFTP} \c{-batch} PSFTP command-line option
|
||||
|
||||
\IM{spaces in filenames} spaces in filenames
|
||||
\IM{spaces in filenames} filenames containing spaces
|
||||
|
||||
\IM{working directory} working directory
|
||||
\IM{working directory} current working directory
|
||||
|
||||
\IM{resuming file transfers} resuming file transfers
|
||||
\IM{resuming file transfers} files, resuming transfer of
|
||||
|
||||
\IM{changing permissions on files} changing permissions on files
|
||||
\IM{changing permissions on files} permissions on files, changing
|
||||
\IM{changing permissions on files} files, changing permissions on
|
||||
\IM{changing permissions on files} modes of files, changing
|
||||
\IM{changing permissions on files} access to files, changing
|
||||
|
||||
\IM{deleting files} deleting files
|
||||
\IM{deleting files} files, deleting
|
||||
\IM{deleting files} removing files
|
||||
|
||||
\IM{create a directory} creating directories
|
||||
\IM{create a directory} directories, creating
|
||||
|
||||
\IM{remove a directory} removing directories
|
||||
\IM{remove a directory} directories, removing
|
||||
\IM{remove a directory} deleting directories
|
||||
|
||||
\IM{rename remote files} renaming files
|
||||
\IM{rename remote files} files, renaming and moving
|
||||
\IM{rename remote files} moving files
|
||||
|
||||
\IM{local Windows command} local Windows command
|
||||
\IM{local Windows command} Windows command
|
||||
|
||||
\IM{PLINK_PROTOCOL} \c{PLINK_PROTOCOL} environment variable
|
||||
|
||||
\IM{-batch-plink} \c{-batch} Plink command-line option
|
||||
\IM{-s-plink} \c{-s} Plink command-line option
|
||||
|
||||
\IM{subsystem} subsystem, SSH
|
||||
\IM{subsystem} SSH subsystem
|
||||
|
||||
\IM{batch file}{batch files} batch files
|
||||
|
||||
\IM{CVS_RSH} \c{CVS_RSH} environment variable
|
||||
|
||||
\IM{DSA} DSA
|
||||
\IM{DSA} Digital Signature Standard
|
||||
|
||||
\IM{public-key algorithm} public-key algorithm
|
||||
\IM{public-key algorithm} asymmetric key algorithm
|
||||
\IM{public-key algorithm} algorithm, public-key
|
||||
|
||||
\IM{generating keys} generating key pairs
|
||||
\IM{generating keys} creating key pairs
|
||||
\IM{generating keys} key pairs, generating
|
||||
\IM{generating keys} public keys, generating
|
||||
\IM{generating keys} private keys, generating
|
||||
|
||||
\IM{authorized_keys file}{authorized_keys} \cw{authorized_keys} file
|
||||
|
||||
\IM{key fingerprint} fingerprint, of SSH authentication key
|
||||
\IM{key fingerprint} public key fingerprint (SSH)
|
||||
\IM{key fingerprint} SSH public key fingerprint
|
||||
|
||||
\IM{SSH-2 public key format} SSH-2 public key file format
|
||||
\IM{SSH-2 public key format} public key file, SSH-2
|
||||
|
||||
\IM{OpenSSH private key format} OpenSSH private key file format
|
||||
\IM{OpenSSH private key format} private key file, OpenSSH
|
||||
|
||||
\IM{ssh.com private key format} \cw{ssh.com} private key file format
|
||||
\IM{ssh.com private key format} private key file, \cw{ssh.com}
|
||||
|
||||
\IM{importing keys} importing private keys
|
||||
\IM{importing keys} loading private keys
|
||||
|
||||
\IM{export private keys} exporting private keys
|
||||
\IM{export private keys} saving private keys
|
||||
|
||||
\IM{.ssh} \c{.ssh} directory
|
||||
|
||||
\IM{.ssh2} \c{.ssh2} directory
|
||||
|
||||
\IM{authentication agent} authentication agent
|
||||
\IM{authentication agent} agent, authentication
|
||||
|
||||
\IM{-c-pageant} \c{-c} Pageant command-line option
|
||||
|
||||
\IM{FAQ} FAQ
|
||||
\IM{FAQ} Frequently Asked Questions
|
||||
|
||||
\IM{supported features} supported features
|
||||
\IM{supported features} features, supported
|
||||
|
||||
\IM{remember my password} storing passwords
|
||||
\IM{remember my password} password, storing
|
||||
|
||||
\IM{login scripts}{startup scripts} login scripts
|
||||
\IM{login scripts}{startup scripts} startup scripts
|
||||
|
||||
\IM{WS2_32.DLL} \cw{WS2_32.DLL}
|
||||
\IM{WS2_32.DLL} WinSock version 2
|
||||
|
||||
\IM{Red Hat Linux} Red Hat Linux
|
||||
\IM{Red Hat Linux} Linux, Red Hat
|
||||
|
||||
\IM{SMB} SMB
|
||||
\IM{SMB} Windows file sharing
|
||||
|
||||
\IM{clean up} clean up after PuTTY
|
||||
\IM{clean up} uninstalling
|
||||
|
||||
\IM{version of PuTTY} version, of PuTTY
|
||||
|
||||
\IM{PGP signatures} PGP signatures, of PuTTY binaries
|
||||
\IM{PGP signatures} signatures, of PuTTY binaries
|
||||
88
puttysrc/DOC/INTRO.BUT
Normal file
88
puttysrc/DOC/INTRO.BUT
Normal file
@@ -0,0 +1,88 @@
|
||||
\define{versionidintro} \versionid $Id: intro.but 5593 2005-04-05 18:01:32Z jacob $
|
||||
|
||||
\C{intro} Introduction to PuTTY
|
||||
|
||||
PuTTY is a free SSH, Telnet and Rlogin client for 32-bit Windows
|
||||
systems.
|
||||
|
||||
\H{you-what} What are SSH, Telnet and Rlogin?
|
||||
|
||||
If you already know what SSH, Telnet and Rlogin are, you can safely
|
||||
skip on to the next section.
|
||||
|
||||
SSH, Telnet and Rlogin are three ways of doing the same thing:
|
||||
logging in to a multi-user computer from another computer, over a
|
||||
network.
|
||||
|
||||
Multi-user operating systems, such as Unix and VMS, usually present
|
||||
a \i{command-line interface} to the user, much like the \q{\i{Command
|
||||
Prompt}} or \q{\i{MS-DOS Prompt}} in Windows. The system prints a
|
||||
prompt, and you type commands which the system will obey.
|
||||
|
||||
Using this type of interface, there is no need for you to be sitting
|
||||
at the same machine you are typing commands to. The commands, and
|
||||
responses, can be sent over a network, so you can sit at one
|
||||
computer and give commands to another one, or even to more than one.
|
||||
|
||||
SSH, Telnet and Rlogin are \i\e{network protocols} that allow you to
|
||||
do this. On the computer you sit at, you run a \i\e{client}, which
|
||||
makes a network connection to the other computer (the \i\e{server}).
|
||||
The network connection carries your keystrokes and commands from the
|
||||
client to the server, and carries the server's responses back to
|
||||
you.
|
||||
|
||||
These protocols can also be used for other types of keyboard-based
|
||||
interactive session. In particular, there are a lot of bulletin
|
||||
boards, \i{talker systems} and \i{MUDs} (Multi-User Dungeons) which support
|
||||
access using Telnet. There are even a few that support SSH.
|
||||
|
||||
You might want to use SSH, Telnet or Rlogin if:
|
||||
|
||||
\b you have an account on a Unix or VMS system which you want to be
|
||||
able to access from somewhere else
|
||||
|
||||
\b your Internet Service Provider provides you with a login account
|
||||
on a \i{web server}. (This might also be known as a \i\e{shell account}.
|
||||
A \e{shell} is the program that runs on the server and interprets
|
||||
your commands for you.)
|
||||
|
||||
\b you want to use a \i{bulletin board system}, talker or MUD which can
|
||||
be accessed using Telnet.
|
||||
|
||||
You probably do \e{not} want to use SSH, Telnet or Rlogin if:
|
||||
|
||||
\b you only use Windows. Windows computers have their own
|
||||
ways of networking between themselves, and unless you are doing
|
||||
something fairly unusual, you will not need to use any of these
|
||||
remote login protocols.
|
||||
|
||||
\H{which-one} How do SSH, Telnet and Rlogin differ?
|
||||
|
||||
This list summarises some of the \i{differences between SSH, Telnet
|
||||
and Rlogin}.
|
||||
|
||||
\b SSH (which stands for \q{\i{secure shell}}) is a recently designed,
|
||||
high-security protocol. It uses strong cryptography to protect your
|
||||
connection against eavesdropping, hijacking and other attacks. Telnet
|
||||
and Rlogin are both older protocols offering minimal security.
|
||||
|
||||
\b SSH and Rlogin both allow you to \I{passwordless login}log in to the
|
||||
server without having to type a password. (Rlogin's method of doing this is
|
||||
insecure, and can allow an attacker to access your account on the
|
||||
server. SSH's method is much more secure, and typically breaking the
|
||||
security requires the attacker to have gained access to your actual
|
||||
client machine.)
|
||||
|
||||
\b SSH allows you to connect to the server and automatically send a
|
||||
command, so that the server will run that command and then
|
||||
disconnect. So you can use it in automated processing.
|
||||
|
||||
The Internet is a hostile environment and security is everybody's
|
||||
responsibility. If you are connecting across the open Internet, then
|
||||
we recommend you use SSH. If the server you want to connect to
|
||||
doesn't support SSH, it might be worth trying to persuade the
|
||||
administrator to install it.
|
||||
|
||||
If your client and server are both behind the same (good) firewall,
|
||||
it is more likely to be safe to use Telnet or Rlogin, but we still
|
||||
recommend you use SSH.
|
||||
29
puttysrc/DOC/LICENCE.BUT
Normal file
29
puttysrc/DOC/LICENCE.BUT
Normal file
@@ -0,0 +1,29 @@
|
||||
\define{versionidlicence} \versionid $Id: licence.but 7048 2007-01-01 21:19:14Z jacob $
|
||||
|
||||
\A{licence} PuTTY \ii{Licence}
|
||||
|
||||
PuTTY is \i{copyright} 1997-2007 Simon Tatham.
|
||||
|
||||
Portions copyright Robert de Bath, Joris van Rantwijk, Delian
|
||||
Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
|
||||
Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus Kuhn,
|
||||
and CORE SDI S.A.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation files
|
||||
(the \q{Software}), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED \q{AS IS}, WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
|
||||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
||||
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
75
puttysrc/DOC/MAKEFILE
Normal file
75
puttysrc/DOC/MAKEFILE
Normal file
@@ -0,0 +1,75 @@
|
||||
all: man index.html
|
||||
|
||||
# Decide on the versionid policy.
|
||||
#
|
||||
# If the user has passed in $(VERSION) on the command line (`make
|
||||
# VERSION="Release 0.56"'), we use that as an explicit version
|
||||
# string. Otherwise, we use `svnversion' to examine the checked-out
|
||||
# documentation source, and if that returns a single revision
|
||||
# number then we invent a version string reflecting just that
|
||||
# number. Failing _that_, we resort to versionids.but which shows a
|
||||
# $Id for each individual file.
|
||||
#
|
||||
# So here, we define VERSION using svnversion if it isn't already
|
||||
# defined ...
|
||||
ifndef VERSION
|
||||
SVNVERSION=$(shell test -d .svn && svnversion .)
|
||||
BADCHARS=$(findstring :,$(SVNVERSION))$(findstring S,$(SVNVERSION))
|
||||
ifeq ($(BADCHARS),)
|
||||
ifneq ($(SVNVERSION),)
|
||||
ifneq ($(SVNVERSION),exported)
|
||||
VERSION=Built from revision $(patsubst M,,$(SVNVERSION))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
# ... and now, we condition our build behaviour on whether or not
|
||||
# VERSION _is_ defined.
|
||||
ifdef VERSION
|
||||
VERSIONIDS=vstr
|
||||
vstr.but: FORCE
|
||||
echo \\versionid $(VERSION) > vstr.but
|
||||
FORCE:;
|
||||
else
|
||||
VERSIONIDS=vids
|
||||
endif
|
||||
|
||||
CHAPTERS := $(SITE) blurb intro gs using config pscp psftp plink pubkey
|
||||
CHAPTERS += pageant errors faq feedback licence udp pgpkeys
|
||||
CHAPTERS += index $(VERSIONIDS)
|
||||
|
||||
INPUTS = $(patsubst %,%.but,$(CHAPTERS))
|
||||
|
||||
# This is temporary. Hack it locally or something.
|
||||
HALIBUT = halibut
|
||||
|
||||
index.html: $(INPUTS)
|
||||
$(HALIBUT) --text --html --winhelp $(INPUTS)
|
||||
|
||||
# During formal builds it's useful to be able to build this one alone.
|
||||
putty.hlp: $(INPUTS)
|
||||
$(HALIBUT) --winhelp $(INPUTS)
|
||||
|
||||
putty.info: $(INPUTS)
|
||||
$(HALIBUT) --info $(INPUTS)
|
||||
|
||||
chm: putty.hhp
|
||||
putty.hhp: $(INPUTS) chm.but
|
||||
$(HALIBUT) --html $(INPUTS) chm.but
|
||||
|
||||
MKMAN = $(HALIBUT) --man=$@ mancfg.but $<
|
||||
MANPAGES = putty.1 puttygen.1 plink.1 pscp.1 psftp.1 puttytel.1 pterm.1
|
||||
man: $(MANPAGES)
|
||||
|
||||
putty.1: man-putt.but mancfg.but; $(MKMAN)
|
||||
puttygen.1: man-pg.but mancfg.but; $(MKMAN)
|
||||
plink.1: man-pl.but mancfg.but; $(MKMAN)
|
||||
pscp.1: man-pscp.but mancfg.but; $(MKMAN)
|
||||
psftp.1: man-psft.but mancfg.but; $(MKMAN)
|
||||
puttytel.1: man-ptel.but mancfg.but; $(MKMAN)
|
||||
pterm.1: man-pter.but mancfg.but; $(MKMAN)
|
||||
|
||||
mostlyclean:
|
||||
rm -f *.html *.txt *.hlp *.cnt *.1 *.info vstr.but *.hh[pck]
|
||||
clean: mostlyclean
|
||||
rm -f *.chm
|
||||
207
puttysrc/DOC/MAN-PG.BUT
Normal file
207
puttysrc/DOC/MAN-PG.BUT
Normal file
@@ -0,0 +1,207 @@
|
||||
\cfg{man-identity}{puttygen}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{puttygen-manpage} Man page for PuTTYgen
|
||||
|
||||
\S{puttygen-manpage-name} NAME
|
||||
|
||||
\cw{puttygen} - public-key generator for the PuTTY tools
|
||||
|
||||
\S{puttygen-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c puttygen ( keyfile | -t keytype [ -b bits ] )
|
||||
\e bbbbbbbb iiiiiii bb iiiiiii bb iiii
|
||||
\c [ -C new-comment ] [ -P ] [ -q ]
|
||||
\e bb iiiiiiiiiii bb bb
|
||||
\c [ -O output-type | -l | -L | -p ]
|
||||
\e bb iiiiiiiiiii bb bb bb
|
||||
\c [ -o output-file ]
|
||||
\e bb iiiiiiiiiii
|
||||
|
||||
\S{puttygen-manpage-description} DESCRIPTION
|
||||
|
||||
\c{puttygen} is a tool to generate and manipulate SSH public and
|
||||
private key pairs. It is part of the PuTTY suite, although it can
|
||||
also interoperate with the private key formats used by some other
|
||||
SSH clients.
|
||||
|
||||
When you run \c{puttygen}, it does three things. Firstly, it either
|
||||
loads an existing key file (if you specified \e{keyfile}), or
|
||||
generates a new key (if you specified \e{keytype}). Then, it
|
||||
optionally makes modifications to the key (changing the comment
|
||||
and/or the passphrase); finally, it outputs the key, or some
|
||||
information about the key, to a file.
|
||||
|
||||
All three of these phases are controlled by the options described in
|
||||
the following section.
|
||||
|
||||
\S{puttygen-manpage-options} OPTIONS
|
||||
|
||||
In the first phase, \c{puttygen} either loads or generates a key.
|
||||
The options to control this are:
|
||||
|
||||
\dt \e{keyfile}
|
||||
|
||||
\dd Specify a private key file to be loaded. This private key file can
|
||||
be in the (de facto standard) SSH-1 key format, or in PuTTY's SSH-2
|
||||
key format, or in either of the SSH-2 private key formats used by
|
||||
OpenSSH and ssh.com's implementation.
|
||||
|
||||
\dt \cw{\-t} \e{keytype}
|
||||
|
||||
\dd Specify a type of key to generate. The acceptable values here are
|
||||
\c{rsa} and \c{dsa} (to generate SSH-2 keys), and \c{rsa1} (to
|
||||
generate SSH-1 keys).
|
||||
|
||||
\dt \cw{\-b} \e{bits}
|
||||
|
||||
\dd Specify the size of the key to generate, in bits. Default is 1024.
|
||||
|
||||
\dt \cw{\-q}
|
||||
|
||||
\dd Suppress the progress display when generating a new key.
|
||||
|
||||
In the second phase, \c{puttygen} optionally alters properties of
|
||||
the key it has loaded or generated. The options to control this are:
|
||||
|
||||
\dt \cw{\-C} \e{new\-comment}
|
||||
|
||||
\dd Specify a comment string to describe the key. This comment string
|
||||
will be used by PuTTY to identify the key to you (when asking you to
|
||||
enter the passphrase, for example, so that you know which passphrase
|
||||
to type).
|
||||
|
||||
\dt \cw{\-P}
|
||||
|
||||
\dd Indicate that you want to change the key's passphrase. This is
|
||||
automatic when you are generating a new key, but not when you are
|
||||
modifying an existing key.
|
||||
|
||||
In the third phase, \c{puttygen} saves the key or information
|
||||
about it. The options to control this are:
|
||||
|
||||
\dt \cw{\-O} \e{output\-type}
|
||||
|
||||
\dd Specify the type of output you want \c{puttygen} to produce.
|
||||
Acceptable options are:
|
||||
|
||||
\lcont{
|
||||
|
||||
\dt \cw{private}
|
||||
|
||||
\dd Save the private key in a format usable by PuTTY. This will either
|
||||
be the standard SSH-1 key format, or PuTTY's own SSH-2 key format.
|
||||
|
||||
\dt \cw{public}
|
||||
|
||||
\dd Save the public key only. For SSH-1 keys, the standard public key
|
||||
format will be used (\q{\cw{1024 37 5698745}...}). For SSH-2 keys, the
|
||||
public key will be output in the format specified by RFC 4716,
|
||||
which is a multi-line text file beginning with the line
|
||||
\q{\cw{---- BEGIN SSH2 PUBLIC KEY ----}}.
|
||||
|
||||
\dt \cw{public-openssh}
|
||||
|
||||
\dd Save the public key only, in a format usable by OpenSSH. For SSH-1
|
||||
keys, this output format behaves identically to \c{public}. For
|
||||
SSH-2 keys, the public key will be output in the OpenSSH format,
|
||||
which is a single line (\q{\cw{ssh-rsa AAAAB3NzaC1yc2}...}).
|
||||
|
||||
\dt \cw{fingerprint}
|
||||
|
||||
\dd Print the fingerprint of the public key. All fingerprinting
|
||||
algorithms are believed compatible with OpenSSH.
|
||||
|
||||
\dt \cw{private-openssh}
|
||||
|
||||
\dd Save an SSH-2 private key in OpenSSH's format. This option is not
|
||||
permitted for SSH-1 keys.
|
||||
|
||||
\dt \cw{private-sshcom}
|
||||
|
||||
\dd Save an SSH-2 private key in ssh.com's format. This option is not
|
||||
permitted for SSH-1 keys.
|
||||
|
||||
If no output type is specified, the default is \c{private}.
|
||||
|
||||
}
|
||||
|
||||
\dt \cw{\-o} \e{output\-file}
|
||||
|
||||
\dd Specify the file where \c{puttygen} should write its output. If
|
||||
this option is not specified, \c{puttygen} will assume you want to
|
||||
overwrite the original file if the input and output file types are
|
||||
the same (changing a comment or passphrase), and will assume you
|
||||
want to output to stdout if you are asking for a public key or
|
||||
fingerprint. Otherwise, the \c{\-o} option is required.
|
||||
|
||||
\dt \cw{\-l}
|
||||
|
||||
\dd Synonym for \q{\cw{-O fingerprint}}.
|
||||
|
||||
\dt \cw{\-L}
|
||||
|
||||
\dd Synonym for \q{\cw{-O public-openssh}}.
|
||||
|
||||
\dt \cw{\-p}
|
||||
|
||||
\dd Synonym for \q{\cw{-O public}}.
|
||||
|
||||
The following options do not run PuTTYgen as normal, but print
|
||||
informational messages and then quit:
|
||||
|
||||
\dt \cw{\-h}, \cw{\-\-help}
|
||||
|
||||
\dd Display a message summarizing the available options.
|
||||
|
||||
\dt \cw{\-V}, \cw{\-\-version}
|
||||
|
||||
\dd Display the version of PuTTYgen.
|
||||
|
||||
\dt \cw{\-\-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys, to aid
|
||||
in verifying new files released by the PuTTY team.
|
||||
|
||||
\S{puttygen-manpage-examples} EXAMPLES
|
||||
|
||||
To generate an SSH-2 RSA key pair and save it in PuTTY's own format
|
||||
(you will be prompted for the passphrase):
|
||||
|
||||
\c puttygen -t rsa -C "my home key" -o mykey.ppk
|
||||
|
||||
To generate a larger (2048-bit) key:
|
||||
|
||||
\c puttygen -t rsa -b 2048 -C "my home key" -o mykey.ppk
|
||||
|
||||
To change the passphrase on a key (you will be prompted for the old
|
||||
and new passphrases):
|
||||
|
||||
\c puttygen -P mykey.ppk
|
||||
|
||||
To change the comment on a key:
|
||||
|
||||
\c puttygen -C "new comment" mykey.ppk
|
||||
|
||||
To convert a key into OpenSSH's private key format:
|
||||
|
||||
\c puttygen mykey.ppk -O private-openssh -o my-openssh-key
|
||||
|
||||
To convert a key \e{from} another format (\c{puttygen} will
|
||||
automatically detect the input key type):
|
||||
|
||||
\c puttygen my-ssh.com-key -o mykey.ppk
|
||||
|
||||
To display the fingerprint of a key (some key types require a
|
||||
passphrase to extract even this much information):
|
||||
|
||||
\c puttygen -l mykey.ppk
|
||||
|
||||
To add the OpenSSH-format public half of a key to your authorised
|
||||
keys file:
|
||||
|
||||
\c puttygen -L mykey.ppk >> $HOME/.ssh/authorized_keys
|
||||
|
||||
\S{puttygen-manpage-bugs} BUGS
|
||||
|
||||
There's currently no way to supply passphrases in batch mode, or
|
||||
even just to specify that you don't want a passphrase at all.
|
||||
158
puttysrc/DOC/MAN-PL.BUT
Normal file
158
puttysrc/DOC/MAN-PL.BUT
Normal file
@@ -0,0 +1,158 @@
|
||||
\cfg{man-identity}{plink}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{plink-manpage} Man page for Plink
|
||||
|
||||
\S{plink-manpage-name} NAME
|
||||
|
||||
\cw{plink} \- PuTTY link, command line network connection tool
|
||||
|
||||
\S{plink-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c plink [options] [user@]host [command]
|
||||
\e bbbbb iiiiiii iiiib iiii iiiiiii
|
||||
|
||||
\S{plink-manpage-description} DESCRIPTION
|
||||
|
||||
\cw{plink} is a network connection tool supporting several protocols.
|
||||
|
||||
\S{plink-manpage-options} OPTIONS
|
||||
|
||||
The command-line options supported by \cw{plink} are:
|
||||
|
||||
\dt \cw{-V}
|
||||
|
||||
\dd Show version information and exit.
|
||||
|
||||
\dt \cw{-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys and exit,
|
||||
to aid in verifying new files released by the PuTTY team.
|
||||
|
||||
\dt \cw{-v}
|
||||
|
||||
\dd Show verbose messages.
|
||||
|
||||
\dt \cw{-load} \e{session}
|
||||
|
||||
\dd Load settings from saved session.
|
||||
|
||||
\dt \cw{-ssh}
|
||||
|
||||
\dd Force use of SSH protocol (default).
|
||||
|
||||
\dt \cw{-telnet}
|
||||
|
||||
\dd Force use of Telnet protocol.
|
||||
|
||||
\dt \cw{-rlogin}
|
||||
|
||||
\dd Force use of rlogin protocol.
|
||||
|
||||
\dt \cw{-raw}
|
||||
|
||||
\dd Force raw mode.
|
||||
|
||||
\dt \cw{-P} \e{port}
|
||||
|
||||
\dd Connect to port \e{port}.
|
||||
|
||||
\dt \cw{-l} \e{user}
|
||||
|
||||
\dd Set remote username to \e{user}.
|
||||
|
||||
\dt \cw{-m} \e{path}
|
||||
|
||||
\dd Read remote command(s) from local file \e{path}.
|
||||
|
||||
\dt \cw{-batch}
|
||||
|
||||
\dd Disable interactive prompts.
|
||||
|
||||
\dt \cw{-pw} \e{password}
|
||||
|
||||
\dd Set remote password to \e{password}. \e{CAUTION:} this will likely
|
||||
make the password visible to other users of the local machine (via
|
||||
commands such as \q{\c{w}}).
|
||||
|
||||
\dt \cw{\-L} \cw{[}\e{srcaddr}\cw{:]}\e{srcport}\cw{:}\e{desthost}\cw{:}\e{destport}
|
||||
|
||||
\dd Set up a local port forwarding: listen on \e{srcport} (or
|
||||
\e{srcaddr}:\e{srcport} if specified), and forward any connections
|
||||
over the SSH connection to the destination address
|
||||
\e{desthost}:\e{destport}. Only works in SSH.
|
||||
|
||||
\dt \cw{\-R} \cw{[}\e{srcaddr}\cw{:]}\e{srcport}\cw{:}\e{desthost}\cw{:}\e{destport}
|
||||
|
||||
\dd Set up a remote port forwarding: ask the SSH server to listen on
|
||||
\e{srcport} (or \e{srcaddr}:\e{srcport} if specified), and to
|
||||
forward any connections back over the SSH connection where the
|
||||
client will pass them on to the destination address
|
||||
\e{desthost}:\e{destport}. Only works in SSH.
|
||||
|
||||
\dt \cw{\-D} [\e{srcaddr}:]\e{srcport}
|
||||
|
||||
\dd Set up dynamic port forwarding. The client listens on
|
||||
\e{srcport} (or \e{srcaddr}:\e{srcport} if specified), and
|
||||
implements a SOCKS server. So you can point SOCKS-aware applications
|
||||
at this port and they will automatically use the SSH connection to
|
||||
tunnel all their connections. Only works in SSH.
|
||||
|
||||
\dt \cw{-X}
|
||||
|
||||
\dd Enable X11 forwarding.
|
||||
|
||||
\dt \cw{-x}
|
||||
|
||||
\dd Disable X11 forwarding (default).
|
||||
|
||||
\dt \cw{-A}
|
||||
|
||||
\dd Enable agent forwarding.
|
||||
|
||||
\dt \cw{-a}
|
||||
|
||||
\dd Disable agent forwarding (default).
|
||||
|
||||
\dt \cw{-t}
|
||||
|
||||
\dd Enable pty allocation (default if a command is NOT specified).
|
||||
|
||||
\dt \cw{-T}
|
||||
|
||||
\dd Disable pty allocation (default if a command is specified).
|
||||
|
||||
\dt \cw{-1}
|
||||
|
||||
\dd Force use of SSH protocol version 1.
|
||||
|
||||
\dt \cw{-2}
|
||||
|
||||
\dd Force use of SSH protocol version 2.
|
||||
|
||||
\dt \cw{-C}
|
||||
|
||||
\dd Enable SSH compression.
|
||||
|
||||
\dt \cw{-i} \e{path}
|
||||
|
||||
\dd Private key file for authentication.
|
||||
|
||||
\dt \cw{-s}
|
||||
|
||||
\dd Remote command is SSH subsystem (SSH-2 only).
|
||||
|
||||
\dt \cw{-N}
|
||||
|
||||
\dd Don't start a remote command or shell at all (SSH-2 only).
|
||||
|
||||
\S{plink-manpage-more-information} MORE INFORMATION
|
||||
|
||||
For more information on plink, it's probably best to go and look at
|
||||
the manual on the PuTTY web page:
|
||||
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/}\cw{http://www.chiark.greenend.org.uk/~sgtatham/putty/}
|
||||
|
||||
\S{plink-manpage-bugs} BUGS
|
||||
|
||||
This man page isn't terribly complete. See the above web link for
|
||||
better documentation.
|
||||
116
puttysrc/DOC/MAN-PSCP.BUT
Normal file
116
puttysrc/DOC/MAN-PSCP.BUT
Normal file
@@ -0,0 +1,116 @@
|
||||
\cfg{man-identity}{pscp}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{pscp-manpage} Man page for PSCP
|
||||
|
||||
\S{pscp-manpage-name} NAME
|
||||
|
||||
\cw{pscp} \- command-line SCP (secure copy) / SFTP client
|
||||
|
||||
\S{pscp-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c pscp [options] [user@]host:source target
|
||||
\e bbbb iiiiiii iiiib iiiibiiiiii iiiiii
|
||||
\c pscp [options] source [source...] [user@]host:target
|
||||
\e bbbb iiiiiii iiiiii iiiiii iiiib iiiibiiiiii
|
||||
\c pscp [options] -ls [user@]host:filespec
|
||||
\e bbbb iiiiiii bbb iiiib iiiibiiiiiiii
|
||||
|
||||
\S{pscp-manpage-description} DESCRIPTION
|
||||
|
||||
\cw{pscp} is a command-line client for the SSH-based SCP (secure
|
||||
copy) and SFTP (secure file transfer protocol) protocols.
|
||||
|
||||
\S{pscp-manpage-options} OPTIONS
|
||||
|
||||
The command-line options supported by \e{pscp} are:
|
||||
|
||||
\dt \cw{-V}
|
||||
|
||||
\dd Show version information and exit.
|
||||
|
||||
\dt \cw{-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys and exit,
|
||||
to aid in verifying new files released by the PuTTY team.
|
||||
|
||||
\dt \cw{-ls}
|
||||
|
||||
\dd Remote directory listing.
|
||||
|
||||
\dt \cw{-p}
|
||||
|
||||
\dd Preserve file attributes.
|
||||
|
||||
\dt \cw{-q}
|
||||
|
||||
\dd Quiet, don't show statistics.
|
||||
|
||||
\dt \cw{-r}
|
||||
|
||||
\dd Copy directories recursively.
|
||||
|
||||
\dt \cw{-unsafe}
|
||||
|
||||
\dd Allow server-side wildcards (DANGEROUS).
|
||||
|
||||
\dt \cw{-v}
|
||||
|
||||
\dd Show verbose messages.
|
||||
|
||||
\dt \cw{-load} \e{session}
|
||||
|
||||
\dd Load settings from saved session.
|
||||
|
||||
\dt \cw{-P} \e{port}
|
||||
|
||||
\dd Connect to port \e{port}.
|
||||
|
||||
\dt \cw{-l} \e{user}
|
||||
|
||||
\dd Set remote username to \e{user}.
|
||||
|
||||
\dt \cw{-batch}
|
||||
|
||||
\dd Disable interactive prompts.
|
||||
|
||||
\dt \cw{-pw} \e{password}
|
||||
|
||||
\dd Set remote password to \e{password}. \e{CAUTION:} this will likely
|
||||
make the password visible to other users of the local machine (via
|
||||
commands such as \q{\c{w}}).
|
||||
|
||||
\dt \cw{-1}
|
||||
|
||||
\dd Force use of SSH protocol version 1.
|
||||
|
||||
\dt \cw{-2}
|
||||
|
||||
\dd Force use of SSH protocol version 2.
|
||||
|
||||
\dt \cw{-C}
|
||||
|
||||
\dd Enable SSH compression.
|
||||
|
||||
\dt \cw{-i} \e{path}
|
||||
|
||||
\dd Private key file for authentication.
|
||||
|
||||
\dt \cw{-scp}
|
||||
|
||||
\dd Force use of SCP protocol.
|
||||
|
||||
\dt \cw{-sftp}
|
||||
|
||||
\dd Force use of SFTP protocol.
|
||||
|
||||
\S{pscp-manpage-more-information} MORE INFORMATION
|
||||
|
||||
For more information on \cw{pscp} it's probably best to go and look at
|
||||
the manual on the PuTTY web page:
|
||||
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/}\cw{http://www.chiark.greenend.org.uk/~sgtatham/putty/}
|
||||
|
||||
\S{pscp-manpage-bugs} BUGS
|
||||
|
||||
This man page isn't terribly complete. See the above web link for
|
||||
better documentation.
|
||||
101
puttysrc/DOC/MAN-PSFT.BUT
Normal file
101
puttysrc/DOC/MAN-PSFT.BUT
Normal file
@@ -0,0 +1,101 @@
|
||||
\cfg{man-identity}{psftp}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{psftp-manpage} Man page for PSFTP
|
||||
|
||||
\S{psftp-manpage-name} NAME
|
||||
|
||||
\cw{psftp} \- interactive SFTP (secure file transfer protocol) client
|
||||
|
||||
\S{psftp-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c psftp [options] [user@]host
|
||||
\e bbbbb iiiiiii iiiib iiii
|
||||
|
||||
\S{psftp-manpage-description} DESCRIPTION
|
||||
|
||||
\cw{psftp} is an interactive text-based client for the SSH-based SFTP
|
||||
(secure file transfer) protocol.
|
||||
|
||||
\S{psftp-manpage-options} OPTIONS
|
||||
|
||||
The command-line options supported by \cw{psftp} are:
|
||||
|
||||
\dt \cw{-V}
|
||||
|
||||
\dd Show version information and exit.
|
||||
|
||||
\dt \cw{-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys and exit,
|
||||
to aid in verifying new files released by the PuTTY team.
|
||||
|
||||
\dt \cw{-b} \e{batchfile}
|
||||
|
||||
\dd Use specified batchfile.
|
||||
|
||||
\dt \cw{-bc}
|
||||
|
||||
\dd Output batchfile commands.
|
||||
|
||||
\dt \cw{-be}
|
||||
|
||||
\dd Don't stop batchfile processing on errors.
|
||||
|
||||
\dt \cw{-v}
|
||||
|
||||
\dd Show verbose messages.
|
||||
|
||||
\dt \cw{-load} \e{session}
|
||||
|
||||
\dd Load settings from saved session.
|
||||
|
||||
\dt \cw{-P} \e{port}
|
||||
|
||||
\dd Connect to port \e{port}.
|
||||
|
||||
\dt \cw{-l} \e{user}
|
||||
|
||||
\dd Set remote username to \e{user}.
|
||||
|
||||
\dt \cw{-batch}
|
||||
|
||||
\dd Disable interactive prompts.
|
||||
|
||||
\dt \cw{-pw} \e{password}
|
||||
|
||||
\dd Set remote password to \e{password}. \e{CAUTION:} this will likely
|
||||
make the password visible to other users of the local machine (via
|
||||
commands such as \q{\c{w}}).
|
||||
|
||||
\dt \cw{-1}
|
||||
|
||||
\dd Force use of SSH protocol version 1.
|
||||
|
||||
\dt \cw{-2}
|
||||
|
||||
\dd Force use of SSH protocol version 2.
|
||||
|
||||
\dt \cw{-C}
|
||||
|
||||
\dd Enable SSH compression.
|
||||
|
||||
\dt \cw{-i} \e{path}
|
||||
|
||||
\dd Private key file for authentication.
|
||||
|
||||
\S{psftp-manpage-commands} COMMANDS
|
||||
|
||||
For a list of commands available inside \cw{psftp}, type \cw{help}
|
||||
at the \cw{psftp>} prompt.
|
||||
|
||||
\S{psftp-manpage-more-information} MORE INFORMATION
|
||||
|
||||
For more information on \cw{psftp} it's probably best to go and look at
|
||||
the manual on the PuTTY web page:
|
||||
|
||||
\cw{http://www.chiark.greenend.org.uk/~sgtatham/putty/}
|
||||
|
||||
\S{psftp-manpage-bugs} BUGS
|
||||
|
||||
This man page isn't terribly complete. See the above web link for
|
||||
better documentation.
|
||||
189
puttysrc/DOC/MAN-PTEL.BUT
Normal file
189
puttysrc/DOC/MAN-PTEL.BUT
Normal file
@@ -0,0 +1,189 @@
|
||||
\cfg{man-identity}{puttytel}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{puttytel-manpage} Man page for PuTTYtel
|
||||
|
||||
\S{puttytel-manpage-name} NAME
|
||||
|
||||
\cw{puttytel} \- GUI Telnet and Rlogin client for X
|
||||
|
||||
\S{puttytel-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c puttytel [ options ] [ host ]
|
||||
\e bbbbbbbb iiiiiii iiii
|
||||
|
||||
\S{puttytel-manpage-description} DESCRIPTION
|
||||
|
||||
\cw{puttytel} is a graphical Telnet and Rlogin client for X. It
|
||||
is a direct port of the Windows Telnet and Rlogin client of the same
|
||||
name, and a cut-down cryptography-free version of PuTTY.
|
||||
|
||||
\S{puttytel-manpage-options} OPTIONS
|
||||
|
||||
The command-line options supported by \cw{puttytel} are:
|
||||
|
||||
\dt \cw{\-\-display} \e{display\-name}
|
||||
|
||||
\dd Specify the X display on which to open \cw{puttytel}. (Note this
|
||||
option has a double minus sign, even though none of the others do.
|
||||
This is because this option is supplied automatically by GTK.
|
||||
Sorry.)
|
||||
|
||||
\dt \cw{\-fn} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for normal text displayed in the terminal.
|
||||
|
||||
\dt \cw{\-fb} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for bold text displayed in the terminal. If
|
||||
the \cw{BoldAsColour} resource is set to 1 (the default), bold text
|
||||
will be displayed in different colours instead of a different font,
|
||||
so this option will be ignored. If \cw{BoldAsColour} is set to 0
|
||||
and you do not specify a bold font, \cw{puttytel} will overprint the
|
||||
normal font to make it look bolder.
|
||||
|
||||
\dt \cw{\-fw} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for double-width characters (typically
|
||||
Chinese, Japanese and Korean text) displayed in the terminal.
|
||||
|
||||
\dt \cw{\-fwb} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for bold double-width characters
|
||||
(typically Chinese, Japanese and Korean text). Like \cw{-fb}, this
|
||||
will be ignored unless the \cw{BoldAsColour} resource is set to 0.
|
||||
|
||||
\dt \cw{\-geometry} \e{geometry}
|
||||
|
||||
\dd Specify the size of the terminal, in rows and columns of text. See
|
||||
\e{X(7)} for more information on the syntax of geometry
|
||||
specifications.
|
||||
|
||||
\dt \cw{\-sl} \e{lines}
|
||||
|
||||
\dd Specify the number of lines of scrollback to save off the top of the
|
||||
terminal.
|
||||
|
||||
\dt \cw{\-fg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for normal text.
|
||||
|
||||
\dt \cw{\-bg} \e{colour}
|
||||
|
||||
\dd Specify the background colour to use for normal text.
|
||||
|
||||
\dt \cw{\-bfg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for bold text, if the
|
||||
\cw{BoldAsColour} resource is set to 1 (the default).
|
||||
|
||||
\dt \cw{\-bbg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for bold reverse-video text, if
|
||||
the \cw{BoldAsColour} resource is set to 1 (the default). (This
|
||||
colour is best thought of as the bold version of the background
|
||||
colour; so it only appears when text is displayed \e{in} the
|
||||
background colour.)
|
||||
|
||||
\dt \cw{\-cfg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for text covered by the cursor.
|
||||
|
||||
\dt \cw{\-cbg} \e{colour}
|
||||
|
||||
\dd Specify the background colour to use for text covered by the cursor.
|
||||
In other words, this is the main colour of the cursor.
|
||||
|
||||
\dt \cw{\-title} \e{title}
|
||||
|
||||
\dd Specify the initial title of the terminal window. (This can be
|
||||
changed under control of the server.)
|
||||
|
||||
\dt \cw{\-sb\-} or \cw{+sb}
|
||||
|
||||
\dd Tells \cw{puttytel} not to display a scroll bar.
|
||||
|
||||
\dt \cw{\-sb}
|
||||
|
||||
\dd Tells \cw{puttytel} to display a scroll bar: this is the opposite of
|
||||
\cw{\-sb\-}. This is the default option: you will probably only need
|
||||
to specify it explicitly if you have changed the default using the
|
||||
\cw{ScrollBar} resource.
|
||||
|
||||
\dt \cw{\-log} \e{filename}
|
||||
|
||||
\dd This option makes \cw{puttytel} log all the terminal output to a file
|
||||
as well as displaying it in the terminal.
|
||||
|
||||
\dt \cw{\-cs} \e{charset}
|
||||
|
||||
\dd This option specifies the character set in which \cw{puttytel}
|
||||
should assume the session is operating. This character set will be
|
||||
used to interpret all the data received from the session, and all
|
||||
input you type or paste into \cw{puttytel} will be converted into
|
||||
this character set before being sent to the session.
|
||||
|
||||
\lcont{ Any character set name which is valid in a MIME header (and
|
||||
supported by \cw{puttytel}) should be valid here (examples are
|
||||
\q{\cw{ISO-8859-1}}, \q{\cw{windows-1252}} or \q{\cw{UTF-8}}). Also,
|
||||
any character encoding which is valid in an X logical font
|
||||
description should be valid (\q{\cw{ibm-cp437}}, for example).
|
||||
|
||||
\cw{puttytel}'s default behaviour is to use the same character
|
||||
encoding as its primary font. If you supply a Unicode
|
||||
(\cw{iso10646-1}) font, it will default to the UTF-8 character set.
|
||||
|
||||
Character set names are case-insensitive.
|
||||
}
|
||||
|
||||
\dt \cw{\-nethack}
|
||||
|
||||
\dd Tells \cw{puttytel} to enable NetHack keypad mode, in which the
|
||||
numeric keypad generates the NetHack \c{hjklyubn} direction keys.
|
||||
This enables you to play NetHack with the numeric keypad without
|
||||
having to use the NetHack \c{number_pad} option (which requires you
|
||||
to press \q{\cw{n}} before any repeat count). So you can move with
|
||||
the numeric keypad, and enter repeat counts with the normal number
|
||||
keys.
|
||||
|
||||
\dt \cw{\-help}, \cw{\-\-help}
|
||||
|
||||
\dd Display a message summarizing the available options.
|
||||
|
||||
\dt \cw{\-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys, to aid
|
||||
in verifying new files released by the PuTTY team.
|
||||
|
||||
\dt \cw{\-load} \e{session}
|
||||
|
||||
\dd Load a saved session by name. This allows you to run a saved session
|
||||
straight from the command line without having to go through the
|
||||
configuration box first.
|
||||
|
||||
\dt \cw{\-telnet}, \cw{\-rlogin}, \cw{\-raw}
|
||||
|
||||
\dd Select the protocol \cw{puttytel} will use to make the connection.
|
||||
|
||||
\dt \cw{\-l} \e{username}
|
||||
|
||||
\dd Specify the username to use when logging in to the server.
|
||||
|
||||
\dt \cw{\-P} \e{port}
|
||||
|
||||
\dd Specify the port to connect to the server on.
|
||||
|
||||
\S{puttytel-manpage-saved-sessions} SAVED SESSIONS
|
||||
|
||||
Saved sessions are stored in a \cw{.putty/sessions} subdirectory in
|
||||
your home directory.
|
||||
|
||||
\S{puttytel-manpage-more-information} MORE INFORMATION
|
||||
|
||||
For more information on PuTTY and PuTTYtel, it's probably best to go
|
||||
and look at the manual on the web page:
|
||||
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/}\cw{http://www.chiark.greenend.org.uk/~sgtatham/putty/}
|
||||
|
||||
\S{puttytel-manpage-bugs} BUGS
|
||||
|
||||
This man page isn't terribly complete.
|
||||
676
puttysrc/DOC/MAN-PTER.BUT
Normal file
676
puttysrc/DOC/MAN-PTER.BUT
Normal file
@@ -0,0 +1,676 @@
|
||||
\cfg{man-identity}{pterm}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{pterm-manpage} Man page for pterm
|
||||
|
||||
\S{pterm-manpage-name} NAME
|
||||
|
||||
pterm \- yet another X terminal emulator
|
||||
|
||||
\S{pterm-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c pterm [ options ]
|
||||
\e bbbbb iiiiiii
|
||||
|
||||
\S{pterm-manpage-description} DESCRIPTION
|
||||
|
||||
\cw{pterm} is a terminal emulator for X. It is based on a port of
|
||||
the terminal emulation engine in the Windows SSH client PuTTY.
|
||||
|
||||
\S{pterm-manpage-options} OPTIONS
|
||||
|
||||
The command-line options supported by \cw{pterm} are:
|
||||
|
||||
\dt \cw{\-e} \e{command} [ \e{arguments} ]
|
||||
|
||||
\dd Specify a command to be executed in the new terminal. Everything on
|
||||
the command line after this option will be passed straight to the
|
||||
\cw{execvp} system call; so if you need the command to redirect its
|
||||
input or output, you will have to use \cw{sh}:
|
||||
|
||||
\lcont{
|
||||
|
||||
\c pterm -e sh -c 'mycommand < inputfile'
|
||||
|
||||
}
|
||||
|
||||
\dt \cw{\-\-display} \e{display\-name}
|
||||
|
||||
\dd Specify the X display on which to open \cw{pterm}. (Note this
|
||||
option has a double minus sign, even though none of the others do.
|
||||
This is because this option is supplied automatically by GTK.
|
||||
Sorry.)
|
||||
|
||||
\dt \cw{\-name} \e{font-name}
|
||||
|
||||
\dd Specify the name under which \cw{pterm} looks up X resources.
|
||||
Normally it will look them up as (for example) \cw{pterm.Font}. If
|
||||
you specify \q{\cw{\-name xyz}}, it will look them up as
|
||||
\cw{xyz.Font} instead. This allows you to set up several different
|
||||
sets of defaults and choose between them.
|
||||
|
||||
\dt \cw{\-fn} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for normal text displayed in the terminal.
|
||||
|
||||
\dt \cw{\-fb} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for bold text displayed in the terminal. If
|
||||
the \cw{BoldAsColour} resource is set to 1 (the default), bold text
|
||||
will be displayed in different colours instead of a different font,
|
||||
so this option will be ignored. If \cw{BoldAsColour} is set to 0
|
||||
and you do not specify a bold font, \cw{pterm} will overprint the
|
||||
normal font to make it look bolder.
|
||||
|
||||
\dt \cw{\-fw} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for double-width characters (typically
|
||||
Chinese, Japanese and Korean text) displayed in the terminal.
|
||||
|
||||
\dt \cw{\-fwb} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for bold double-width characters
|
||||
(typically Chinese, Japanese and Korean text). Like \cw{-fb}, this
|
||||
will be ignored unless the \cw{BoldAsColour} resource is set to 0.
|
||||
|
||||
\dt \cw{\-geometry} \e{geometry}
|
||||
|
||||
\dd Specify the size of the terminal, in rows and columns of text. See
|
||||
\e{X(7)} for more information on the syntax of geometry
|
||||
specifications.
|
||||
|
||||
\dt \cw{\-sl} \e{lines}
|
||||
|
||||
\dd Specify the number of lines of scrollback to save off the top of the
|
||||
terminal.
|
||||
|
||||
\dt \cw{\-fg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for normal text.
|
||||
|
||||
\dt \cw{\-bg} \e{colour}
|
||||
|
||||
\dd Specify the background colour to use for normal text.
|
||||
|
||||
\dt \cw{\-bfg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for bold text, if the
|
||||
\cw{BoldAsColour} resource is set to 1 (the default).
|
||||
|
||||
\dt \cw{\-bbg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for bold reverse-video text, if
|
||||
the \cw{BoldAsColour} resource is set to 1 (the default). (This
|
||||
colour is best thought of as the bold version of the background
|
||||
colour; so it only appears when text is displayed \e{in} the
|
||||
background colour.)
|
||||
|
||||
\dt \cw{\-cfg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for text covered by the cursor.
|
||||
|
||||
\dt \cw{\-cbg} \e{colour}
|
||||
|
||||
\dd Specify the background colour to use for text covered by the cursor.
|
||||
In other words, this is the main colour of the cursor.
|
||||
|
||||
\dt \cw{\-title} \e{title}
|
||||
|
||||
\dd Specify the initial title of the terminal window. (This can be
|
||||
changed under control of the server.)
|
||||
|
||||
\dt \cw{\-ut\-} or \cw{+ut}
|
||||
|
||||
\dd Tells \cw{pterm} not to record your login in the \cw{utmp},
|
||||
\cw{wtmp} and \cw{lastlog} system log files; so you will not show
|
||||
up on \cw{finger} or \cw{who} listings, for example.
|
||||
|
||||
\dt \cw{\-ut}
|
||||
|
||||
\dd Tells \cw{pterm} to record your login in \cw{utmp}, \cw{wtmp} and
|
||||
\cw{lastlog}: this is the opposite of \cw{\-ut\-}. This is the
|
||||
default option: you will probably only need to specify it explicitly
|
||||
if you have changed the default using the \cw{StampUtmp} resource.
|
||||
|
||||
\dt \cw{\-ls\-} or \cw{+ls}
|
||||
|
||||
\dd Tells \cw{pterm} not to execute your shell as a login shell.
|
||||
|
||||
\dt \cw{\-ls}
|
||||
|
||||
\dd Tells \cw{pterm} to execute your shell as a login shell: this is
|
||||
the opposite of \cw{\-ls\-}. This is the default option: you will
|
||||
probably only need to specify it explicitly if you have changed the
|
||||
default using the \cw{LoginShell} resource.
|
||||
|
||||
\dt \cw{\-sb\-} or \cw{+sb}
|
||||
|
||||
\dd Tells \cw{pterm} not to display a scroll bar.
|
||||
|
||||
\dt \cw{\-sb}
|
||||
|
||||
\dd Tells \cw{pterm} to display a scroll bar: this is the opposite of
|
||||
\cw{\-sb\-}. This is the default option: you will probably only need
|
||||
to specify it explicitly if you have changed the default using the
|
||||
\cw{ScrollBar} resource.
|
||||
|
||||
\dt \cw{\-log} \e{filename}
|
||||
|
||||
\dd This option makes \cw{pterm} log all the terminal output to a file
|
||||
as well as displaying it in the terminal.
|
||||
|
||||
\dt \cw{\-cs} \e{charset}
|
||||
|
||||
\dd This option specifies the character set in which \cw{pterm} should
|
||||
assume the session is operating. This character set will be used to
|
||||
interpret all the data received from the session, and all input you
|
||||
type or paste into \cw{pterm} will be converted into this character
|
||||
set before being sent to the session.
|
||||
|
||||
\lcont{ Any character set name which is valid in a MIME header (and
|
||||
supported by \cw{pterm}) should be valid here (examples are
|
||||
\q{\cw{ISO-8859-1}}, \q{\cw{windows-1252}} or \q{\cw{UTF-8}}). Also,
|
||||
any character encoding which is valid in an X logical font
|
||||
description should be valid (\q{\cw{ibm-cp437}}, for example).
|
||||
|
||||
\cw{pterm}'s default behaviour is to use the same character encoding
|
||||
as its primary font. If you supply a Unicode (\cw{iso10646-1}) font,
|
||||
it will default to the UTF-8 character set.
|
||||
|
||||
Character set names are case-insensitive.
|
||||
}
|
||||
|
||||
\dt \cw{\-nethack}
|
||||
|
||||
\dd Tells \cw{pterm} to enable NetHack keypad mode, in which the
|
||||
numeric keypad generates the NetHack \c{hjklyubn} direction keys.
|
||||
This enables you to play NetHack with the numeric keypad without
|
||||
having to use the NetHack \c{number_pad} option (which requires you
|
||||
to press \q{\cw{n}} before any repeat count). So you can move with
|
||||
the numeric keypad, and enter repeat counts with the normal number
|
||||
keys.
|
||||
|
||||
\dt \cw{\-xrm} \e{resource-string}
|
||||
|
||||
\dd This option specifies an X resource string. Useful for setting
|
||||
resources which do not have their own command-line options. For
|
||||
example:
|
||||
|
||||
\lcont{
|
||||
|
||||
\c pterm -xrm 'ScrollbarOnLeft: 1'
|
||||
|
||||
}
|
||||
|
||||
\dt \cw{\-help}, \cw{\-\-help}
|
||||
|
||||
\dd Display a message summarizing the available options.
|
||||
|
||||
\dt \cw{\-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys, to aid
|
||||
in verifying new files released by the PuTTY team.
|
||||
|
||||
\S{pterm-manpage-x-resources} X RESOURCES
|
||||
|
||||
\cw{pterm} can be more completely configured by means of X
|
||||
resources. All of these resources are of the form \cw{pterm.FOO} for
|
||||
some \cw{FOO}; you can make \cw{pterm} look them up under another
|
||||
name, such as \cw{xyz.FOO}, by specifying the command-line option
|
||||
\q{\cw{\-name xyz}}.
|
||||
|
||||
\dt \cw{pterm.CloseOnExit}
|
||||
|
||||
\dd This option should be set to 0, 1 or 2; the default is 2. It
|
||||
controls what \cw{pterm} does when the process running inside it
|
||||
terminates. When set to 2 (the default), \cw{pterm} will close its
|
||||
window as soon as the process inside it terminates. When set to 0,
|
||||
\cw{pterm} will print the process's exit status, and the window
|
||||
will remain present until a key is pressed (allowing you to inspect
|
||||
the scrollback, and copy and paste text out of it).
|
||||
|
||||
\lcont{
|
||||
|
||||
When this setting is set to 1, \cw{pterm} will close
|
||||
immediately if the process exits cleanly (with an exit status of
|
||||
zero), but the window will stay around if the process exits with a
|
||||
non-zero code or on a signal. This enables you to see what went
|
||||
wrong if the process suffers an error, but not to have to bother
|
||||
closing the window in normal circumstances.
|
||||
|
||||
}
|
||||
|
||||
\dt \cw{pterm.WarnOnClose}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1.
|
||||
When set to 1, \cw{pterm} will ask for confirmation before closing
|
||||
its window when you press the close button.
|
||||
|
||||
\dt \cw{pterm.TerminalType}
|
||||
|
||||
\dd This controls the value set in the \cw{TERM} environment
|
||||
variable inside the new terminal. The default is \q{\cw{xterm}}.
|
||||
|
||||
\dt \cw{pterm.BackspaceIsDelete}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1.
|
||||
When set to 0, the ordinary Backspace key generates the Backspace
|
||||
character (\cw{^H}); when set to 1, it generates the Delete
|
||||
character (\cw{^?}). Whichever one you set, the terminal device
|
||||
inside \cw{pterm} will be set up to expect it.
|
||||
|
||||
\dt \cw{pterm.RXVTHomeEnd}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
it is set to 1, the Home and End keys generate the control sequences
|
||||
they would generate in the \cw{rxvt} terminal emulator, instead of
|
||||
the more usual ones generated by other emulators.
|
||||
|
||||
\dt \cw{pterm.LinuxFunctionKeys}
|
||||
|
||||
\dd This option can be set to any number between 0 and 5 inclusive;
|
||||
the default is 0. The modes vary the control sequences sent by the
|
||||
function keys; for more complete documentation, it is probably
|
||||
simplest to try each option in \q{\cw{pterm \-e cat}}, and press the
|
||||
keys to see what they generate.
|
||||
|
||||
\dt \cw{pterm.NoApplicationKeys}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, it stops the server from ever switching the numeric keypad
|
||||
into application mode (where the keys send function-key-like
|
||||
sequences instead of numbers or arrow keys). You probably only need
|
||||
this if some application is making a nuisance of itself.
|
||||
|
||||
\dt \cw{pterm.NoApplicationCursors}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, it stops the server from ever switching the cursor keys
|
||||
into application mode (where the keys send slightly different
|
||||
sequences). You probably only need this if some application is
|
||||
making a nuisance of itself.
|
||||
|
||||
\dt \cw{pterm.NoMouseReporting}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, it stops the server from ever enabling mouse reporting
|
||||
mode (where mouse clicks are sent to the application instead of
|
||||
controlling cut and paste).
|
||||
|
||||
\dt \cw{pterm.NoRemoteResize}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, it stops the server from being able to remotely control
|
||||
the size of the \cw{pterm} window.
|
||||
|
||||
\dt \cw{pterm.NoAltScreen}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, it stops the server from using the \q{alternate screen}
|
||||
terminal feature, which lets full-screen applications leave the
|
||||
screen exactly the way they found it.
|
||||
|
||||
\dt \cw{pterm.NoRemoteWinTitle}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, it stops the server from remotely controlling the title of
|
||||
the \cw{pterm} window.
|
||||
|
||||
\dt \cw{pterm.NoRemoteQTitle}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 1, it stops the server from remotely requesting the title of
|
||||
the \cw{pterm} window.
|
||||
|
||||
\lcont{
|
||||
This feature is a \e{POTENTIAL SECURITY HAZARD}. If a malicious
|
||||
application can write data to your terminal (for example, if you
|
||||
merely \cw{cat} a file owned by someone else on the server
|
||||
machine), it can change your window title (unless you have disabled
|
||||
this using the \cw{NoRemoteWinTitle} resource) and then use this
|
||||
service to have the new window title sent back to the server as if
|
||||
typed at the keyboard. This allows an attacker to fake keypresses
|
||||
and potentially cause your server-side applications to do things you
|
||||
didn't want. Therefore this feature is disabled by default, and we
|
||||
recommend you do not turn it on unless you \e{really} know what
|
||||
you are doing.
|
||||
}
|
||||
|
||||
\dt \cw{pterm.NoDBackspace}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0.
|
||||
When set to 1, it disables the normal action of the Delete (\cw{^?})
|
||||
character when sent from the server to the terminal, which is to
|
||||
move the cursor left by one space and erase the character now under
|
||||
it.
|
||||
|
||||
\dt \cw{pterm.ApplicationCursorKeys}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, the default initial state of the cursor keys are
|
||||
application mode (where the keys send function-key-like sequences
|
||||
instead of numbers or arrow keys). When set to 0, the default state
|
||||
is the normal one.
|
||||
|
||||
\dt \cw{pterm.ApplicationKeypad}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, the default initial state of the numeric keypad is
|
||||
application mode (where the keys send function-key-like sequences
|
||||
instead of numbers or arrow keys). When set to 0, the default state
|
||||
is the normal one.
|
||||
|
||||
\dt \cw{pterm.NetHackKeypad}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, the numeric keypad operates in NetHack mode. This is
|
||||
equivalent to the \cw{\-nethack} command-line option.
|
||||
|
||||
\dt \cw{pterm.Answerback}
|
||||
|
||||
\dd This option controls the string which the terminal sends in
|
||||
response to receiving the \cw{^E} character (\q{tell me about
|
||||
yourself}). By default this string is \q{\cw{PuTTY}}.
|
||||
|
||||
\dt \cw{pterm.HideMousePtr}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
it is set to 1, the mouse pointer will disappear if it is over the
|
||||
\cw{pterm} window and you press a key. It will reappear as soon as
|
||||
you move it.
|
||||
|
||||
\dt \cw{pterm.WindowBorder}
|
||||
|
||||
\dd This option controls the number of pixels of space between the text
|
||||
in the \cw{pterm} window and the window frame. The default is 1.
|
||||
You can increase this value, but decreasing it to 0 is not
|
||||
recommended because it can cause the window manager's size hints to
|
||||
work incorrectly.
|
||||
|
||||
\dt \cw{pterm.CurType}
|
||||
|
||||
\dd This option should be set to either 0, 1 or 2; the default is 0.
|
||||
When set to 0, the text cursor displayed in the window is a
|
||||
rectangular block. When set to 1, the cursor is an underline; when
|
||||
set to 2, it is a vertical line.
|
||||
|
||||
\dt \cw{pterm.BlinkCur}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
it is set to 1, the text cursor will blink when the window is active.
|
||||
|
||||
\dt \cw{pterm.Beep}
|
||||
|
||||
\dd This option should be set to either 0 or 2 (yes, 2); the default
|
||||
is 0. When it is set to 2, \cw{pterm} will respond to a bell
|
||||
character (\cw{^G}) by flashing the window instead of beeping.
|
||||
|
||||
\dt \cw{pterm.BellOverload}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
it is set to 1, \cw{pterm} will watch out for large numbers of
|
||||
bells arriving in a short time and will temporarily disable the bell
|
||||
until they stop. The idea is that if you \cw{cat} a binary file,
|
||||
the frantic beeping will mostly be silenced by this feature and will
|
||||
not drive you crazy.
|
||||
|
||||
\lcont{
|
||||
The bell overload mode is activated by receiving N bells in time T;
|
||||
after a further time S without any bells, overload mode will turn
|
||||
itself off again.
|
||||
|
||||
Bell overload mode is always deactivated by any keypress in the
|
||||
terminal. This means it can respond to large unexpected streams of
|
||||
data, but does not interfere with ordinary command-line activities
|
||||
that generate beeps (such as filename completion).
|
||||
}
|
||||
|
||||
\dt \cw{pterm.BellOverloadN}
|
||||
|
||||
\dd This option counts the number of bell characters which will activate
|
||||
bell overload if they are received within a length of time T. The
|
||||
default is 5.
|
||||
|
||||
\dt \cw{pterm.BellOverloadT}
|
||||
|
||||
\dd This option specifies the time period in which receiving N or more
|
||||
bells will activate bell overload mode. It is measured in
|
||||
microseconds, so (for example) set it to 1000000 for one second. The
|
||||
default is 2000000 (two seconds).
|
||||
|
||||
\dt \cw{pterm.BellOverloadS}
|
||||
|
||||
\dd This option specifies the time period of silence required to turn
|
||||
off bell overload mode. It is measured in microseconds, so (for
|
||||
example) set it to 1000000 for one second. The default is 5000000
|
||||
(five seconds of silence).
|
||||
|
||||
\dt \cw{pterm.ScrollbackLines}
|
||||
|
||||
\dd This option specifies how many lines of scrollback to save above the
|
||||
visible terminal screen. The default is 200. This resource is
|
||||
equivalent to the \cw{\-sl} command-line option.
|
||||
|
||||
\dt \cw{pterm.DECOriginMode}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. It
|
||||
specifies the default state of DEC Origin Mode. (If you don't know
|
||||
what that means, you probably don't need to mess with it.)
|
||||
|
||||
\dt \cw{pterm.AutoWrapMode}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. It
|
||||
specifies the default state of auto wrap mode. When set to 1, very
|
||||
long lines will wrap over to the next line on the terminal; when set
|
||||
to 0, long lines will be squashed against the right-hand edge of the
|
||||
screen.
|
||||
|
||||
\dt \cw{pterm.LFImpliesCR}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, the terminal will return the cursor to the left side of
|
||||
the screen when it receives a line feed character.
|
||||
|
||||
\dt \cw{pterm.WinTitle}
|
||||
|
||||
\dd This resource is the same as the \cw{\-T} command-line option:
|
||||
it controls the initial title of the window. The default is
|
||||
\q{\cw{pterm}}.
|
||||
|
||||
\dt \cw{pterm.TermWidth}
|
||||
|
||||
\dd This resource is the same as the width part of the \cw{\-geometry}
|
||||
command-line option: it controls the number of columns of text in
|
||||
the window. The default is 80.
|
||||
|
||||
\dt \cw{pterm.TermHeight}
|
||||
|
||||
\dd This resource is the same as the width part of the \cw{\-geometry}
|
||||
command-line option: it controls the number of columns of text in
|
||||
the window. The defaults is 24.
|
||||
|
||||
\dt \cw{pterm.Font}
|
||||
|
||||
\dd This resource is the same as the \cw{\-fn} command-line option: it
|
||||
controls the font used to display normal text. The default is
|
||||
\q{\cw{fixed}}.
|
||||
|
||||
\dt \cw{pterm.BoldFont}
|
||||
|
||||
\dd This resource is the same as the \cw{\-fb} command-line option: it
|
||||
controls the font used to display bold text when \cw{BoldAsColour}
|
||||
is turned off. The default is unset (the font will be bolded by
|
||||
printing it twice at a one-pixel offset).
|
||||
|
||||
\dt \cw{pterm.WideFont}
|
||||
|
||||
\dd This resource is the same as the \cw{\-fw} command-line option: it
|
||||
controls the font used to display double-width characters. The
|
||||
default is unset (double-width characters cannot be displayed).
|
||||
|
||||
\dt \cw{pterm.WideBoldFont}
|
||||
|
||||
\dd This resource is the same as the \cw{\-fwb} command-line option: it
|
||||
controls the font used to display double-width characters in bold,
|
||||
when \cw{BoldAsColour} is turned off. The default is unset
|
||||
(double-width characters are displayed in bold by printing them
|
||||
twice at a one-pixel offset).
|
||||
|
||||
\dt \cw{pterm.ShadowBoldOffset}
|
||||
|
||||
\dd This resource can be set to an integer; the default is \-1. It
|
||||
specifies the offset at which text is overprinted when using
|
||||
\q{shadow bold} mode. The default (1) means that the text will be
|
||||
printed in the normal place, and also one character to the right;
|
||||
this seems to work well for most X bitmap fonts, which have a blank
|
||||
line of pixels down the right-hand side. For some fonts, you may
|
||||
need to set this to \-1, so that the text is overprinted one pixel
|
||||
to the left; for really large fonts, you may want to set it higher
|
||||
than 1 (in one direction or the other).
|
||||
|
||||
\dt \cw{pterm.BoldAsColour}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. It
|
||||
specifies the default state of auto wrap mode. When set to 1, bold
|
||||
text is shown by displaying it in a brighter colour; when set to 0,
|
||||
bold text is shown by displaying it in a heavier font.
|
||||
|
||||
\dt \cw{pterm.Colour0}, \cw{pterm.Colour1}, ..., \cw{pterm.Colour21}
|
||||
|
||||
\dd These options control the various colours used to display text
|
||||
in the \cw{pterm} window. Each one should be specified as a triple
|
||||
of decimal numbers giving red, green and blue values: so that black
|
||||
is \q{\cw{0,0,0}}, white is \q{\cw{255,255,255}}, red is
|
||||
\q{\cw{255,0,0}} and so on.
|
||||
|
||||
\lcont{
|
||||
|
||||
Colours 0 and 1 specify the foreground colour and its bold
|
||||
equivalent (the \cw{\-fg} and \cw{\-bfg} command-line options).
|
||||
Colours 2 and 3 specify the background colour and its bold
|
||||
equivalent (the \cw{\-bg} and \cw{\-bbg} command-line options).
|
||||
Colours 4 and 5 specify the text and block colours used for the
|
||||
cursor (the \cw{\-cfg} and \cw{\-cbg} command-line options). Each
|
||||
even number from 6 to 20 inclusive specifies the colour to be used
|
||||
for one of the ANSI primary colour specifications (black, red,
|
||||
green, yellow, blue, magenta, cyan, white, in that order); the odd
|
||||
numbers from 7 to 21 inclusive specify the bold version of each
|
||||
colour, in the same order. The defaults are:
|
||||
|
||||
\c pterm.Colour0: 187,187,187
|
||||
\c pterm.Colour1: 255,255,255
|
||||
\c pterm.Colour2: 0,0,0
|
||||
\c pterm.Colour3: 85,85,85
|
||||
\c pterm.Colour4: 0,0,0
|
||||
\c pterm.Colour5: 0,255,0
|
||||
\c pterm.Colour6: 0,0,0
|
||||
\c pterm.Colour7: 85,85,85
|
||||
\c pterm.Colour8: 187,0,0
|
||||
\c pterm.Colour9: 255,85,85
|
||||
\c pterm.Colour10: 0,187,0
|
||||
\c pterm.Colour11: 85,255,85
|
||||
\c pterm.Colour12: 187,187,0
|
||||
\c pterm.Colour13: 255,255,85
|
||||
\c pterm.Colour14: 0,0,187
|
||||
\c pterm.Colour15: 85,85,255
|
||||
\c pterm.Colour16: 187,0,187
|
||||
\c pterm.Colour17: 255,85,255
|
||||
\c pterm.Colour18: 0,187,187
|
||||
\c pterm.Colour19: 85,255,255
|
||||
\c pterm.Colour20: 187,187,187
|
||||
\c pterm.Colour21: 255,255,255
|
||||
|
||||
}
|
||||
|
||||
\dt \cw{pterm.RectSelect}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 0, dragging the mouse over several lines selects to the end
|
||||
of each line and from the beginning of the next; when set to 1,
|
||||
dragging the mouse over several lines selects a rectangular region.
|
||||
In each case, holding down Alt while dragging gives the other
|
||||
behaviour.
|
||||
|
||||
\dt \cw{pterm.MouseOverride}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 1, if the application requests mouse tracking (so that mouse
|
||||
clicks are sent to it instead of doing selection), holding down
|
||||
Shift will revert the mouse to normal selection. When set to 0,
|
||||
mouse tracking completely disables selection.
|
||||
|
||||
\dt \cw{pterm.Printer}
|
||||
|
||||
\dd This option is unset by default. If you set it, then
|
||||
server-controlled printing is enabled: the server can send control
|
||||
sequences to request data to be sent to a printer. That data will be
|
||||
piped into the command you specify here; so you might want to set it
|
||||
to \q{\cw{lpr}}, for example, or \q{\cw{lpr \-Pmyprinter}}.
|
||||
|
||||
\dt \cw{pterm.ScrollBar}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 0, the scrollbar is hidden (although Shift-PageUp and
|
||||
Shift-PageDown still work). This is the same as the \cw{\-sb}
|
||||
command-line option.
|
||||
|
||||
\dt \cw{pterm.ScrollbarOnLeft}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, the scrollbar will be displayed on the left of the
|
||||
terminal instead of on the right.
|
||||
|
||||
\dt \cw{pterm.ScrollOnKey}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, any keypress causes the position of the scrollback to be
|
||||
reset to the very bottom.
|
||||
|
||||
\dt \cw{pterm.ScrollOnDisp}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 1, any activity in the display causes the position of the
|
||||
scrollback to be reset to the very bottom.
|
||||
|
||||
\dt \cw{pterm.LineCodePage}
|
||||
|
||||
\dd This option specifies the character set to be used for the session.
|
||||
This is the same as the \cw{\-cs} command-line option.
|
||||
|
||||
\dt \cw{pterm.NoRemoteCharset}
|
||||
|
||||
\dd This option disables the terminal's ability to change its character
|
||||
set when it receives escape sequences telling it to. You might need
|
||||
to do this to interoperate with programs which incorrectly change
|
||||
the character set to something they think is sensible.
|
||||
|
||||
\dt \cw{pterm.BCE}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 1, the various control sequences that erase parts of the
|
||||
terminal display will erase in whatever the current background
|
||||
colour is; when set to 0, they will erase in black always.
|
||||
|
||||
\dt \cw{pterm.BlinkText}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 0. When
|
||||
set to 1, text specified as blinking by the server will actually
|
||||
blink on and off; when set to 0, \cw{pterm} will use the less
|
||||
distracting approach of making the text's background colour bold.
|
||||
|
||||
\dt \cw{pterm.StampUtmp}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 1, \cw{pterm} will log the login in the various system log
|
||||
files. This resource is equivalent to the \cw{\-ut} command-line
|
||||
option.
|
||||
|
||||
\dt \cw{pterm.LoginShell}
|
||||
|
||||
\dd This option should be set to either 0 or 1; the default is 1. When
|
||||
set to 1, \cw{pterm} will execute your shell as a login shell. This
|
||||
resource is equivalent to the \cw{\-ls} command-line option.
|
||||
|
||||
\S{pterm-manpage-bugs} BUGS
|
||||
|
||||
Most of the X resources have silly names. (Historical reasons from
|
||||
PuTTY, mostly.)
|
||||
240
puttysrc/DOC/MAN-PUTT.BUT
Normal file
240
puttysrc/DOC/MAN-PUTT.BUT
Normal file
@@ -0,0 +1,240 @@
|
||||
\cfg{man-identity}{putty}{1}{2004-03-24}{PuTTY tool suite}{PuTTY tool suite}
|
||||
|
||||
\H{putty-manpage} Man page for PuTTY
|
||||
|
||||
\S{putty-manpage-name} NAME
|
||||
|
||||
\cw{putty} - GUI SSH, Telnet and Rlogin client for X
|
||||
|
||||
\S{putty-manpage-synopsis} SYNOPSIS
|
||||
|
||||
\c putty [ options ] [ host ]
|
||||
\e bbbbb iiiiiii iiii
|
||||
|
||||
\S{putty-manpage-description} DESCRIPTION
|
||||
|
||||
\cw{putty} is a graphical SSH, Telnet and Rlogin client for X. It is
|
||||
a direct port of the Windows SSH client of the same name.
|
||||
|
||||
\S{putty-manpage-options} OPTIONS
|
||||
|
||||
The command-line options supported by \cw{putty} are:
|
||||
|
||||
\dt \cw{\-\-display} \e{display\-name}
|
||||
|
||||
\dd Specify the X display on which to open \cw{putty}. (Note this
|
||||
option has a double minus sign, even though none of the others do.
|
||||
This is because this option is supplied automatically by GTK.
|
||||
Sorry.)
|
||||
|
||||
\dt \cw{\-fn} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for normal text displayed in the terminal.
|
||||
|
||||
\dt \cw{\-fb} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for bold text displayed in the terminal.
|
||||
If the \cw{BoldAsColour} resource is set to 1 (the default), bold
|
||||
text will be displayed in different colours instead of a different
|
||||
font, so this option will be ignored. If \cw{BoldAsColour} is set to
|
||||
0 and you do not specify a bold font, \cw{putty} will overprint the
|
||||
normal font to make it look bolder.
|
||||
|
||||
\dt \cw{\-fw} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for double-width characters (typically
|
||||
Chinese, Japanese and Korean text) displayed in the terminal.
|
||||
|
||||
\dt \cw{\-fwb} \e{font-name}
|
||||
|
||||
\dd Specify the font to use for bold double-width characters
|
||||
(typically Chinese, Japanese and Korean text). Like \cw{-fb}, this
|
||||
will be ignored unless the \cw{BoldAsColour} resource is set to 0.
|
||||
|
||||
\dt \cw{\-geometry} \e{geometry}
|
||||
|
||||
\dd Specify the size of the terminal, in rows and columns of text.
|
||||
See \e{X(7)} for more information on the syntax of geometry
|
||||
specifications.
|
||||
|
||||
\dt \cw{\-sl} \e{lines}
|
||||
|
||||
\dd Specify the number of lines of scrollback to save off the top of the
|
||||
terminal.
|
||||
|
||||
\dt \cw{\-fg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for normal text.
|
||||
|
||||
\dt \cw{\-bg} \e{colour}
|
||||
|
||||
\dd Specify the background colour to use for normal text.
|
||||
|
||||
\dt \cw{\-bfg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for bold text, if the
|
||||
\cw{BoldAsColour} resource is set to 1 (the default).
|
||||
|
||||
\dt \cw{\-bbg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for bold reverse-video
|
||||
text, if the \cw{BoldAsColour} resource is set to 1 (the default).
|
||||
(This colour is best thought of as the bold version of the
|
||||
background colour; so it only appears when text is displayed \e{in}
|
||||
the background colour.)
|
||||
|
||||
\dt \cw{\-cfg} \e{colour}
|
||||
|
||||
\dd Specify the foreground colour to use for text covered by the cursor.
|
||||
|
||||
\dt \cw{\-cbg} \e{colour}
|
||||
|
||||
\dd Specify the background colour to use for text covered by the cursor.
|
||||
In other words, this is the main colour of the cursor.
|
||||
|
||||
\dt \cw{\-title} \e{title}
|
||||
|
||||
\dd Specify the initial title of the terminal window. (This can be
|
||||
changed under control of the server.)
|
||||
|
||||
\dt \cw{\-sb\-} or \cw{+sb}
|
||||
|
||||
\dd Tells \cw{putty} not to display a scroll bar.
|
||||
|
||||
\dt \cw{\-sb}
|
||||
|
||||
\dd Tells \cw{putty} to display a scroll bar: this is the opposite of
|
||||
\cw{\-sb\-}. This is the default option: you will probably only need
|
||||
to specify it explicitly if you have changed the default using the
|
||||
\cw{ScrollBar} resource.
|
||||
|
||||
\dt \cw{\-log} \e{filename}
|
||||
|
||||
\dd This option makes \cw{putty} log all the terminal output to a file
|
||||
as well as displaying it in the terminal.
|
||||
|
||||
|
||||
\dt \cw{\-cs} \e{charset}
|
||||
|
||||
\dd This option specifies the character set in which \cw{putty}
|
||||
should assume the session is operating. This character set will be
|
||||
used to interpret all the data received from the session, and all
|
||||
input you type or paste into \cw{putty} will be converted into
|
||||
this character set before being sent to the session.
|
||||
|
||||
\lcont{ Any character set name which is valid in a MIME header (and
|
||||
supported by \cw{putty}) should be valid here (examples are
|
||||
\q{\cw{ISO-8859-1}}, \q{\cw{windows-1252}} or \q{\cw{UTF-8}}). Also,
|
||||
any character encoding which is valid in an X logical font
|
||||
description should be valid (\q{\cw{ibm-cp437}}, for example).
|
||||
|
||||
\cw{putty}'s default behaviour is to use the same character
|
||||
encoding as its primary font. If you supply a Unicode
|
||||
(\cw{iso10646-1}) font, it will default to the UTF-8 character set.
|
||||
|
||||
Character set names are case-insensitive.
|
||||
}
|
||||
|
||||
\dt \cw{\-nethack}
|
||||
|
||||
\dd Tells \cw{putty} to enable NetHack keypad mode, in which the
|
||||
numeric keypad generates the NetHack \c{hjklyubn} direction keys.
|
||||
This enables you to play NetHack with the numeric keypad without
|
||||
having to use the NetHack \c{number_pad} option (which requires you
|
||||
to press \q{\cw{n}} before any repeat count). So you can move with
|
||||
the numeric keypad, and enter repeat counts with the normal number
|
||||
keys.
|
||||
|
||||
\dt \cw{\-help}, \cw{\-\-help}
|
||||
|
||||
\dd Display a message summarizing the available options.
|
||||
|
||||
\dt \cw{\-pgpfp}
|
||||
|
||||
\dd Display the fingerprints of the PuTTY PGP Master Keys, to aid
|
||||
in verifying new files released by the PuTTY team.
|
||||
|
||||
\dt \cw{\-load} \e{session}
|
||||
|
||||
\dd Load a saved session by name. This allows you to run a saved session
|
||||
straight from the command line without having to go through the
|
||||
configuration box first.
|
||||
|
||||
\dt \cw{\-ssh}, \cw{\-telnet}, \cw{\-rlogin}, \cw{\-raw}
|
||||
|
||||
\dd Select the protocol \cw{putty} will use to make the connection.
|
||||
|
||||
\dt \cw{\-l} \e{username}
|
||||
|
||||
\dd Specify the username to use when logging in to the server.
|
||||
|
||||
\dt \cw{\-L} \cw{[}\e{srcaddr}\cw{:]}\e{srcport}\cw{:}\e{desthost}\cw{:}\e{destport}
|
||||
|
||||
\dd Set up a local port forwarding: listen on \e{srcport} (or
|
||||
\e{srcaddr}:\e{srcport} if specified), and forward any connections
|
||||
over the SSH connection to the destination address
|
||||
\e{desthost}:\e{destport}. Only works in SSH.
|
||||
|
||||
\dt \cw{\-R} \cw{[}\e{srcaddr}\cw{:]}\e{srcport}\cw{:}\e{desthost}\cw{:}\e{destport}
|
||||
|
||||
\dd Set up a remote port forwarding: ask the SSH server to listen on
|
||||
\e{srcport} (or \e{srcaddr}:\e{srcport} if specified), and to
|
||||
forward any connections back over the SSH connection where the
|
||||
client will pass them on to the destination address
|
||||
\e{desthost}:\e{destport}. Only works in SSH.
|
||||
|
||||
\dt \cw{\-D} [\e{srcaddr}:]\e{srcport}
|
||||
|
||||
\dd Set up dynamic port forwarding. The client listens on
|
||||
\e{srcport} (or \e{srcaddr}:\e{srcport} if specified), and
|
||||
implements a SOCKS server. So you can point SOCKS-aware applications
|
||||
at this port and they will automatically use the SSH connection to
|
||||
tunnel all their connections. Only works in SSH.
|
||||
|
||||
\dt \cw{\-P} \e{port}
|
||||
|
||||
\dd Specify the port to connect to the server on.
|
||||
|
||||
\dt \cw{\-A}, \cw{\-a}
|
||||
|
||||
\dd Enable (\cw{\-A}) or disable (\cw{\-a}) SSH agent forwarding.
|
||||
Currently this only works with OpenSSH and SSH-1.
|
||||
|
||||
\dt \cw{\-X}, \cw{\-x}
|
||||
|
||||
\dd Enable (\cw{\-X}) or disable (\cw{\-x}) X11 forwarding.
|
||||
|
||||
\dt \cw{\-T}, \cw{\-t}
|
||||
|
||||
\dd Enable (\cw{\-t}) or disable (\cw{\-T}) the allocation of a
|
||||
pseudo-terminal at the server end.
|
||||
|
||||
\dt \cw{\-C}
|
||||
|
||||
\dd Enable zlib-style compression on the connection.
|
||||
|
||||
\dt \cw{\-1}, \cw{\-2}
|
||||
|
||||
\dd Select SSH protocol version 1 or 2.
|
||||
|
||||
\dt \cw{\-i} \e{keyfile}
|
||||
|
||||
\dd Specify a private key file to use for authentication. For SSH-2
|
||||
keys, this key file must be in PuTTY's format, not OpenSSH's or
|
||||
anyone else's.
|
||||
|
||||
\S{putty-manpage-saved-sessions} SAVED SESSIONS
|
||||
|
||||
Saved sessions are stored in a \cw{.putty/sessions} subdirectory in
|
||||
your home directory.
|
||||
|
||||
\S{putty-manpage-more-information} MORE INFORMATION
|
||||
|
||||
For more information on PuTTY, it's probably best to go and look at
|
||||
the manual on the web page:
|
||||
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/}\cw{http://www.chiark.greenend.org.uk/~sgtatham/putty/}
|
||||
|
||||
\S{putty-manpage-bugs} BUGS
|
||||
|
||||
This man page isn't terribly complete.
|
||||
3
puttysrc/DOC/MANCFG.BUT
Normal file
3
puttysrc/DOC/MANCFG.BUT
Normal file
@@ -0,0 +1,3 @@
|
||||
\cfg{man-mindepth}{2}
|
||||
|
||||
\C{not-shown} Chapter title which is not shown
|
||||
3
puttysrc/DOC/MANPAGES.BUT
Normal file
3
puttysrc/DOC/MANPAGES.BUT
Normal file
@@ -0,0 +1,3 @@
|
||||
\A{man-pages} Man pages for Unix PuTTY
|
||||
|
||||
This appendix contains all the man pages for Unix PuTTY.
|
||||
273
puttysrc/DOC/PAGEANT.BUT
Normal file
273
puttysrc/DOC/PAGEANT.BUT
Normal file
@@ -0,0 +1,273 @@
|
||||
\define{versionidpageant} \versionid $Id: pageant.but 6610 2006-03-14 11:21:59Z jacob $
|
||||
|
||||
\C{pageant} Using \i{Pageant} for authentication
|
||||
|
||||
\cfg{winhelp-topic}{pageant.general}
|
||||
|
||||
Pageant is an SSH \i{authentication agent}. It holds your \i{private key}s
|
||||
in memory, already decoded, so that you can use them often
|
||||
\I{passwordless login}without needing to type a \i{passphrase}.
|
||||
|
||||
\H{pageant-start} Getting started with Pageant
|
||||
|
||||
Before you run Pageant, you need to have a private key in \c{*.\i{PPK}}
|
||||
format. See \k{pubkey} to find out how to generate and use one.
|
||||
|
||||
When you run Pageant, it will put an icon of a computer wearing a
|
||||
hat into the \ii{System tray}. It will then sit and do nothing, until you
|
||||
load a private key into it.
|
||||
|
||||
If you click the Pageant icon with the right mouse button, you will
|
||||
see a menu. Select \q{View Keys} from this menu. The Pageant main
|
||||
window will appear. (You can also bring this window up by
|
||||
double-clicking on the Pageant icon.)
|
||||
|
||||
The Pageant window contains a list box. This shows the private keys
|
||||
Pageant is holding. When you start Pageant, it has no keys, so the
|
||||
list box will be empty. After you add one or more keys, they will
|
||||
show up in the list box.
|
||||
|
||||
To add a key to Pageant, press the \q{Add Key} button. Pageant will
|
||||
bring up a file dialog, labelled \q{Select Private Key File}. Find
|
||||
your private key file in this dialog, and press \q{Open}.
|
||||
|
||||
Pageant will now load the private key. If the key is protected by a
|
||||
passphrase, Pageant will ask you to type the passphrase. When the
|
||||
key has been loaded, it will appear in the list in the Pageant
|
||||
window.
|
||||
|
||||
Now start PuTTY and open an SSH session to a site that accepts your
|
||||
key. PuTTY will notice that Pageant is running, retrieve the key
|
||||
automatically from Pageant, and use it to authenticate. You can now
|
||||
open as many PuTTY sessions as you like without having to type your
|
||||
passphrase again.
|
||||
|
||||
(PuTTY can be configured not to try to use Pageant, but it will try
|
||||
by default. See \k{config-ssh-tryagent} and
|
||||
\k{using-cmdline-agentauth} for more information.)
|
||||
|
||||
When you want to shut down Pageant, click the right button on the
|
||||
Pageant icon in the System tray, and select \q{Exit} from the menu.
|
||||
Closing the Pageant main window does \e{not} shut down Pageant.
|
||||
|
||||
\H{pageant-mainwin} The Pageant main window
|
||||
|
||||
The Pageant main window appears when you left-click on the Pageant
|
||||
system tray icon, or alternatively right-click and select \q{View
|
||||
Keys} from the menu. You can use it to keep track of what keys are
|
||||
currently loaded into Pageant, and to add new ones or remove the
|
||||
existing keys.
|
||||
|
||||
\S{pageant-mainwin-keylist} The key list box
|
||||
|
||||
\cfg{winhelp-topic}{pageant.keylist}
|
||||
|
||||
The large list box in the Pageant main window lists the private keys
|
||||
that are currently loaded into Pageant. The list might look
|
||||
something like this:
|
||||
|
||||
\c ssh1 1024 22:c3:68:3b:09:41:36:c3:39:83:91:ae:71:b2:0f:04 k1
|
||||
\c ssh-rsa 1023 74:63:08:82:95:75:e1:7c:33:31:bb:cb:00:c0:89:8b k2
|
||||
|
||||
For each key, the list box will tell you:
|
||||
|
||||
\b The type of the key. Currently, this can be \c{ssh1} (an RSA key
|
||||
for use with the SSH-1 protocol), \c{ssh-rsa} (an RSA key for use
|
||||
with the SSH-2 protocol), or \c{ssh-dss} (a DSA key for use with
|
||||
the SSH-2 protocol).
|
||||
|
||||
\b The size (in bits) of the key.
|
||||
|
||||
\b The \I{key fingerprint}fingerprint for the public key. This should be
|
||||
the same fingerprint given by PuTTYgen, and (hopefully) also the same
|
||||
fingerprint shown by remote utilities such as \i\c{ssh-keygen} when
|
||||
applied to your \c{authorized_keys} file.
|
||||
|
||||
\b The comment attached to the key.
|
||||
|
||||
\S{pageant-mainwin-addkey} The \q{Add Key} button
|
||||
|
||||
\cfg{winhelp-topic}{pageant.addkey}
|
||||
|
||||
To add a key to Pageant by reading it out of a local disk file,
|
||||
press the \q{Add Key} button in the Pageant main window, or
|
||||
alternatively right-click on the Pageant icon in the system tray and
|
||||
select \q{Add Key} from there.
|
||||
|
||||
Pageant will bring up a file dialog, labelled \q{Select Private Key
|
||||
File}. Find your private key file in this dialog, and press
|
||||
\q{Open}. If you want to add more than one key at once, you can
|
||||
select multiple files using Shift-click (to select several adjacent
|
||||
files) or Ctrl-click (to select non-adjacent files).
|
||||
|
||||
Pageant will now load the private key(s). If a key is protected by a
|
||||
passphrase, Pageant will ask you to type the passphrase.
|
||||
|
||||
(This is not the only way to add a private key to Pageant. You can
|
||||
also add one from a remote system by using agent forwarding; see
|
||||
\k{pageant-forward} for details.)
|
||||
|
||||
\S{pageant-mainwin-remkey} The \q{Remove Key} button
|
||||
|
||||
\cfg{winhelp-topic}{pageant.remkey}
|
||||
|
||||
If you need to remove a key from Pageant, select that key in the
|
||||
list box, and press the \q{Remove Key} button. Pageant will remove
|
||||
the key from its memory.
|
||||
|
||||
You can apply this to keys you added using the \q{Add Key} button,
|
||||
or to keys you added remotely using agent forwarding (see
|
||||
\k{pageant-forward}); it makes no difference.
|
||||
|
||||
\H{pageant-cmdline} The Pageant command line
|
||||
|
||||
Pageant can be made to do things automatically when it starts up, by
|
||||
\I{command-line arguments}specifying instructions on its command line.
|
||||
If you're starting Pageant from the Windows GUI, you can arrange this
|
||||
by editing the properties of the \i{Windows shortcut} that it was
|
||||
started from.
|
||||
|
||||
If Pageant is already running, invoking it again with the options
|
||||
below causes actions to be performed with the existing instance, not a
|
||||
new one.
|
||||
|
||||
\S{pageant-cmdline-loadkey} Making Pageant automatically load keys
|
||||
on startup
|
||||
|
||||
Pageant can automatically load one or more private keys when it
|
||||
starts up, if you provide them on the Pageant command line. Your
|
||||
command line might then look like:
|
||||
|
||||
\c C:\PuTTY\pageant.exe d:\main.ppk d:\secondary.ppk
|
||||
|
||||
If the keys are stored encrypted, Pageant will request the
|
||||
passphrases on startup.
|
||||
|
||||
If Pageant is already running, this syntax loads keys into the
|
||||
existing Pageant.
|
||||
|
||||
\S{pageant-cmdline-command} Making Pageant run another program
|
||||
|
||||
You can arrange for Pageant to start another program once it has
|
||||
initialised itself and loaded any keys specified on its command
|
||||
line. This program (perhaps a PuTTY, or a WinCVS making use of
|
||||
Plink, or whatever) will then be able to use the keys Pageant has
|
||||
loaded.
|
||||
|
||||
You do this by specifying the \I{-c-pageant}\c{-c} option followed
|
||||
by the command, like this:
|
||||
|
||||
\c C:\PuTTY\pageant.exe d:\main.ppk -c C:\PuTTY\putty.exe
|
||||
|
||||
\H{pageant-forward} Using \i{agent forwarding}
|
||||
|
||||
Agent forwarding is a mechanism that allows applications on your SSH
|
||||
server machine to talk to the agent on your client machine.
|
||||
|
||||
Note that at present, agent forwarding in SSH-2 is only available
|
||||
when your SSH server is \i{OpenSSH}. The \i\cw{ssh.com} server uses a
|
||||
different agent protocol, which PuTTY does not yet support.
|
||||
|
||||
To enable agent forwarding, first start Pageant. Then set up a PuTTY
|
||||
SSH session in which \q{Allow agent forwarding} is enabled (see
|
||||
\k{config-ssh-agentfwd}). Open the session as normal. (Alternatively,
|
||||
you can use the \c{-A} command line option; see
|
||||
\k{using-cmdline-agent} for details.)
|
||||
|
||||
If this has worked, your applications on the server should now have
|
||||
access to a Unix domain socket which the SSH server will forward
|
||||
back to PuTTY, and PuTTY will forward on to the agent. To check that
|
||||
this has actually happened, you can try this command on Unix server
|
||||
machines:
|
||||
|
||||
\c unixbox:~$ echo $SSH_AUTH_SOCK
|
||||
\c /tmp/ssh-XXNP18Jz/agent.28794
|
||||
\c unixbox:~$
|
||||
|
||||
If the result line comes up blank, agent forwarding has not been
|
||||
enabled at all.
|
||||
|
||||
Now if you run \c{ssh} on the server and use it to connect through
|
||||
to another server that accepts one of the keys in Pageant, you
|
||||
should be able to log in without a password:
|
||||
|
||||
\c unixbox:~$ ssh -v otherunixbox
|
||||
\c [...]
|
||||
\c debug: next auth method to try is publickey
|
||||
\c debug: userauth_pubkey_agent: trying agent key my-putty-key
|
||||
\c debug: ssh-userauth2 successful: method publickey
|
||||
\c [...]
|
||||
|
||||
If you enable agent forwarding on \e{that} SSH connection as well
|
||||
(see the manual for your server-side SSH client to find out how to
|
||||
do this), your authentication keys will still be available on the
|
||||
next machine you connect to - two SSH connections away from where
|
||||
they're actually stored.
|
||||
|
||||
In addition, if you have a private key on one of the SSH servers,
|
||||
you can send it all the way back to Pageant using the local
|
||||
\i\c{ssh-add} command:
|
||||
|
||||
\c unixbox:~$ ssh-add ~/.ssh/id_rsa
|
||||
\c Need passphrase for /home/fred/.ssh/id_rsa
|
||||
\c Enter passphrase for /home/fred/.ssh/id_rsa:
|
||||
\c Identity added: /home/fred/.ssh/id_rsa (/home/simon/.ssh/id_rsa)
|
||||
\c unixbox:~$
|
||||
|
||||
and then it's available to every machine that has agent forwarding
|
||||
available (not just the ones downstream of the place you added it).
|
||||
|
||||
\H{pageant-security} Security considerations
|
||||
|
||||
\I{security risk}Using Pageant for public-key authentication gives you the
|
||||
convenience of being able to open multiple SSH sessions without
|
||||
having to type a passphrase every time, but also gives you the
|
||||
security benefit of never storing a decrypted private key on disk.
|
||||
Many people feel this is a good compromise between security and
|
||||
convenience.
|
||||
|
||||
It \e{is} a compromise, however. Holding your decrypted private keys
|
||||
in Pageant is better than storing them in easy-to-find disk files,
|
||||
but still less secure than not storing them anywhere at all. This is
|
||||
for two reasons:
|
||||
|
||||
\b Windows unfortunately provides no way to protect pieces of memory
|
||||
from being written to the system \i{swap file}. So if Pageant is holding
|
||||
your private keys for a long period of time, it's possible that
|
||||
decrypted private key data may be written to the system swap file,
|
||||
and an attacker who gained access to your hard disk later on might
|
||||
be able to recover that data. (However, if you stored an unencrypted
|
||||
key in a disk file they would \e{certainly} be able to recover it.)
|
||||
|
||||
\b Although, like most modern operating systems, Windows prevents
|
||||
programs from accidentally accessing one another's memory space, it
|
||||
does allow programs to access one another's memory space
|
||||
deliberately, for special purposes such as debugging. This means
|
||||
that if you allow a virus, trojan, or other malicious program on to
|
||||
your Windows system while Pageant is running, it could access the
|
||||
memory of the Pageant process, extract your decrypted authentication
|
||||
keys, and send them back to its master.
|
||||
|
||||
Similarly, use of agent \e{forwarding} is a security improvement on
|
||||
other methods of one-touch authentication, but not perfect. Holding
|
||||
your keys in Pageant on your Windows box has a security advantage
|
||||
over holding them on the remote server machine itself (either in an
|
||||
agent or just unencrypted on disk), because if the server machine
|
||||
ever sees your unencrypted private key then the sysadmin or anyone
|
||||
who cracks the machine can steal the keys and pretend to be you for
|
||||
as long as they want.
|
||||
|
||||
However, the sysadmin of the server machine can always pretend to be
|
||||
you \e{on that machine}. So if you forward your agent to a server
|
||||
machine, then the sysadmin of that machine can access the forwarded
|
||||
agent connection and request signatures from your private keys, and
|
||||
can therefore log in to other machines as you. They can only do this
|
||||
to a limited extent - when the agent forwarding disappears they lose
|
||||
the ability - but using Pageant doesn't actually \e{prevent} the
|
||||
sysadmin (or hackers) on the server from doing this.
|
||||
|
||||
Therefore, if you don't trust the sysadmin of a server machine, you
|
||||
should \e{never} use agent forwarding to that machine. (Of course
|
||||
you also shouldn't store private keys on that machine, type
|
||||
passphrases into it, or log into other machines from it in any way
|
||||
at all; Pageant is hardly unique in this respect.)
|
||||
141
puttysrc/DOC/PGPKEYS.BUT
Normal file
141
puttysrc/DOC/PGPKEYS.BUT
Normal file
@@ -0,0 +1,141 @@
|
||||
\define{versionidpgpkeys} \versionid $Id: pgpkeys.but 5598 2005-04-05 19:36:25Z simon $
|
||||
|
||||
\A{pgpkeys} PuTTY download keys and signatures
|
||||
|
||||
\cfg{winhelp-topic}{pgpfingerprints}
|
||||
|
||||
\I{verifying new versions}We create \i{PGP signatures} for all the PuTTY
|
||||
files distributed from our web site, so that users can be confident
|
||||
that the files have not been tampered with. Here we identify
|
||||
our public keys, and explain our signature policy so you can have an
|
||||
accurate idea of what each signature guarantees.
|
||||
This description is provided as both a web page on the PuTTY site, and
|
||||
an appendix in the PuTTY manual.
|
||||
|
||||
As of release 0.58, all of the PuTTY executables contain fingerprint
|
||||
material (usually accessed via the \i\c{-pgpfp} command-line
|
||||
option), such that if you have an executable you trust, you can use
|
||||
it to establish a trust path, for instance to a newer version
|
||||
downloaded from the Internet.
|
||||
|
||||
(Note that none of the keys, signatures, etc mentioned here have
|
||||
anything to do with keys used with SSH - they are purely for verifying
|
||||
the origin of files distributed by the PuTTY team.)
|
||||
|
||||
\H{pgpkeys-pubkey} Public keys
|
||||
|
||||
We supply two complete sets of keys. We supply a set of RSA keys,
|
||||
compatible with both \W{http://www.gnupg.org/}{GnuPG} and PGP2,
|
||||
and also a set of DSA keys compatible with GnuPG.
|
||||
|
||||
In each format, we have three keys:
|
||||
|
||||
\b A Development Snapshots key, used to sign the nightly builds.
|
||||
|
||||
\b A Releases key, used to sign actual releases.
|
||||
|
||||
\b A Master Key. The Master Key is used to sign the other two keys, and
|
||||
they sign it in return.
|
||||
|
||||
Therefore, we have six public keys in total:
|
||||
|
||||
\b RSA:
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/keys/master-rsa.asc}{Master Key},
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/keys/release-rsa.asc}{Release key},
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/keys/snapshot-rsa.asc}{Snapshot key}
|
||||
|
||||
\lcont{
|
||||
Master Key: 1024-bit; \I{PGP key fingerprint}fingerprint:
|
||||
\cw{8F\_15\_97\_DA\_25\_30\_AB\_0D\_\_88\_D1\_92\_54\_11\_CF\_0C\_4C}
|
||||
}
|
||||
|
||||
\b DSA:
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/keys/master-dsa.asc}{Master Key},
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/keys/release-dsa.asc}{Release key},
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/putty/keys/snapshot-dsa.asc}{Snapshot key}
|
||||
|
||||
\lcont{
|
||||
Master Key: 1024-bit; fingerprint:
|
||||
\cw{313C\_3E76\_4B74\_C2C5\_F2AE\_\_83A8\_4F5E\_6DF5\_6A93\_B34E}
|
||||
}
|
||||
|
||||
\H{pgpkeys-security} Security details
|
||||
|
||||
The various keys have various different security levels. This
|
||||
section explains what those security levels are, and how far you can
|
||||
expect to trust each key.
|
||||
|
||||
\S{pgpkeys-snapshot} The Development Snapshots keys
|
||||
|
||||
These keys are stored \e{without passphrases}. This is
|
||||
necessary, because the snapshots are generated every night without
|
||||
human intervention, so nobody would be able to type a passphrase.
|
||||
|
||||
The actual snapshots are built on a team member's home Windows box.
|
||||
The keys themselves are stored on an independently run Unix box
|
||||
(the same one that hosts our Subversion repository). After
|
||||
being built, the binaries are uploaded to this Unix box and then
|
||||
signed automatically.
|
||||
|
||||
Therefore, a signature from one of the Development Snapshots keys
|
||||
\e{DOES} protect you against:
|
||||
|
||||
\b People tampering with the PuTTY binaries between the PuTTY web site
|
||||
and you.
|
||||
|
||||
But it \e{DOES NOT} protect you against:
|
||||
|
||||
\b People tampering with the binaries before they are uploaded to the
|
||||
independent Unix box.
|
||||
|
||||
\b The sysadmin of the independent Unix box using his root privilege to
|
||||
steal the private keys and abuse them, or tampering with the
|
||||
binaries before they are signed.
|
||||
|
||||
\b Somebody getting root on the Unix box.
|
||||
|
||||
Of course, we don't believe any of those things is very likely. We
|
||||
know our sysadmin personally and trust him (both to be competent and
|
||||
to be non-malicious), and we take all reasonable precautions to
|
||||
guard the build machine. But when you see a signature, you should
|
||||
always be certain of precisely what it guarantees and precisely what
|
||||
it does not.
|
||||
|
||||
\S{pgpkeys-release} The Releases keys
|
||||
|
||||
The Release keys have passphrases and we can be more careful about
|
||||
how we use them.
|
||||
|
||||
The Release keys are kept safe on the developers' own local
|
||||
machines, and only used to sign releases that have been built by
|
||||
hand. A signature from a Release key protects you from almost any
|
||||
plausible attack.
|
||||
|
||||
(Some of the developers' machines have cable modem connections and
|
||||
might in theory be crackable, but of course the private keys are
|
||||
still encrypted, so the crack would have to go unnoticed for long
|
||||
enough to steal a passphrase.)
|
||||
|
||||
\S{pgpkeys-master} The Master Keys
|
||||
|
||||
The Master Keys sign almost nothing. Their purpose is to bind the
|
||||
other keys together and certify that they are all owned by the same
|
||||
people and part of the same integrated setup. The only signatures
|
||||
produced by the Master Keys, \e{ever}, should be the signatures
|
||||
on the other keys.
|
||||
|
||||
We intend to arrange for the Master Keys to sign each other, to
|
||||
certify that the DSA keys and RSA keys are part of the same setup.
|
||||
We have not yet got round to this at the time of writing.
|
||||
|
||||
We have collected a few third-party signatures on the Master Keys,
|
||||
in order to increase the chances that you can find a suitable trust
|
||||
path to them. We intend to collect more. (Note that the keys on the
|
||||
keyservers appear to have also collected some signatures from people
|
||||
who haven't performed any verification of the Master Keys.)
|
||||
|
||||
We have uploaded our various keys to public keyservers, so that
|
||||
even if you don't know any of the people who have signed our
|
||||
keys, you can still be reasonably confident that an attacker would
|
||||
find it hard to substitute fake keys on all the public keyservers at
|
||||
once.
|
||||
294
puttysrc/DOC/PLINK.BUT
Normal file
294
puttysrc/DOC/PLINK.BUT
Normal file
@@ -0,0 +1,294 @@
|
||||
\define{versionidplink} \versionid $Id: plink.but 7488 2007-04-29 11:28:54Z simon $
|
||||
|
||||
\C{plink} Using the command-line connection tool \i{Plink}
|
||||
|
||||
\i{Plink} (PuTTY Link) is a command-line connection tool similar to
|
||||
UNIX \c{ssh}. It is mostly used for \i{automated operations}, such as
|
||||
making CVS access a repository on a remote server.
|
||||
|
||||
Plink is probably not what you want if you want to run an
|
||||
\i{interactive session} in a console window.
|
||||
|
||||
\H{plink-starting} Starting Plink
|
||||
|
||||
Plink is a command line application. This means that you cannot just
|
||||
double-click on its icon to run it and instead you have to bring up
|
||||
a \i{console window}. In Windows 95, 98, and ME, this is called an
|
||||
\q{MS-DOS Prompt}, and in Windows NT, 2000, and XP, it is called a
|
||||
\q{Command Prompt}. It should be available from the Programs section
|
||||
of your Start Menu.
|
||||
|
||||
In order to use Plink, the file \c{plink.exe} will need either to be
|
||||
on your \i{\c{PATH}} or in your current directory. To add the
|
||||
directory containing Plink to your \c{PATH} environment variable,
|
||||
type into the console window:
|
||||
|
||||
\c set PATH=C:\path\to\putty\directory;%PATH%
|
||||
|
||||
This will only work for the lifetime of that particular console
|
||||
window. To set your \c{PATH} more permanently on Windows NT, 2000,
|
||||
and XP, use the Environment tab of the System Control Panel. On
|
||||
Windows 95, 98, and ME, you will need to edit your \i\c{AUTOEXEC.BAT}
|
||||
to include a \c{set} command like the one above.
|
||||
|
||||
\H{plink-usage} Using Plink
|
||||
|
||||
This section describes the basics of how to use Plink for
|
||||
interactive logins and for automated processes.
|
||||
|
||||
Once you've got a console window to type into, you can just type
|
||||
\c{plink} on its own to bring up a usage message. This tells you the
|
||||
version of Plink you're using, and gives you a brief summary of how to
|
||||
use Plink:
|
||||
|
||||
\c Z:\sysosd>plink
|
||||
\c PuTTY Link: command-line connection utility
|
||||
\c Release 0.60
|
||||
\c Usage: plink [options] [user@]host [command]
|
||||
\c ("host" can also be a PuTTY saved session name)
|
||||
\c Options:
|
||||
\c -V print version information and exit
|
||||
\c -pgpfp print PGP key fingerprints and exit
|
||||
\c -v show verbose messages
|
||||
\c -load sessname Load settings from saved session
|
||||
\c -ssh -telnet -rlogin -raw
|
||||
\c force use of a particular protocol
|
||||
\c -P port connect to specified port
|
||||
\c -l user connect with specified username
|
||||
\c -batch disable all interactive prompts
|
||||
\c The following options only apply to SSH connections:
|
||||
\c -pw passw login with specified password
|
||||
\c -D [listen-IP:]listen-port
|
||||
\c Dynamic SOCKS-based port forwarding
|
||||
\c -L [listen-IP:]listen-port:host:port
|
||||
\c Forward local port to remote address
|
||||
\c -R [listen-IP:]listen-port:host:port
|
||||
\c Forward remote port to local address
|
||||
\c -X -x enable / disable X11 forwarding
|
||||
\c -A -a enable / disable agent forwarding
|
||||
\c -t -T enable / disable pty allocation
|
||||
\c -1 -2 force use of particular protocol version
|
||||
\c -4 -6 force use of IPv4 or IPv6
|
||||
\c -C enable compression
|
||||
\c -i key private key file for authentication
|
||||
\c -noagent disable use of Pageant
|
||||
\c -agent enable use of Pageant
|
||||
\c -m file read remote command(s) from file
|
||||
\c -s remote command is an SSH subsystem (SSH-2 only)
|
||||
\c -N don't start a shell/command (SSH-2 only)
|
||||
\c -nc host:port
|
||||
\c open tunnel in place of session (SSH-2 only)
|
||||
|
||||
Once this works, you are ready to use Plink.
|
||||
|
||||
\S{plink-usage-interactive} Using Plink for interactive logins
|
||||
|
||||
To make a simple interactive connection to a remote server, just
|
||||
type \c{plink} and then the host name:
|
||||
|
||||
\c Z:\sysosd>plink login.example.com
|
||||
\c
|
||||
\c Debian GNU/Linux 2.2 flunky.example.com
|
||||
\c flunky login:
|
||||
|
||||
You should then be able to log in as normal and run a session. The
|
||||
output sent by the server will be written straight to your command
|
||||
prompt window, which will most likely not interpret terminal \i{control
|
||||
codes} in the way the server expects it to. So if you run any
|
||||
full-screen applications, for example, you can expect to see strange
|
||||
characters appearing in your window. Interactive connections like
|
||||
this are not the main point of Plink.
|
||||
|
||||
In order to connect with a different protocol, you can give the
|
||||
command line options \c{-ssh}, \c{-telnet}, \c{-rlogin} or \c{-raw}.
|
||||
To make an SSH connection, for example:
|
||||
|
||||
\c Z:\sysosd>plink -ssh login.example.com
|
||||
\c login as:
|
||||
|
||||
If you have already set up a PuTTY saved session, then instead of
|
||||
supplying a host name, you can give the saved session name. This
|
||||
allows you to use public-key authentication, specify a user name,
|
||||
and use most of the other features of PuTTY:
|
||||
|
||||
\c Z:\sysosd>plink my-ssh-session
|
||||
\c Sent username "fred"
|
||||
\c Authenticating with public key "fred@winbox"
|
||||
\c Last login: Thu Dec 6 19:25:33 2001 from :0.0
|
||||
\c fred@flunky:~$
|
||||
|
||||
(You can also use the \c{-load} command-line option to load a saved
|
||||
session; see \k{using-cmdline-load}. If you use \c{-load}, the saved
|
||||
session exists, and it specifies a hostname, you cannot also specify a
|
||||
\c{host} or \c{user@host} argument - it will be treated as part of the
|
||||
remote command.)
|
||||
|
||||
\S{plink-usage-batch} Using Plink for automated connections
|
||||
|
||||
More typically Plink is used with the SSH protocol, to enable you to
|
||||
talk directly to a program running on the server. To do this you
|
||||
have to ensure Plink is \e{using} the SSH protocol. You can do this
|
||||
in several ways:
|
||||
|
||||
\b Use the \c{-ssh} option as described in
|
||||
\k{plink-usage-interactive}.
|
||||
|
||||
\b Set up a PuTTY saved session that describes the server you are
|
||||
connecting to, and that also specifies the protocol as SSH.
|
||||
|
||||
\b Set the Windows environment variable \i\c{PLINK_PROTOCOL} to the
|
||||
word \c{ssh}.
|
||||
|
||||
Usually Plink is not invoked directly by a user, but run
|
||||
automatically by another process. Therefore you typically do not
|
||||
want Plink to prompt you for a user name or a password.
|
||||
|
||||
Next, you are likely to need to avoid the various interactive
|
||||
prompts Plink can produce. You might be prompted to verify the host
|
||||
key of the server you're connecting to, to enter a user name, or to
|
||||
enter a password.
|
||||
|
||||
To avoid being prompted for the server host key when using Plink for
|
||||
an automated connection, you should first make a \e{manual}
|
||||
connection (using either of PuTTY or Plink) to the same server,
|
||||
verify the host key (see \k{gs-hostkey} for more information), and
|
||||
select Yes to add the host key to the Registry. After that, Plink
|
||||
commands connecting to that server should not give a host key prompt
|
||||
unless the host key changes.
|
||||
|
||||
To avoid being prompted for a user name, you can:
|
||||
|
||||
\b Use the \c{-l} option to specify a user name on the command line.
|
||||
For example, \c{plink login.example.com -l fred}.
|
||||
|
||||
\b Set up a PuTTY saved session that describes the server you are
|
||||
connecting to, and that also specifies the username to log in as
|
||||
(see \k{config-username}).
|
||||
|
||||
To avoid being prompted for a password, you should almost certainly
|
||||
set up \i{public-key authentication}. (See \k{pubkey} for a general
|
||||
introduction to public-key authentication.) Again, you can do this
|
||||
in two ways:
|
||||
|
||||
\b Set up a PuTTY saved session that describes the server you are
|
||||
connecting to, and that also specifies a private key file (see
|
||||
\k{config-ssh-privkey}). For this to work without prompting, your
|
||||
private key will need to have no passphrase.
|
||||
|
||||
\b Store the private key in Pageant. See \k{pageant} for further
|
||||
information.
|
||||
|
||||
Once you have done all this, you should be able to run a remote
|
||||
command on the SSH server machine and have it execute automatically
|
||||
with no prompting:
|
||||
|
||||
\c Z:\sysosd>plink login.example.com -l fred echo hello, world
|
||||
\c hello, world
|
||||
\c
|
||||
\c Z:\sysosd>
|
||||
|
||||
Or, if you have set up a saved session with all the connection
|
||||
details:
|
||||
|
||||
\c Z:\sysosd>plink mysession echo hello, world
|
||||
\c hello, world
|
||||
\c
|
||||
\c Z:\sysosd>
|
||||
|
||||
Then you can set up other programs to run this Plink command and
|
||||
talk to it as if it were a process on the server machine.
|
||||
|
||||
\S{plink-options} Plink command line options
|
||||
|
||||
Plink accepts all the general command line options supported by the
|
||||
PuTTY tools. See \k{using-general-opts} for a description of these
|
||||
options.
|
||||
|
||||
Plink also supports some of its own options. The following sections
|
||||
describe Plink's specific command-line options.
|
||||
|
||||
\S2{plink-option-batch} \I{-batch-plink}\c{-batch}: disable all
|
||||
interactive prompts
|
||||
|
||||
If you use the \c{-batch} option, Plink will never give an
|
||||
interactive prompt while establishing the connection. If the
|
||||
server's host key is invalid, for example (see \k{gs-hostkey}), then
|
||||
the connection will simply be abandoned instead of asking you what
|
||||
to do next.
|
||||
|
||||
This may help Plink's behaviour when it is used in automated
|
||||
scripts: using \c{-batch}, if something goes wrong at connection
|
||||
time, the batch job will fail rather than hang.
|
||||
|
||||
\S2{plink-option-s} \I{-s-plink}\c{-s}: remote command is SSH subsystem
|
||||
|
||||
If you specify the \c{-s} option, Plink passes the specified command
|
||||
as the name of an SSH \q{\i{subsystem}} rather than an ordinary command
|
||||
line.
|
||||
|
||||
(This option is only meaningful with the SSH-2 protocol.)
|
||||
|
||||
\H{plink-batch} Using Plink in \i{batch files} and \i{scripts}
|
||||
|
||||
Once you have set up Plink to be able to log in to a remote server
|
||||
without any interactive prompting (see \k{plink-usage-batch}), you
|
||||
can use it for lots of scripting and batch purposes. For example, to
|
||||
start a backup on a remote machine, you might use a command like:
|
||||
|
||||
\c plink root@myserver /etc/backups/do-backup.sh
|
||||
|
||||
Or perhaps you want to fetch all system log lines relating to a
|
||||
particular web area:
|
||||
|
||||
\c plink mysession grep /~fred/ /var/log/httpd/access.log > fredlog
|
||||
|
||||
Any non-interactive command you could usefully run on the server
|
||||
command line, you can run in a batch file using Plink in this way.
|
||||
|
||||
\H{plink-cvs} Using Plink with \i{CVS}
|
||||
|
||||
To use Plink with CVS, you need to set the environment variable
|
||||
\i\c{CVS_RSH} to point to Plink:
|
||||
|
||||
\c set CVS_RSH=\path\to\plink.exe
|
||||
|
||||
You also need to arrange to be able to connect to a remote host
|
||||
without any interactive prompts, as described in
|
||||
\k{plink-usage-batch}.
|
||||
|
||||
You should then be able to run CVS as follows:
|
||||
|
||||
\c cvs -d :ext:user@sessionname:/path/to/repository co module
|
||||
|
||||
If you specified a username in your saved session, you don't even
|
||||
need to specify the \q{user} part of this, and you can just say:
|
||||
|
||||
\c cvs -d :ext:sessionname:/path/to/repository co module
|
||||
|
||||
\H{plink-wincvs} Using Plink with \i{WinCVS}
|
||||
|
||||
Plink can also be used with WinCVS. Firstly, arrange for Plink to be
|
||||
able to connect to a remote host non-interactively, as described in
|
||||
\k{plink-usage-batch}.
|
||||
|
||||
Then, in WinCVS, bring up the \q{Preferences} dialogue box from the
|
||||
\e{Admin} menu, and switch to the \q{Ports} tab. Tick the box there
|
||||
labelled \q{Check for an alternate \cw{rsh} name} and in the text
|
||||
entry field to the right enter the full path to \c{plink.exe}.
|
||||
Select \q{OK} on the \q{Preferences} dialogue box.
|
||||
|
||||
Next, select \q{Command Line} from the WinCVS \q{Admin} menu, and type
|
||||
a CVS command as in \k{plink-cvs}, for example:
|
||||
|
||||
\c cvs -d :ext:user@hostname:/path/to/repository co module
|
||||
|
||||
or (if you're using a saved session):
|
||||
|
||||
\c cvs -d :ext:user@sessionname:/path/to/repository co module
|
||||
|
||||
Select the folder you want to check out to with the \q{Change Folder}
|
||||
button, and click \q{OK} to check out your module. Once you've got
|
||||
modules checked out, WinCVS will happily invoke plink from the GUI for
|
||||
CVS operations.
|
||||
|
||||
\# \H{plink-whatelse} Using Plink with... ?
|
||||
318
puttysrc/DOC/PSCP.BUT
Normal file
318
puttysrc/DOC/PSCP.BUT
Normal file
@@ -0,0 +1,318 @@
|
||||
\define{versionidpscp} \versionid $Id: pscp.but 7488 2007-04-29 11:28:54Z simon $
|
||||
|
||||
\#FIXME: Need examples
|
||||
|
||||
\C{pscp} Using \i{PSCP} to transfer files securely
|
||||
|
||||
\i{PSCP}, the PuTTY Secure Copy client, is a tool for \i{transferring files}
|
||||
securely between computers using an SSH connection.
|
||||
|
||||
If you have an SSH-2 server, you might prefer PSFTP (see \k{psftp})
|
||||
for interactive use. PSFTP does not in general work with SSH-1
|
||||
servers, however.
|
||||
|
||||
\H{pscp-starting} Starting PSCP
|
||||
|
||||
PSCP is a command line application. This means that you cannot just
|
||||
double-click on its icon to run it and instead you have to bring up a
|
||||
\i{console window}. With Windows 95, 98, and ME, this is called an
|
||||
\q{MS-DOS Prompt} and with Windows NT, 2000, and XP, it is called a
|
||||
\q{Command Prompt}. It should be available from the Programs section
|
||||
of your \i{Start Menu}.
|
||||
|
||||
To start PSCP it will need either to be on your \i{\c{PATH}} or in your
|
||||
current directory. To add the directory containing PSCP to your
|
||||
\c{PATH} environment variable, type into the console window:
|
||||
|
||||
\c set PATH=C:\path\to\putty\directory;%PATH%
|
||||
|
||||
This will only work for the lifetime of that particular console
|
||||
window. To set your \c{PATH} more permanently on Windows NT, 2000,
|
||||
and XP, use the Environment tab of the System Control Panel. On
|
||||
Windows 95, 98, and ME, you will need to edit your \i\c{AUTOEXEC.BAT}
|
||||
to include a \c{set} command like the one above.
|
||||
|
||||
\H{pscp-usage} PSCP Usage
|
||||
|
||||
Once you've got a console window to type into, you can just type
|
||||
\c{pscp} on its own to bring up a usage message. This tells you the
|
||||
version of PSCP you're using, and gives you a brief summary of how to
|
||||
use PSCP:
|
||||
|
||||
\c Z:\owendadmin>pscp
|
||||
\c PuTTY Secure Copy client
|
||||
\c Release 0.60
|
||||
\c Usage: pscp [options] [user@]host:source target
|
||||
\c pscp [options] source [source...] [user@]host:target
|
||||
\c pscp [options] -ls [user@]host:filespec
|
||||
\c Options:
|
||||
\c -V print version information and exit
|
||||
\c -pgpfp print PGP key fingerprints and exit
|
||||
\c -p preserve file attributes
|
||||
\c -q quiet, don't show statistics
|
||||
\c -r copy directories recursively
|
||||
\c -v show verbose messages
|
||||
\c -load sessname Load settings from saved session
|
||||
\c -P port connect to specified port
|
||||
\c -l user connect with specified username
|
||||
\c -pw passw login with specified password
|
||||
\c -1 -2 force use of particular SSH protocol version
|
||||
\c -4 -6 force use of IPv4 or IPv6
|
||||
\c -C enable compression
|
||||
\c -i key private key file for authentication
|
||||
\c -noagent disable use of Pageant
|
||||
\c -agent enable use of Pageant
|
||||
\c -batch disable all interactive prompts
|
||||
\c -unsafe allow server-side wildcards (DANGEROUS)
|
||||
\c -sftp force use of SFTP protocol
|
||||
\c -scp force use of SCP protocol
|
||||
|
||||
(PSCP's interface is much like the Unix \c{scp} command, if you're
|
||||
familiar with that.)
|
||||
|
||||
\S{pscp-usage-basics} The basics
|
||||
|
||||
To \I{receiving files}receive (a) file(s) from a remote server:
|
||||
|
||||
\c pscp [options] [user@]host:source target
|
||||
|
||||
So to copy the file \c{/etc/hosts} from the server \c{example.com} as
|
||||
user \c{fred} to the file \c{c:\\temp\\example-hosts.txt}, you would type:
|
||||
|
||||
\c pscp fred@example.com:/etc/hosts c:\temp\example-hosts.txt
|
||||
|
||||
To \I{sending files}send (a) file(s) to a remote server:
|
||||
|
||||
\c pscp [options] source [source...] [user@]host:target
|
||||
|
||||
So to copy the local file \c{c:\\documents\\foo.txt} to the server
|
||||
\c{example.com} as user \c{fred} to the file \c{/tmp/foo} you would
|
||||
type:
|
||||
|
||||
\c pscp c:\documents\foo.txt fred@example.com:/tmp/foo
|
||||
|
||||
You can use \i{wildcards} to transfer multiple files in either
|
||||
direction, like this:
|
||||
|
||||
\c pscp c:\documents\*.doc fred@example.com:docfiles
|
||||
\c pscp fred@example.com:source/*.c c:\source
|
||||
|
||||
However, in the second case (using a wildcard for multiple remote
|
||||
files) you may see a warning saying something like \q{warning:
|
||||
remote host tried to write to a file called \cq{terminal.c} when we
|
||||
requested a file called \cq{*.c}. If this is a wildcard, consider
|
||||
upgrading to SSH-2 or using the \cq{-unsafe} option. Renaming of
|
||||
this file has been disallowed}.
|
||||
|
||||
This is due to a \I{security risk}fundamental insecurity in the old-style
|
||||
\i{SCP protocol}: the client sends the wildcard string (\c{*.c}) to the
|
||||
server, and the server sends back a sequence of file names that
|
||||
match the wildcard pattern. However, there is nothing to stop the
|
||||
server sending back a \e{different} pattern and writing over one of
|
||||
your other files: if you request \c{*.c}, the server might send back
|
||||
the file name \c{AUTOEXEC.BAT} and install a virus for you. Since
|
||||
the wildcard matching rules are decided by the server, the client
|
||||
cannot reliably verify that the filenames sent back match the
|
||||
pattern.
|
||||
|
||||
PSCP will attempt to use the newer \i{SFTP} protocol (part of SSH-2)
|
||||
where possible, which does not suffer from this security flaw. If
|
||||
you are talking to an SSH-2 server which supports SFTP, you will
|
||||
never see this warning. (You can force use of the SFTP protocol,
|
||||
if available, with \c{-sftp} - see \k{pscp-usage-options-backend}.)
|
||||
|
||||
If you really need to use a server-side wildcard with an SSH-1
|
||||
server, you can use the \i\c{-unsafe} command line option with PSCP:
|
||||
|
||||
\c pscp -unsafe fred@example.com:source/*.c c:\source
|
||||
|
||||
This will suppress the warning message and the file transfer will
|
||||
happen. However, you should be aware that by using this option you
|
||||
are giving the server the ability to write to \e{any} file in the
|
||||
target directory, so you should only use this option if you trust
|
||||
the server administrator not to be malicious (and not to let the
|
||||
server machine be cracked by malicious people). Alternatively, do
|
||||
any such download in a newly created empty directory. (Even in
|
||||
\q{unsafe} mode, PSCP will still protect you against the server
|
||||
trying to get out of that directory using pathnames including
|
||||
\cq{..}.)
|
||||
|
||||
\S2{pscp-usage-basics-user} \c{user}
|
||||
|
||||
The \i{login name} on the remote server. If this is omitted, and \c{host}
|
||||
is a PuTTY saved session, PSCP will use any username specified by that
|
||||
saved session. Otherwise, PSCP will attempt to use the local Windows
|
||||
username.
|
||||
|
||||
\S2{pscp-usage-basics-host} \I{hostname}\c{host}
|
||||
|
||||
The name of the remote server, or the name of an existing PuTTY saved
|
||||
session. In the latter case, the session's settings for hostname, port
|
||||
number, cipher type and username will be used.
|
||||
|
||||
\S2{pscp-usage-basics-source} \c{source}
|
||||
|
||||
One or more source files. \ii{Wildcards} are allowed. The syntax of
|
||||
wildcards depends on the system to which they apply, so if you are
|
||||
copying \e{from} a Windows system \e{to} a UNIX system, you should use
|
||||
Windows wildcard syntax (e.g. \c{*.*}), but if you are copying \e{from}
|
||||
a UNIX system \e{to} a Windows system, you would use the wildcard
|
||||
syntax allowed by your UNIX shell (e.g. \c{*}).
|
||||
|
||||
If the source is a remote server and you do not specify a full
|
||||
pathname (in UNIX, a pathname beginning with a \c{/} (slash)
|
||||
character), what you specify as a source will be interpreted relative
|
||||
to your \i{home directory} on the remote server.
|
||||
|
||||
\S2{pscp-usage-basics-target} \c{target}
|
||||
|
||||
The filename or directory to put the file(s). When copying from a
|
||||
remote server to a local host, you may wish simply to place the
|
||||
file(s) in the current directory. To do this, you should specify a
|
||||
target of \c{.}. For example:
|
||||
|
||||
\c pscp fred@example.com:/home/tom/.emacs .
|
||||
|
||||
...would copy \c{/home/tom/.emacs} on the remote server to the current
|
||||
directory.
|
||||
|
||||
As with the \c{source} parameter, if the target is on a remote server
|
||||
and is not a full path name, it is interpreted relative to your home
|
||||
directory on the remote server.
|
||||
|
||||
\S{pscp-usage-options} Options
|
||||
|
||||
PSCP accepts all the general command line options supported by the
|
||||
PuTTY tools, except the ones which make no sense in a file transfer
|
||||
utility. See \k{using-general-opts} for a description of these
|
||||
options. (The ones not supported by PSCP are clearly marked.)
|
||||
|
||||
PSCP also supports some of its own options. The following sections
|
||||
describe PSCP's specific command-line options.
|
||||
|
||||
\S2{pscp-usage-options-ls}\I{-ls-PSCP}\c{-ls} \I{listing files}list remote files
|
||||
|
||||
If the \c{-ls} option is given, no files are transferred; instead,
|
||||
remote files are listed. Only a hostname specification and
|
||||
optional remote file specification need be given. For example:
|
||||
|
||||
\c pscp -ls fred@example.com:dir1
|
||||
|
||||
The SCP protocol does not contain within itself a means of listing
|
||||
files. If SCP is in use, this option therefore assumes that the
|
||||
server responds appropriately to the command \c{ls\_-la};
|
||||
this may not work with all servers.
|
||||
|
||||
If SFTP is in use, this option should work with all servers.
|
||||
|
||||
\S2{pscp-usage-options-p}\I{-p-PSCP}\c{-p} \i{preserve file attributes}
|
||||
|
||||
By default, files copied with PSCP are \i{timestamp}ed with the date and
|
||||
time they were copied. The \c{-p} option preserves the original
|
||||
timestamp on copied files.
|
||||
|
||||
\S2{pscp-usage-options-q}\I{-q-PSCP}\c{-q} quiet, don't show \i{statistics}
|
||||
|
||||
By default, PSCP displays a meter displaying the progress of the
|
||||
current transfer:
|
||||
|
||||
\c mibs.tar | 168 kB | 84.0 kB/s | ETA: 00:00:13 | 13%
|
||||
|
||||
The fields in this display are (from left to right), filename, size
|
||||
(in kilobytes) of file transferred so far, estimate of how fast the
|
||||
file is being transferred (in kilobytes per second), estimated time
|
||||
that the transfer will be complete, and percentage of the file so far
|
||||
transferred. The \c{-q} option to PSCP suppresses the printing of
|
||||
these statistics.
|
||||
|
||||
\S2{pscp-usage-options-r}\I{-r-PSCP}\c{-r} copies directories \i{recursive}ly
|
||||
|
||||
By default, PSCP will only copy files. Any directories you specify to
|
||||
copy will be skipped, as will their contents. The \c{-r} option tells
|
||||
PSCP to descend into any directories you specify, and to copy them and
|
||||
their contents. This allows you to use PSCP to transfer whole
|
||||
directory structures between machines.
|
||||
|
||||
\S2{pscp-usage-options-batch}\I{-batch-PSCP}\c{-batch} avoid interactive prompts
|
||||
|
||||
If you use the \c{-batch} option, PSCP will never give an
|
||||
interactive prompt while establishing the connection. If the
|
||||
server's host key is invalid, for example (see \k{gs-hostkey}), then
|
||||
the connection will simply be abandoned instead of asking you what
|
||||
to do next.
|
||||
|
||||
This may help PSCP's behaviour when it is used in automated
|
||||
scripts: using \c{-batch}, if something goes wrong at connection
|
||||
time, the batch job will fail rather than hang.
|
||||
|
||||
\S2{pscp-usage-options-backend}\i\c{-sftp}, \i\c{-scp} force use of
|
||||
particular protocol
|
||||
|
||||
As mentioned in \k{pscp-usage-basics}, there are two different file
|
||||
transfer protocols in use with SSH. Despite its name, PSCP (like many
|
||||
other ostensible \cw{scp} clients) can use either of these protocols.
|
||||
|
||||
The older \i{SCP protocol} does not have a written specification and
|
||||
leaves a lot of detail to the server platform. \ii{Wildcards} are expanded
|
||||
on the server. The simple design means that any wildcard specification
|
||||
supported by the server platform (such as brace expansion) can be
|
||||
used, but also leads to interoperability issues such as with filename
|
||||
quoting (for instance, where filenames contain spaces), and also the
|
||||
security issue described in \k{pscp-usage-basics}.
|
||||
|
||||
The newer \i{SFTP} protocol, which is usually associated with SSH-2
|
||||
servers, is specified in a more platform independent way, and leaves
|
||||
issues such as wildcard syntax up to the client. (PuTTY's SFTP
|
||||
wildcard syntax is described in \k{psftp-wildcards}.) This makes it
|
||||
more consistent across platforms, more suitable for scripting and
|
||||
automation, and avoids security issues with wildcard matching.
|
||||
|
||||
Normally PSCP will attempt to use the SFTP protocol, and only fall
|
||||
back to the SCP protocol if SFTP is not available on the server.
|
||||
|
||||
The \c{-scp} option forces PSCP to use the SCP protocol or quit.
|
||||
|
||||
The \c{-sftp} option forces PSCP to use the SFTP protocol or quit.
|
||||
When this option is specified, PSCP looks harder for an SFTP server,
|
||||
which may allow use of SFTP with SSH-1 depending on server setup.
|
||||
|
||||
\S{pscp-retval} \ii{Return value}
|
||||
|
||||
PSCP returns an \i\cw{ERRORLEVEL} of zero (success) only if the files
|
||||
were correctly transferred. You can test for this in a \i{batch file},
|
||||
using code such as this:
|
||||
|
||||
\c pscp file*.* user@hostname:
|
||||
\c if errorlevel 1 echo There was an error
|
||||
|
||||
\S{pscp-pubkey} Using \i{public key authentication} with PSCP
|
||||
|
||||
Like PuTTY, PSCP can authenticate using a public key instead of a
|
||||
password. There are three ways you can do this.
|
||||
|
||||
Firstly, PSCP can use PuTTY saved sessions in place of hostnames
|
||||
(see \k{pscp-usage-basics-host}). So you would do this:
|
||||
|
||||
\b Run PuTTY, and create a PuTTY saved session (see
|
||||
\k{config-saving}) which specifies your private key file (see
|
||||
\k{config-ssh-privkey}). You will probably also want to specify a
|
||||
username to log in as (see \k{config-username}).
|
||||
|
||||
\b In PSCP, you can now use the name of the session instead of a
|
||||
hostname: type \c{pscp sessionname:file localfile}, where
|
||||
\c{sessionname} is replaced by the name of your saved session.
|
||||
|
||||
Secondly, you can supply the name of a private key file on the command
|
||||
line, with the \c{-i} option. See \k{using-cmdline-identity} for more
|
||||
information.
|
||||
|
||||
Thirdly, PSCP will attempt to authenticate using Pageant if Pageant
|
||||
is running (see \k{pageant}). So you would do this:
|
||||
|
||||
\b Ensure Pageant is running, and has your private key stored in it.
|
||||
|
||||
\b Specify a user and host name to PSCP as normal. PSCP will
|
||||
automatically detect Pageant and try to use the keys within it.
|
||||
|
||||
For more general information on public-key authentication, see
|
||||
\k{pubkey}.
|
||||
588
puttysrc/DOC/PSFTP.BUT
Normal file
588
puttysrc/DOC/PSFTP.BUT
Normal file
@@ -0,0 +1,588 @@
|
||||
\define{versionidpsftp} \versionid $Id: psftp.but 6717 2006-05-26 12:45:21Z simon $
|
||||
|
||||
\C{psftp} Using \i{PSFTP} to transfer files securely
|
||||
|
||||
\i{PSFTP}, the PuTTY SFTP client, is a tool for \i{transferring files}
|
||||
securely between computers using an SSH connection.
|
||||
|
||||
PSFTP differs from PSCP in the following ways:
|
||||
|
||||
\b PSCP should work on virtually every SSH server. PSFTP uses the
|
||||
new \i{SFTP} protocol, which is a feature of SSH-2 only. (PSCP will also
|
||||
use this protocol if it can, but there is an SSH-1 equivalent it can
|
||||
fall back to if it cannot.)
|
||||
|
||||
\b PSFTP allows you to run an interactive file transfer session,
|
||||
much like the Windows \i\c{ftp} program. You can list the contents of
|
||||
directories, browse around the file system, issue multiple \c{get}
|
||||
and \c{put} commands, and eventually log out. By contrast, PSCP is
|
||||
designed to do a single file transfer operation and immediately
|
||||
terminate.
|
||||
|
||||
\H{psftp-starting} Starting PSFTP
|
||||
|
||||
The usual way to start PSFTP is from a command prompt, much like
|
||||
PSCP. To do this, it will need either to be on your \i{\c{PATH}} or
|
||||
in your current directory. To add the directory containing PSFTP to
|
||||
your \c{PATH} environment variable, type into the console window:
|
||||
|
||||
\c set PATH=C:\path\to\putty\directory;%PATH%
|
||||
|
||||
Unlike PSCP, however, PSFTP has no complex command-line syntax; you
|
||||
just specify a host name and perhaps a user name:
|
||||
|
||||
\c psftp server.example.com
|
||||
|
||||
or perhaps
|
||||
|
||||
\c psftp fred@server.example.com
|
||||
|
||||
Alternatively, if you just type \c{psftp} on its own (or
|
||||
double-click the PSFTP icon in the Windows GUI), you will see the
|
||||
PSFTP prompt, and a message telling you PSFTP has not connected to
|
||||
any server:
|
||||
|
||||
\c C:\>psftp
|
||||
\c psftp: no hostname specified; use "open host.name" to connect
|
||||
\c psftp>
|
||||
|
||||
At this point you can type \c{open server.example.com} or \c{open
|
||||
fred@server.example.com} to start a session.
|
||||
|
||||
PSFTP accepts all the general command line options supported by the
|
||||
PuTTY tools, except the ones which make no sense in a file transfer
|
||||
utility. See \k{using-general-opts} for a description of these
|
||||
options. (The ones not supported by PSFTP are clearly marked.)
|
||||
|
||||
PSFTP also supports some of its own options. The following sections
|
||||
describe PSFTP's specific command-line options.
|
||||
|
||||
\S{psftp-option-b} \I{-b-PSFTP}\c{-b}: specify a file containing batch commands
|
||||
|
||||
In normal operation, PSFTP is an interactive program which displays
|
||||
a command line and accepts commands from the keyboard.
|
||||
|
||||
If you need to do automated tasks with PSFTP, you would probably
|
||||
prefer to \I{batch scripts in PSFTP}specify a set of commands in
|
||||
advance and have them executed automatically. The \c{-b} option
|
||||
allows you to do this. You use it with a file name containing batch
|
||||
commands. For example, you might create a file called \c{myscript.scr}
|
||||
containing lines like this:
|
||||
|
||||
\c cd /home/ftp/users/jeff
|
||||
\c del jam-old.tar.gz
|
||||
\c ren jam.tar.gz jam-old.tar.gz
|
||||
\c put jam.tar.gz
|
||||
\c chmod a+r jam.tar.gz
|
||||
|
||||
and then you could run the script by typing
|
||||
|
||||
\c psftp user@hostname -b myscript.scr
|
||||
|
||||
When you run a batch script in this way, PSFTP will abort the script
|
||||
if any command fails to complete successfully. To change this
|
||||
behaviour, you can add the \c{-be} option (\k{psftp-option-be}).
|
||||
|
||||
PSFTP will terminate after it finishes executing the batch script.
|
||||
|
||||
\S{psftp-option-bc} \I{-bc-PSFTP}\c{-bc}: display batch commands as they are run
|
||||
|
||||
The \c{-bc} option alters what PSFTP displays while processing a
|
||||
batch script specified with \c{-b}. With the \c{-bc} option, PSFTP
|
||||
will display prompts and commands just as if the commands had been
|
||||
typed at the keyboard. So instead of seeing this:
|
||||
|
||||
\c C:\>psftp fred@hostname -b batchfile
|
||||
\c Sent username "fred"
|
||||
\c Remote working directory is /home/fred
|
||||
\c Listing directory /home/fred/lib
|
||||
\c drwxrwsr-x 4 fred fred 1024 Sep 6 10:42 .
|
||||
\c drwxr-sr-x 25 fred fred 2048 Dec 14 09:36 ..
|
||||
\c drwxrwsr-x 3 fred fred 1024 Apr 17 2000 jed
|
||||
\c lrwxrwxrwx 1 fred fred 24 Apr 17 2000 timber
|
||||
\c drwxrwsr-x 2 fred fred 1024 Mar 13 2000 trn
|
||||
|
||||
you might see this:
|
||||
|
||||
\c C:\>psftp fred@hostname -bc -b batchfile
|
||||
\c Sent username "fred"
|
||||
\c Remote working directory is /home/fred
|
||||
\c psftp> dir lib
|
||||
\c Listing directory /home/fred/lib
|
||||
\c drwxrwsr-x 4 fred fred 1024 Sep 6 10:42 .
|
||||
\c drwxr-sr-x 25 fred fred 2048 Dec 14 09:36 ..
|
||||
\c drwxrwsr-x 3 fred fred 1024 Apr 17 2000 jed
|
||||
\c lrwxrwxrwx 1 fred fred 24 Apr 17 2000 timber
|
||||
\c drwxrwsr-x 2 fred fred 1024 Mar 13 2000 trn
|
||||
\c psftp> quit
|
||||
|
||||
\S{psftp-option-be} \I{-be-PSFTP}\c{-be}: continue batch processing on errors
|
||||
|
||||
When running a batch file, this additional option causes PSFTP to
|
||||
continue processing even if a command fails to complete successfully.
|
||||
|
||||
You might want this to happen if you wanted to delete a file and
|
||||
didn't care if it was already not present, for example.
|
||||
|
||||
\S{psftp-usage-options-batch} \I{-batch-PSFTP}\c{-batch}: avoid
|
||||
interactive prompts
|
||||
|
||||
If you use the \c{-batch} option, PSFTP will never give an
|
||||
interactive prompt while establishing the connection. If the
|
||||
server's host key is invalid, for example (see \k{gs-hostkey}), then
|
||||
the connection will simply be abandoned instead of asking you what
|
||||
to do next.
|
||||
|
||||
This may help PSFTP's behaviour when it is used in automated
|
||||
scripts: using \c{-batch}, if something goes wrong at connection
|
||||
time, the batch job will fail rather than hang.
|
||||
|
||||
\H{psftp-commands} Running PSFTP
|
||||
|
||||
Once you have started your PSFTP session, you will see a \c{psftp>}
|
||||
prompt. You can now type commands to perform file-transfer
|
||||
functions. This section lists all the available commands.
|
||||
|
||||
\S{psftp-quoting} \I{quoting, in PSFTP}General quoting rules for PSFTP commands
|
||||
|
||||
Most PSFTP commands are considered by the PSFTP command interpreter
|
||||
as a sequence of words, separated by spaces. For example, the
|
||||
command \c{ren oldfilename newfilename} splits up into three words:
|
||||
\c{ren} (the command name), \c{oldfilename} (the name of the file to
|
||||
be renamed), and \c{newfilename} (the new name to give the file).
|
||||
|
||||
Sometimes you will need to specify \I{spaces in filenames}file names
|
||||
that \e{contain} spaces. In order to do this, you can surround
|
||||
the file name with double quotes. This works equally well for
|
||||
local file names and remote file names:
|
||||
|
||||
\c psftp> get "spacey file name.txt" "save it under this name.txt"
|
||||
|
||||
The double quotes themselves will not appear as part of the file
|
||||
names; they are removed by PSFTP and their only effect is to stop
|
||||
the spaces inside them from acting as word separators.
|
||||
|
||||
If you need to \e{use} a double quote (on some types of remote
|
||||
system, such as Unix, you are allowed to use double quotes in file
|
||||
names), you can do this by doubling it. This works both inside and
|
||||
outside double quotes. For example, this command
|
||||
|
||||
\c psftp> ren ""this"" "a file with ""quotes"" in it"
|
||||
|
||||
will take a file whose current name is \c{"this"} (with a double
|
||||
quote character at the beginning and the end) and rename it to a
|
||||
file whose name is \c{a file with "quotes" in it}.
|
||||
|
||||
(The one exception to the PSFTP quoting rules is the \c{!} command,
|
||||
which passes its command line straight to Windows without splitting
|
||||
it up into words at all. See \k{psftp-cmd-pling}.)
|
||||
|
||||
\S{psftp-wildcards} Wildcards in PSFTP
|
||||
|
||||
Several commands in PSFTP support \q{\i{wildcards}} to select multiple
|
||||
files.
|
||||
|
||||
For \e{local} file specifications (such as the first argument to
|
||||
\c{put}), wildcard rules for the local operating system are used. For
|
||||
instance, PSFTP running on Windows might require the use of \c{*.*}
|
||||
where PSFTP on Unix would need \c{*}.
|
||||
|
||||
For \e{remote} file specifications (such as the first argument to
|
||||
\c{get}), PSFTP uses a standard wildcard syntax (similar to \i{POSIX}
|
||||
wildcards):
|
||||
|
||||
\b \c{*} matches any sequence of characters (including a zero-length
|
||||
sequence).
|
||||
|
||||
\b \c{?} matches exactly one character.
|
||||
|
||||
\b \c{[abc]} matches exactly one character which can be \cw{a},
|
||||
\cw{b}, or \cw{c}.
|
||||
|
||||
\lcont{
|
||||
|
||||
\c{[a-z]} matches any character in the range \cw{a} to \cw{z}.
|
||||
|
||||
\c{[^abc]} matches a single character that is \e{not} \cw{a}, \cw{b},
|
||||
or \cw{c}.
|
||||
|
||||
Special cases: \c{[-a]} matches a literal hyphen (\cw{-}) or \cw{a};
|
||||
\c{[^-a]} matches all other characters. \c{[a^]} matches a literal
|
||||
caret (\cw{^}) or \cw{a}.
|
||||
|
||||
}
|
||||
|
||||
\b \c{\\} (backslash) before any of the above characters (or itself)
|
||||
removes that character's special meaning.
|
||||
|
||||
A leading period (\cw{.}) on a filename is not treated specially,
|
||||
unlike in some Unix contexts; \c{get *} will fetch all files, whether
|
||||
or not they start with a leading period.
|
||||
|
||||
\S{psftp-cmd-open} The \c{open} command: start a session
|
||||
|
||||
If you started PSFTP by double-clicking in the GUI, or just by
|
||||
typing \c{psftp} at the command line, you will need to open a
|
||||
connection to an SFTP server before you can issue any other
|
||||
commands (except \c{help} and \c{quit}).
|
||||
|
||||
To create a connection, type \c{open host.name}, or if you need to
|
||||
specify a user name as well you can type \c{open user@host.name}.
|
||||
|
||||
Once you have issued this command, you will not be able to issue it
|
||||
again, \e{even} if the command fails (for example, if you mistype
|
||||
the host name or the connection times out). So if the connection is
|
||||
not opened successfully, PSFTP will terminate immediately.
|
||||
|
||||
\S{psftp-cmd-quit} The \c{quit} command: end your session
|
||||
|
||||
When you have finished your session, type the command \c{quit} to
|
||||
close the connection, terminate PSFTP and return to the command line
|
||||
(or just close the PSFTP console window if you started it from the
|
||||
GUI).
|
||||
|
||||
You can also use the \c{bye} and \c{exit} commands, which have
|
||||
exactly the same effect.
|
||||
|
||||
\S{psftp-cmd-close} The \c{close} command: close your connection
|
||||
|
||||
If you just want to close the network connection but keep PSFTP
|
||||
running, you can use the \c{close} command. You can then use the
|
||||
\c{open} command to open a new connection.
|
||||
|
||||
\S{psftp-cmd-help} The \c{help} command: get quick online help
|
||||
|
||||
If you type \c{help}, PSFTP will give a short list of the available
|
||||
commands.
|
||||
|
||||
If you type \c{help} with a command name - for example, \c{help get}
|
||||
- then PSFTP will give a short piece of help on that particular
|
||||
command.
|
||||
|
||||
\S{psftp-cmd-cd} The \c{cd} and \c{pwd} commands: changing the
|
||||
remote \i{working directory}
|
||||
|
||||
PSFTP maintains a notion of your \q{working directory} on the
|
||||
server. This is the default directory that other commands will
|
||||
operate on. For example, if you type \c{get filename.dat} then PSFTP
|
||||
will look for \c{filename.dat} in your remote working directory on
|
||||
the server.
|
||||
|
||||
To change your remote working directory, use the \c{cd} command. If
|
||||
you don't provide an argument, \c{cd} will return you to your home
|
||||
directory on the server (more precisely, the remote directory you were
|
||||
in at the start of the connection).
|
||||
|
||||
To display your current remote working directory, type \c{pwd}.
|
||||
|
||||
\S{psftp-cmd-lcd} The \c{lcd} and \c{lpwd} commands: changing the
|
||||
local \i{working directory}
|
||||
|
||||
As well as having a working directory on the remote server, PSFTP
|
||||
also has a working directory on your local machine (just like any
|
||||
other Windows process). This is the default local directory that
|
||||
other commands will operate on. For example, if you type \c{get
|
||||
filename.dat} then PSFTP will save the resulting file as
|
||||
\c{filename.dat} in your local working directory.
|
||||
|
||||
To change your local working directory, use the \c{lcd} command. To
|
||||
display your current local working directory, type \c{lpwd}.
|
||||
|
||||
\S{psftp-cmd-get} The \c{get} command: fetch a file from the server
|
||||
|
||||
To \i{download a file} from the server and store it on your local PC,
|
||||
you use the \c{get} command.
|
||||
|
||||
In its simplest form, you just use this with a file name:
|
||||
|
||||
\c get myfile.dat
|
||||
|
||||
If you want to store the file locally under a different name,
|
||||
specify the local file name after the remote one:
|
||||
|
||||
\c get myfile.dat newname.dat
|
||||
|
||||
This will fetch the file on the server called \c{myfile.dat}, but
|
||||
will save it to your local machine under the name \c{newname.dat}.
|
||||
|
||||
To fetch an entire directory \i{recursive}ly, you can use the \c{-r}
|
||||
option:
|
||||
|
||||
\c get -r mydir
|
||||
\c get -r mydir newname
|
||||
|
||||
(If you want to fetch a file whose name starts with a hyphen, you
|
||||
may have to use the \c{--} special argument, which stops \c{get}
|
||||
from interpreting anything as a switch after it. For example,
|
||||
\cq{get -- -silly-name-}.)
|
||||
|
||||
\S{psftp-cmd-put} The \c{put} command: send a file to the server
|
||||
|
||||
To \i{upload a file} to the server from your local PC, you use the
|
||||
\c{put} command.
|
||||
|
||||
In its simplest form, you just use this with a file name:
|
||||
|
||||
\c put myfile.dat
|
||||
|
||||
If you want to store the file remotely under a different name,
|
||||
specify the remote file name after the local one:
|
||||
|
||||
\c put myfile.dat newname.dat
|
||||
|
||||
This will send the local file called \c{myfile.dat}, but will store
|
||||
it on the server under the name \c{newname.dat}.
|
||||
|
||||
To send an entire directory \i{recursive}ly, you can use the \c{-r}
|
||||
option:
|
||||
|
||||
\c put -r mydir
|
||||
\c put -r mydir newname
|
||||
|
||||
(If you want to send a file whose name starts with a hyphen, you may
|
||||
have to use the \c{--} special argument, which stops \c{put} from
|
||||
interpreting anything as a switch after it. For example, \cq{put --
|
||||
-silly-name-}.)
|
||||
|
||||
\S{psftp-cmd-mgetput} The \c{mget} and \c{mput} commands: fetch or
|
||||
send multiple files
|
||||
|
||||
\c{mget} works almost exactly like \c{get}, except that it allows
|
||||
you to specify more than one file to fetch at once. You can do this
|
||||
in two ways:
|
||||
|
||||
\b by giving two or more explicit file names (\cq{mget file1.txt
|
||||
file2.txt})
|
||||
|
||||
\b by using a wildcard (\cq{mget *.txt}).
|
||||
|
||||
Every argument to \c{mget} is treated as the name of a file to fetch
|
||||
(unlike \c{get}, which will interpret at most one argument like
|
||||
that, and a second argument will be treated as an alternative name
|
||||
under which to store the retrieved file), or a \i{wildcard} expression
|
||||
matching more than one file.
|
||||
|
||||
The \c{-r} and \c{--} options from \c{get} are also available with
|
||||
\c{mget}.
|
||||
|
||||
\c{mput} is similar to \c{put}, with the same differences.
|
||||
|
||||
\S{psftp-cmd-regetput} The \c{reget} and \c{reput} commands:
|
||||
\i{resuming file transfers}
|
||||
|
||||
If a file transfer fails half way through, and you end up with half
|
||||
the file stored on your disk, you can resume the file transfer using
|
||||
the \c{reget} and \c{reput} commands. These work exactly like the
|
||||
\c{get} and \c{put} commands, but they check for the presence of the
|
||||
half-written destination file and start transferring from where the
|
||||
last attempt left off.
|
||||
|
||||
The syntax of \c{reget} and \c{reput} is exactly the same as the
|
||||
syntax of \c{get} and \c{put}:
|
||||
|
||||
\c reget myfile.dat
|
||||
\c reget myfile.dat newname.dat
|
||||
\c reget -r mydir
|
||||
|
||||
These commands are intended mainly for resuming interrupted transfers.
|
||||
They assume that the remote file or directory structure has not
|
||||
changed in any way; if there have been changes, you may end up with
|
||||
corrupted files. In particular, the \c{-r} option will not pick up
|
||||
changes to files or directories already transferred in full.
|
||||
|
||||
\S{psftp-cmd-dir} The \c{dir} command: \I{listing files}list remote files
|
||||
|
||||
To list the files in your remote working directory, just type
|
||||
\c{dir}.
|
||||
|
||||
You can also list the contents of a different directory by typing
|
||||
\c{dir} followed by the directory name:
|
||||
|
||||
\c dir /home/fred
|
||||
\c dir sources
|
||||
|
||||
And you can list a subset of the contents of a directory by
|
||||
providing a wildcard:
|
||||
|
||||
\c dir /home/fred/*.txt
|
||||
\c dir sources/*.c
|
||||
|
||||
The \c{ls} command works exactly the same way as \c{dir}.
|
||||
|
||||
\S{psftp-cmd-chmod} The \c{chmod} command: change permissions on
|
||||
remote files
|
||||
|
||||
\I{changing permissions on files}PSFTP
|
||||
allows you to modify the file permissions on files and
|
||||
directories on the server. You do this using the \c{chmod} command,
|
||||
which works very much like the Unix \c{chmod} command.
|
||||
|
||||
The basic syntax is \c{chmod modes file}, where \c{modes} represents
|
||||
a modification to the file permissions, and \c{file} is the filename
|
||||
to modify. You can specify multiple files or wildcards. For example:
|
||||
|
||||
\c chmod go-rwx,u+w privatefile
|
||||
\c chmod a+r public*
|
||||
\c chmod 640 groupfile1 groupfile2
|
||||
|
||||
The \c{modes} parameter can be a set of octal digits in the Unix
|
||||
style. (If you don't know what this means, you probably don't want
|
||||
to be using it!) Alternatively, it can be a list of permission
|
||||
modifications, separated by commas. Each modification consists of:
|
||||
|
||||
\b The people affected by the modification. This can be \c{u} (the
|
||||
owning user), \c{g} (members of the owning group), or \c{o}
|
||||
(everybody else - \q{others}), or some combination of those. It can
|
||||
also be \c{a} (\q{all}) to affect everybody at once.
|
||||
|
||||
\b A \c{+} or \c{-} sign, indicating whether permissions are to be
|
||||
added or removed.
|
||||
|
||||
\b The actual permissions being added or removed. These can be
|
||||
\I{read permission}\c{r} (permission to read the file),
|
||||
\I{write permission}\c{w} (permission to write to the file), and
|
||||
\I{execute permission}\c{x} (permission to execute the file, or in
|
||||
the case of a directory, permission to access files within the
|
||||
directory).
|
||||
|
||||
So the above examples would do:
|
||||
|
||||
\b The first example: \c{go-rwx} removes read, write and execute
|
||||
permissions for members of the owning group and everybody else (so
|
||||
the only permissions left are the ones for the file owner). \c{u+w}
|
||||
adds write permission for the file owner.
|
||||
|
||||
\b The second example: \c{a+r} adds read permission for everybody to
|
||||
all files and directories starting with \q{public}.
|
||||
|
||||
In addition to all this, there are a few extra special cases for
|
||||
\i{Unix} systems. On non-Unix systems these are unlikely to be useful:
|
||||
|
||||
\b You can specify \c{u+s} and \c{u-s} to add or remove the Unix
|
||||
\i{set-user-ID bit}. This is typically only useful for special purposes;
|
||||
refer to your Unix documentation if you're not sure about it.
|
||||
|
||||
\b You can specify \c{g+s} and \c{g-s} to add or remove the Unix
|
||||
\i{set-group-ID bit}. On a file, this works similarly to the set-user-ID
|
||||
bit (see your Unix documentation again); on a directory it ensures
|
||||
that files created in the directory are accessible by members of the
|
||||
group that owns the directory.
|
||||
|
||||
\b You can specify \c{+t} and \c{-t} to add or remove the Unix
|
||||
\q{\i{sticky bit}}. When applied to a directory, this means that the
|
||||
owner of a file in that directory can delete the file (whereas
|
||||
normally only the owner of the \e{directory} would be allowed to).
|
||||
|
||||
\S{psftp-cmd-del} The \c{del} command: delete remote files
|
||||
|
||||
To \I{deleting files}delete a file on the server, type \c{del} and
|
||||
then the filename or filenames:
|
||||
|
||||
\c del oldfile.dat
|
||||
\c del file1.txt file2.txt
|
||||
\c del *.o
|
||||
|
||||
Files will be deleted without further prompting, even if multiple files
|
||||
are specified.
|
||||
|
||||
\c{del} will only delete files. You cannot use it to delete
|
||||
directories; use \c{rmdir} for that.
|
||||
|
||||
The \c{rm} command works exactly the same way as \c{del}.
|
||||
|
||||
\S{psftp-cmd-mkdir} The \c{mkdir} command: create remote directories
|
||||
|
||||
To \i{create a directory} on the server, type \c{mkdir} and then the
|
||||
directory name:
|
||||
|
||||
\c mkdir newstuff
|
||||
|
||||
You can specify multiple directories to create at once:
|
||||
|
||||
\c mkdir dir1 dir2 dir3
|
||||
|
||||
\S{psftp-cmd-rmdir} The \c{rmdir} command: remove remote directories
|
||||
|
||||
To \i{remove a directory} on the server, type \c{rmdir} and then the
|
||||
directory name or names:
|
||||
|
||||
\c rmdir oldstuff
|
||||
\c rmdir *.old ancient
|
||||
|
||||
Directories will be deleted without further prompting, even if
|
||||
multiple directories are specified.
|
||||
|
||||
Most SFTP servers will probably refuse to remove a directory if the
|
||||
directory has anything in it, so you will need to delete the
|
||||
contents first.
|
||||
|
||||
\S{psftp-cmd-mv} The \c{mv} command: move and \i{rename remote files}
|
||||
|
||||
To rename a single file on the server, type \c{mv}, then the current
|
||||
file name, and then the new file name:
|
||||
|
||||
\c mv oldfile newname
|
||||
|
||||
You can also move the file into a different directory and change the
|
||||
name:
|
||||
|
||||
\c mv oldfile dir/newname
|
||||
|
||||
To move one or more files into an existing subdirectory, specify the
|
||||
files (using wildcards if desired), and then the destination
|
||||
directory:
|
||||
|
||||
\c mv file dir
|
||||
\c mv file1 dir1/file2 dir2
|
||||
\c mv *.c *.h ..
|
||||
|
||||
The \c{rename} and \c{ren} commands work exactly the same way as
|
||||
\c{mv}.
|
||||
|
||||
\S{psftp-cmd-pling} The \c{!} command: run a \i{local Windows command}
|
||||
|
||||
You can run local Windows commands using the \c{!} command. This is
|
||||
the only PSFTP command that is not subject to the command quoting
|
||||
rules given in \k{psftp-quoting}. If any command line begins with
|
||||
the \c{!} character, then the rest of the line will be passed
|
||||
straight to Windows without further translation.
|
||||
|
||||
For example, if you want to move an existing copy of a file out of
|
||||
the way before downloading an updated version, you might type:
|
||||
|
||||
\c psftp> !ren myfile.dat myfile.bak
|
||||
\c psftp> get myfile.dat
|
||||
|
||||
using the Windows \c{ren} command to rename files on your local PC.
|
||||
|
||||
\H{psftp-pubkey} Using \i{public key authentication} with PSFTP
|
||||
|
||||
Like PuTTY, PSFTP can authenticate using a public key instead of a
|
||||
password. There are three ways you can do this.
|
||||
|
||||
Firstly, PSFTP can use PuTTY saved sessions in place of hostnames.
|
||||
So you might do this:
|
||||
|
||||
\b Run PuTTY, and create a PuTTY saved session (see
|
||||
\k{config-saving}) which specifies your private key file (see
|
||||
\k{config-ssh-privkey}). You will probably also want to specify a
|
||||
username to log in as (see \k{config-username}).
|
||||
|
||||
\b In PSFTP, you can now use the name of the session instead of a
|
||||
hostname: type \c{psftp sessionname}, where \c{sessionname} is
|
||||
replaced by the name of your saved session.
|
||||
|
||||
Secondly, you can supply the name of a private key file on the command
|
||||
line, with the \c{-i} option. See \k{using-cmdline-identity} for more
|
||||
information.
|
||||
|
||||
Thirdly, PSFTP will attempt to authenticate using Pageant if Pageant
|
||||
is running (see \k{pageant}). So you would do this:
|
||||
|
||||
\b Ensure Pageant is running, and has your private key stored in it.
|
||||
|
||||
\b Specify a user and host name to PSFTP as normal. PSFTP will
|
||||
automatically detect Pageant and try to use the keys within it.
|
||||
|
||||
For more general information on public-key authentication, see
|
||||
\k{pubkey}.
|
||||
442
puttysrc/DOC/PUBKEY.BUT
Normal file
442
puttysrc/DOC/PUBKEY.BUT
Normal file
@@ -0,0 +1,442 @@
|
||||
\define{versionidpubkey} \versionid $Id: pubkey.but 6905 2006-11-15 12:56:48Z jacob $
|
||||
|
||||
\C{pubkey} Using public keys for SSH authentication
|
||||
|
||||
\H{pubkey-intro} \ii{Public key authentication} - an introduction
|
||||
|
||||
Public key authentication is an alternative means of identifying
|
||||
yourself to a login server, instead of typing a password. It is more
|
||||
secure and more flexible, but more difficult to set up.
|
||||
|
||||
In conventional password authentication, you prove you are who you
|
||||
claim to be by proving that you know the correct password. The only
|
||||
way to prove you know the password is to tell the server what you
|
||||
think the password is. This means that if the server has been
|
||||
hacked, or \i\e{spoofed} (see \k{gs-hostkey}), an attacker can learn
|
||||
your password.
|
||||
|
||||
Public key authentication solves this problem. You generate a \i\e{key
|
||||
pair}, consisting of a \i{public key} (which everybody is allowed to
|
||||
know) and a \i{private key} (which you keep secret and do not give to
|
||||
anybody). The private key is able to generate \i\e{signatures}.
|
||||
A signature created using your private key cannot be forged by
|
||||
anybody who does not have that key; but anybody who has your public
|
||||
key can verify that a particular signature is genuine.
|
||||
|
||||
So you generate a key pair on your own computer, and you copy the
|
||||
public key to the server. Then, when the server asks you to prove
|
||||
who you are, PuTTY can generate a signature using your private key.
|
||||
The server can verify that signature (since it has your public key)
|
||||
and allow you to log in. Now if the server is hacked or spoofed, the
|
||||
attacker does not gain your private key or password; they only gain
|
||||
one signature. And signatures cannot be re-used, so they have gained
|
||||
nothing.
|
||||
|
||||
There is a problem with this: if your private key is stored
|
||||
unprotected on your own computer, then anybody who gains access to
|
||||
\e{that} will be able to generate signatures as if they were you. So
|
||||
they will be able to log in to your server under your account. For
|
||||
this reason, your private key is usually \i\e{encrypted} when it is
|
||||
stored on your local machine, using a \i{passphrase} of your choice. In
|
||||
order to generate a signature, PuTTY must decrypt the key, so you
|
||||
have to type your passphrase.
|
||||
|
||||
This can make public-key authentication less convenient than
|
||||
password authentication: every time you log in to the server,
|
||||
instead of typing a short password, you have to type a longer
|
||||
passphrase. One solution to this is to use an \i\e{authentication
|
||||
agent}, a separate program which holds decrypted private keys and
|
||||
generates signatures on request. PuTTY's authentication agent is
|
||||
called \i{Pageant}. When you begin a Windows session, you start Pageant
|
||||
and load your private key into it (typing your passphrase once). For
|
||||
the rest of your session, you can start PuTTY any number of times
|
||||
and Pageant will automatically generate signatures without you
|
||||
having to do anything. When you close your Windows session, Pageant
|
||||
shuts down, without ever having stored your decrypted private key on
|
||||
disk. Many people feel this is a good compromise between security
|
||||
and convenience. See \k{pageant} for further details.
|
||||
|
||||
There is more than one \i{public-key algorithm} available. The most
|
||||
common is \i{RSA}, but others exist, notably \i{DSA} (otherwise known as
|
||||
DSS), the USA's federal Digital Signature Standard. The key types
|
||||
supported by PuTTY are described in \k{puttygen-keytype}.
|
||||
|
||||
\H{pubkey-puttygen} Using \i{PuTTYgen}, the PuTTY key generator
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.general}
|
||||
|
||||
PuTTYgen is a key generator. It \I{generating keys}generates pairs of
|
||||
public and private keys to be used with PuTTY, PSCP, and Plink, as well
|
||||
as the PuTTY authentication agent, Pageant (see \k{pageant}). PuTTYgen
|
||||
generates RSA and DSA keys.
|
||||
|
||||
When you run PuTTYgen you will see a window where you have two
|
||||
choices: \q{Generate}, to generate a new public/private key pair, or
|
||||
\q{Load} to load in an existing private key.
|
||||
|
||||
\S{puttygen-generating} Generating a new key
|
||||
|
||||
This is a general outline of the procedure for generating a new key
|
||||
pair. The following sections describe the process in more detail.
|
||||
|
||||
\b First, you need to select which type of key you want to generate,
|
||||
and also select the strength of the key. This is described in more
|
||||
detail in \k{puttygen-keytype} and
|
||||
\k{puttygen-strength}.
|
||||
|
||||
\b Then press the \q{Generate} button, to actually generate the key.
|
||||
\K{puttygen-generate} describes this step.
|
||||
|
||||
\b Once you have generated the key, select a comment field
|
||||
(\k{puttygen-comment}) and a passphrase (\k{puttygen-passphrase}).
|
||||
|
||||
\b Now you're ready to save the private key to disk; press the
|
||||
\q{Save private key} button. (See \k{puttygen-savepriv}).
|
||||
|
||||
Your key pair is now ready for use. You may also want to copy the
|
||||
public key to your server, either by copying it out of the \q{Public
|
||||
key for pasting into authorized_keys file} box (see
|
||||
\k{puttygen-pastekey}), or by using the \q{Save public key} button
|
||||
(\k{puttygen-savepub}). However, you don't need to do this
|
||||
immediately; if you want, you can load the private key back into
|
||||
PuTTYgen later (see \k{puttygen-load}) and the public key will be
|
||||
available for copying and pasting again.
|
||||
|
||||
\K{pubkey-gettingready} describes the typical process of configuring
|
||||
PuTTY to attempt public-key authentication, and configuring your SSH
|
||||
server to accept it.
|
||||
|
||||
\S{puttygen-keytype} Selecting the type of key
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.keytype}
|
||||
|
||||
Before generating a key pair using PuTTYgen, you need to select
|
||||
which type of key you need. PuTTYgen currently supports three types
|
||||
of key:
|
||||
|
||||
\b An \i{RSA} key for use with the SSH-1 protocol.
|
||||
|
||||
\b An RSA key for use with the SSH-2 protocol.
|
||||
|
||||
\b A \i{DSA} key for use with the SSH-2 protocol.
|
||||
|
||||
The SSH-1 protocol only supports RSA keys; if you will be connecting
|
||||
using the SSH-1 protocol, you must select the first key type or your
|
||||
key will be completely useless.
|
||||
|
||||
The SSH-2 protocol supports more than one key type. The two types
|
||||
supported by PuTTY are RSA and DSA.
|
||||
|
||||
The PuTTY developers \e{strongly} recommend you use RSA.
|
||||
\I{security risk}\i{DSA} has an intrinsic weakness which makes it very
|
||||
easy to create a signature which contains enough information to give
|
||||
away the \e{private} key!
|
||||
This would allow an attacker to pretend to be you for any number of
|
||||
future sessions. PuTTY's implementation has taken very careful
|
||||
precautions to avoid this weakness, but we cannot be 100% certain we
|
||||
have managed it, and if you have the choice we strongly recommend
|
||||
using RSA keys instead.
|
||||
|
||||
If you really need to connect to an SSH server which only supports
|
||||
DSA, then you probably have no choice but to use DSA. If you do use
|
||||
DSA, we recommend you do not use the same key to authenticate with
|
||||
more than one server.
|
||||
|
||||
\S{puttygen-strength} Selecting the size (strength) of the key
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.bits}
|
||||
|
||||
The \q{Number of bits} input box allows you to choose the strength
|
||||
of the key PuTTYgen will generate.
|
||||
|
||||
Currently 1024 bits should be sufficient for most purposes.
|
||||
|
||||
Note that an RSA key is generated by finding two primes of half the
|
||||
length requested, and then multiplying them together. For example,
|
||||
if you ask PuTTYgen for a 1024-bit RSA key, it will create two
|
||||
512-bit primes and multiply them. The result of this multiplication
|
||||
might be 1024 bits long, or it might be only 1023; so you may not
|
||||
get the exact length of key you asked for. This is perfectly normal,
|
||||
and you do not need to worry. The lengths should only ever differ by
|
||||
one, and there is no perceptible drop in security as a result.
|
||||
|
||||
DSA keys are not created by multiplying primes together, so they
|
||||
should always be exactly the length you asked for.
|
||||
|
||||
\S{puttygen-generate} The \q{Generate} button
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.generate}
|
||||
|
||||
Once you have chosen the type of key you want, and the strength of
|
||||
the key, press the \q{Generate} button and PuTTYgen will begin the
|
||||
process of actually generating the key.
|
||||
|
||||
First, a progress bar will appear and PuTTYgen will ask you to move
|
||||
the mouse around to generate randomness. Wave the mouse in circles
|
||||
over the blank area in the PuTTYgen window, and the progress bar
|
||||
will gradually fill up as PuTTYgen collects enough randomness. You
|
||||
don't need to wave the mouse in particularly imaginative patterns
|
||||
(although it can't hurt); PuTTYgen will collect enough randomness
|
||||
just from the fine detail of \e{exactly} how far the mouse has moved
|
||||
each time Windows samples its position.
|
||||
|
||||
When the progress bar reaches the end, PuTTYgen will begin creating
|
||||
the key. The progress bar will reset to the start, and gradually
|
||||
move up again to track the progress of the key generation. It will
|
||||
not move evenly, and may occasionally slow down to a stop; this is
|
||||
unfortunately unavoidable, because key generation is a random
|
||||
process and it is impossible to reliably predict how long it will
|
||||
take.
|
||||
|
||||
When the key generation is complete, a new set of controls will
|
||||
appear in the window to indicate this.
|
||||
|
||||
\S{puttygen-fingerprint} The \q{\ii{Key fingerprint}} box
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.fingerprint}
|
||||
|
||||
The \q{Key fingerprint} box shows you a fingerprint value for the
|
||||
generated key. This is derived cryptographically from the \e{public}
|
||||
key value, so it doesn't need to be kept secret.
|
||||
|
||||
The fingerprint value is intended to be cryptographically secure, in
|
||||
the sense that it is computationally infeasible for someone to
|
||||
invent a second key with the same fingerprint, or to find a key with
|
||||
a particular fingerprint. So some utilities, such as the Pageant key
|
||||
list box (see \k{pageant-mainwin-keylist}) and the Unix \c{ssh-add}
|
||||
utility, will list key fingerprints rather than the whole public key.
|
||||
|
||||
\S{puttygen-comment} Setting a comment for your key
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.comment}
|
||||
|
||||
If you have more than one key and use them for different purposes,
|
||||
you don't need to memorise the key fingerprints in order to tell
|
||||
them apart. PuTTYgen allows you to enter a \e{comment} for your key,
|
||||
which will be displayed whenever PuTTY or Pageant asks you for the
|
||||
passphrase.
|
||||
|
||||
The default comment format, if you don't specify one, contains the
|
||||
key type and the date of generation, such as \c{rsa-key-20011212}.
|
||||
Another commonly used approach is to use your name and the name of
|
||||
the computer the key will be used on, such as \c{simon@simons-pc}.
|
||||
|
||||
To alter the key comment, just type your comment text into the
|
||||
\q{Key comment} box before saving the private key. If you want to
|
||||
change the comment later, you can load the private key back into
|
||||
PuTTYgen, change the comment, and save it again.
|
||||
|
||||
\S{puttygen-passphrase} Setting a \i{passphrase} for your key
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.passphrase}
|
||||
|
||||
The \q{Key passphrase} and \q{Confirm passphrase} boxes allow you to
|
||||
choose a passphrase for your key. The passphrase will be used to
|
||||
\i{encrypt} the key on disk, so you will not be able to use the key
|
||||
without first entering the passphrase.
|
||||
|
||||
When you save the key, PuTTYgen will check that the \q{Key passphrase}
|
||||
and \q{Confirm passphrase} boxes both contain exactly the same
|
||||
passphrase, and will refuse to save the key otherwise.
|
||||
|
||||
If you leave the passphrase fields blank, the key will be saved
|
||||
unencrypted. You should \e{not} do this without good reason; if you
|
||||
do, your private key file on disk will be all an attacker needs to
|
||||
gain access to any machine configured to accept that key. If you
|
||||
want to be able to \i{passwordless login}log in without having to
|
||||
type a passphrase every time, you should consider using Pageant
|
||||
(\k{pageant}) so that your decrypted key is only held in memory
|
||||
rather than on disk.
|
||||
|
||||
Under special circumstances you may genuinely \e{need} to use a key
|
||||
with no passphrase; for example, if you need to run an automated
|
||||
batch script that needs to make an SSH connection, you can't be
|
||||
there to type the passphrase. In this case we recommend you generate
|
||||
a special key for each specific batch script (or whatever) that
|
||||
needs one, and on the server side you should arrange that each key
|
||||
is \e{restricted} so that it can only be used for that specific
|
||||
purpose. The documentation for your SSH server should explain how to
|
||||
do this (it will probably vary between servers).
|
||||
|
||||
Choosing a good passphrase is difficult. Just as you shouldn't use a
|
||||
dictionary word as a password because it's easy for an attacker to
|
||||
run through a whole dictionary, you should not use a song lyric,
|
||||
quotation or other well-known sentence as a passphrase. \i{DiceWare}
|
||||
(\W{http://www.diceware.com/}\cw{www.diceware.com}) recommends using
|
||||
at least five words each generated randomly by rolling five dice,
|
||||
which gives over 2^64 possible passphrases and is probably not a bad
|
||||
scheme. If you want your passphrase to make grammatical sense, this
|
||||
cuts down the possibilities a lot and you should use a longer one as
|
||||
a result.
|
||||
|
||||
\e{Do not forget your passphrase}. There is no way to recover it.
|
||||
|
||||
\S{puttygen-savepriv} Saving your private key to a disk file
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.savepriv}
|
||||
|
||||
Once you have generated a key, set a comment field and set a
|
||||
passphrase, you are ready to save your private key to disk.
|
||||
|
||||
Press the \q{Save private key} button. PuTTYgen will put up a dialog
|
||||
box asking you where to save the file. Select a directory, type in a
|
||||
file name, and press \q{Save}.
|
||||
|
||||
This file is in PuTTY's native format (\c{*.\i{PPK}}); it is the one you
|
||||
will need to tell PuTTY to use for authentication (see
|
||||
\k{config-ssh-privkey}) or tell Pageant to load (see
|
||||
\k{pageant-mainwin-addkey}).
|
||||
|
||||
\S{puttygen-savepub} Saving your public key to a disk file
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.savepub}
|
||||
|
||||
RFC 4716 specifies a \I{SSH-2 public key format}standard format for
|
||||
storing SSH-2 public keys on disk. Some SSH servers (such as
|
||||
\i\cw{ssh.com}'s) require a public key in this format in order to accept
|
||||
authentication with the corresponding private key. (Others, such as
|
||||
OpenSSH, use a different format; see \k{puttygen-pastekey}.)
|
||||
|
||||
To save your public key in the SSH-2 standard format, press the
|
||||
\q{Save public key} button in PuTTYgen. PuTTYgen will put up a
|
||||
dialog box asking you where to save the file. Select a directory,
|
||||
type in a file name, and press \q{Save}.
|
||||
|
||||
You will then probably want to copy the public key file to your SSH
|
||||
server machine. See \k{pubkey-gettingready} for general instructions
|
||||
on configuring public-key authentication once you have generated a
|
||||
key.
|
||||
|
||||
If you use this option with an SSH-1 key, the file PuTTYgen saves
|
||||
will contain exactly the same text that appears in the \q{Public key
|
||||
for pasting} box. This is the only existing standard for SSH-1
|
||||
public keys.
|
||||
|
||||
\S{puttygen-pastekey} \q{Public key for pasting into \i{authorized_keys
|
||||
file}}
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.pastekey}
|
||||
|
||||
All SSH-1 servers require your public key to be given to it in a
|
||||
one-line format before it will accept authentication with your
|
||||
private key. The \i{OpenSSH} server also requires this for SSH-2.
|
||||
|
||||
The \q{Public key for pasting into authorized_keys file} gives the
|
||||
public-key data in the correct one-line format. Typically you will
|
||||
want to select the entire contents of the box using the mouse, press
|
||||
Ctrl+C to copy it to the clipboard, and then paste the data into a
|
||||
PuTTY session which is already connected to the server.
|
||||
|
||||
See \k{pubkey-gettingready} for general instructions on configuring
|
||||
public-key authentication once you have generated a key.
|
||||
|
||||
\S{puttygen-load} Reloading a private key
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.load}
|
||||
|
||||
PuTTYgen allows you to load an existing private key file into
|
||||
memory. If you do this, you can then change the passphrase and
|
||||
comment before saving it again; you can also make extra copies of
|
||||
the public key.
|
||||
|
||||
To load an existing key, press the \q{Load} button. PuTTYgen will
|
||||
put up a dialog box where you can browse around the file system and
|
||||
find your key file. Once you select the file, PuTTYgen will ask you
|
||||
for a passphrase (if necessary) and will then display the key
|
||||
details in the same way as if it had just generated the key.
|
||||
|
||||
If you use the Load command to load a foreign key format, it will
|
||||
work, but you will see a message box warning you that the key you
|
||||
have loaded is not a PuTTY native key. See \k{puttygen-conversions}
|
||||
for information about importing foreign key formats.
|
||||
|
||||
\S{puttygen-conversions} Dealing with private keys in other formats
|
||||
|
||||
\cfg{winhelp-topic}{puttygen.conversions}
|
||||
|
||||
Most SSH-1 clients use a standard format for storing private keys on
|
||||
disk. PuTTY uses this format as well; so if you have generated an
|
||||
SSH-1 private key using OpenSSH or \cw{ssh.com}'s client, you can use
|
||||
it with PuTTY, and vice versa.
|
||||
|
||||
However, SSH-2 private keys have no standard format. \I{OpenSSH private
|
||||
key format}OpenSSH and \I{ssh.com private key format}\cw{ssh.com} have
|
||||
different formats, and PuTTY's is different again.
|
||||
So a key generated with one client cannot immediately be used with
|
||||
another.
|
||||
|
||||
Using the \I{importing keys}\q{Import} command from the \q{Conversions}
|
||||
menu, PuTTYgen can load SSH-2 private keys in OpenSSH's format and
|
||||
\cw{ssh.com}'s format. Once you have loaded one of these key types, you
|
||||
can then save it back out as a PuTTY-format key (\c{*.\i{PPK}}) so that
|
||||
you can use it with the PuTTY suite. The passphrase will be unchanged by this
|
||||
process (unless you deliberately change it). You may want to change
|
||||
the key comment before you save the key, since OpenSSH's SSH-2 key
|
||||
format contains no space for a comment and \cw{ssh.com}'s default
|
||||
comment format is long and verbose.
|
||||
|
||||
PuTTYgen can also \i{export private keys} in OpenSSH format and in
|
||||
\cw{ssh.com} format. To do so, select one of the \q{Export} options
|
||||
from the \q{Conversions} menu. Exporting a key works exactly like
|
||||
saving it (see \k{puttygen-savepriv}) - you need to have typed your
|
||||
passphrase in beforehand, and you will be warned if you are about to
|
||||
save a key without a passphrase.
|
||||
|
||||
Note that since only SSH-2 keys come in different formats, the export
|
||||
options are not available if you have generated an SSH-1 key.
|
||||
|
||||
\H{pubkey-gettingready} Getting ready for public key authentication
|
||||
|
||||
Connect to your SSH server using PuTTY with the SSH protocol. When the
|
||||
connection succeeds you will be prompted for your user name and
|
||||
password to login. Once logged in, you must configure the server to
|
||||
accept your public key for authentication:
|
||||
|
||||
\b If your server is using the SSH-1 protocol, you should change
|
||||
into the \i\c{.ssh} directory and open the file \i\c{authorized_keys}
|
||||
with your favourite editor. (You may have to create this file if
|
||||
this is the first key you have put in it). Then switch to the
|
||||
PuTTYgen window, select all of the text in the \q{Public key for
|
||||
pasting into authorized_keys file} box (see \k{puttygen-pastekey}),
|
||||
and copy it to the clipboard (\c{Ctrl+C}). Then, switch back to the
|
||||
PuTTY window and insert the data into the open file, making sure it
|
||||
ends up all on one line. Save the file.
|
||||
|
||||
\b If your server is \i{OpenSSH} and is using the SSH-2 protocol, you
|
||||
should follow the same instructions, except that in earlier versions
|
||||
of OpenSSH 2 the file might be called \c{authorized_keys2}. (In
|
||||
modern versions the same \c{authorized_keys} file is used for both
|
||||
SSH-1 and SSH-2 keys.)
|
||||
|
||||
\b If your server is \i\cw{ssh.com}'s product and is using SSH-2, you
|
||||
need to save a \e{public} key file from PuTTYgen (see
|
||||
\k{puttygen-savepub}), and copy that into the \i\c{.ssh2} directory on
|
||||
the server. Then you should go into that \c{.ssh2} directory, and edit
|
||||
(or create) a file called \c{authorization}. In this file you should
|
||||
put a line like \c{Key mykey.pub}, with \c{mykey.pub} replaced by the
|
||||
name of your key file.
|
||||
|
||||
\b For other SSH server software, you should refer to the manual for
|
||||
that server.
|
||||
|
||||
You may also need to ensure that your home directory, your \c{.ssh}
|
||||
directory, and any other files involved (such as
|
||||
\c{authorized_keys}, \c{authorized_keys2} or \c{authorization}) are
|
||||
not group-writable or world-writable. You can typically do this by
|
||||
using a command such as
|
||||
|
||||
\c chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys
|
||||
|
||||
Your server should now be configured to accept authentication using
|
||||
your private key. Now you need to configure PuTTY to \e{attempt}
|
||||
authentication using your private key. You can do this in any of
|
||||
three ways:
|
||||
|
||||
\b Select the private key in PuTTY's configuration. See
|
||||
\k{config-ssh-privkey} for details.
|
||||
|
||||
\b Specify the key file on the command line with the \c{-i} option.
|
||||
See \k{using-cmdline-identity} for details.
|
||||
|
||||
\b Load the private key into Pageant (see \k{pageant}). In this case
|
||||
PuTTY will automatically try to use it for authentication if it can.
|
||||
4
puttysrc/DOC/SITE.BUT
Normal file
4
puttysrc/DOC/SITE.BUT
Normal file
@@ -0,0 +1,4 @@
|
||||
\# Additional configuration for the version of the PuTTY docs
|
||||
\# actually published as HTML on the website.
|
||||
|
||||
\cfg{xhtml-head-end}{<link rel='stylesheet' href='sitestyle.css' type='text/css' />}
|
||||
389
puttysrc/DOC/UDP.BUT
Normal file
389
puttysrc/DOC/UDP.BUT
Normal file
@@ -0,0 +1,389 @@
|
||||
\# This file is so named for tradition's sake: it contains what we
|
||||
\# always used to refer to, before they were written down, as
|
||||
\# PuTTY's `unwritten design principles'. It has nothing to do with
|
||||
\# the User Datagram Protocol.
|
||||
|
||||
\define{versionidudp} \versionid $Id: udp.but 5525 2005-03-19 02:29:57Z jacob $
|
||||
|
||||
\A{udp} PuTTY hacking guide
|
||||
|
||||
This appendix lists a selection of the design principles applying to
|
||||
the PuTTY source code. If you are planning to send code
|
||||
contributions, you should read this first.
|
||||
|
||||
\H{udp-portability} Cross-OS portability
|
||||
|
||||
Despite Windows being its main area of fame, PuTTY is no longer a
|
||||
Windows-only application suite. It has a working Unix port; a Mac
|
||||
port is in progress; more ports may or may not happen at a later
|
||||
date.
|
||||
|
||||
Therefore, embedding Windows-specific code in core modules such as
|
||||
\cw{ssh.c} is not acceptable. We went to great lengths to \e{remove}
|
||||
all the Windows-specific stuff from our core modules, and to shift
|
||||
it out into Windows-specific modules. Adding large amounts of
|
||||
Windows-specific stuff in parts of the code that should be portable
|
||||
is almost guaranteed to make us reject a contribution.
|
||||
|
||||
The PuTTY source base is divided into platform-specific modules and
|
||||
platform-generic modules. The Unix-specific modules are all in the
|
||||
\c{unix} subdirectory; the Mac-specific modules are in the \c{mac}
|
||||
subdirectory; the Windows-specific modules are in the \c{windows}
|
||||
subdirectory.
|
||||
|
||||
All the modules in the main source directory - notably \e{all} of
|
||||
the code for the various back ends - are platform-generic. We want
|
||||
to keep them that way.
|
||||
|
||||
This also means you should stick to what you are guaranteed by
|
||||
ANSI/ISO C (that is, the original C89/C90 standard, not C99). Try
|
||||
not to make assumptions about the precise size of basic types such
|
||||
as \c{int} and \c{long int}; don't use pointer casts to do
|
||||
endianness-dependent operations, and so on.
|
||||
|
||||
(There are one or two aspects of ANSI C portability which we
|
||||
\e{don't} care about. In particular, we expect PuTTY to be compiled
|
||||
on 32-bit architectures \e{or bigger}; so it's safe to assume that
|
||||
\c{int} is at least 32 bits wide, not just the 16 you are guaranteed
|
||||
by ANSI C. Similarly, we assume that the execution character
|
||||
encoding is a superset of the printable characters of ASCII, though
|
||||
we don't assume the numeric values of control characters,
|
||||
particularly \cw{'\\n'} and \cw{'\\r'}.)
|
||||
|
||||
\H{udp-multi-backend} Multiple backends treated equally
|
||||
|
||||
PuTTY is not an SSH client with some other stuff tacked on the side.
|
||||
PuTTY is a generic, multiple-backend, remote VT-terminal client
|
||||
which happens to support one backend which is larger, more popular
|
||||
and more useful than the rest. Any extra feature which can possibly
|
||||
be general across all backends should be so: localising features
|
||||
unnecessarily into the SSH back end is a design error. (For example,
|
||||
we had several code submissions for proxy support which worked by
|
||||
hacking \cw{ssh.c}. Clearly this is completely wrong: the
|
||||
\cw{network.h} abstraction is the place to put it, so that it will
|
||||
apply to all back ends equally, and indeed we eventually put it
|
||||
there after another contributor sent a better patch.)
|
||||
|
||||
The rest of PuTTY should try to avoid knowing anything about
|
||||
specific back ends if at all possible. To support a feature which is
|
||||
only available in one network protocol, for example, the back end
|
||||
interface should be extended in a general manner such that \e{any}
|
||||
back end which is able to provide that feature can do so. If it so
|
||||
happens that only one back end actually does, that's just the way it
|
||||
is, but it shouldn't be relied upon by any code.
|
||||
|
||||
\H{udp-globals} Multiple sessions per process on some platforms
|
||||
|
||||
Some ports of PuTTY - notably the in-progress Mac port - are
|
||||
constrained by the operating system to run as a single process
|
||||
potentially managing multiple sessions.
|
||||
|
||||
Therefore, the platform-independent parts of PuTTY never use global
|
||||
variables to store per-session data. The global variables that do
|
||||
exist are tolerated because they are not specific to a particular
|
||||
login session: \c{flags} defines properties that are expected to
|
||||
apply equally to \e{all} the sessions run by a single PuTTY process,
|
||||
the random number state in \cw{sshrand.c} and the timer list in
|
||||
\cw{timing.c} serve all sessions equally, and so on. But most data
|
||||
is specific to a particular network session, and is therefore stored
|
||||
in dynamically allocated data structures, and pointers to these
|
||||
structures are passed around between functions.
|
||||
|
||||
Platform-specific code can reverse this decision if it likes. The
|
||||
Windows code, for historical reasons, stores most of its data as
|
||||
global variables. That's OK, because \e{on Windows} we know there is
|
||||
only one session per PuTTY process, so it's safe to do that. But
|
||||
changes to the platform-independent code should avoid introducing
|
||||
global variables, unless they are genuinely cross-session.
|
||||
|
||||
\H{udp-pure-c} C, not C++
|
||||
|
||||
PuTTY is written entirely in C, not in C++.
|
||||
|
||||
We have made \e{some} effort to make it easy to compile our code
|
||||
using a C++ compiler: notably, our \c{snew}, \c{snewn} and
|
||||
\c{sresize} macros explicitly cast the return values of \cw{malloc}
|
||||
and \cw{realloc} to the target type. (This has type checking
|
||||
advantages even in C: it means you never accidentally allocate the
|
||||
wrong size piece of memory for the pointer type you're assigning it
|
||||
to. C++ friendliness is really a side benefit.)
|
||||
|
||||
We want PuTTY to continue being pure C, at least in the
|
||||
platform-independent parts and the currently existing ports. Patches
|
||||
which switch the Makefiles to compile it as C++ and start using
|
||||
classes will not be accepted. Also, in particular, we disapprove of
|
||||
\cw{//} comments, at least for the moment. (Perhaps once C99 becomes
|
||||
genuinely widespread we might be more lenient.)
|
||||
|
||||
The one exception: a port to a new platform may use languages other
|
||||
than C if they are necessary to code on that platform. If your
|
||||
favourite PDA has a GUI with a C++ API, then there's no way you can
|
||||
do a port of PuTTY without using C++, so go ahead and use it. But
|
||||
keep the C++ restricted to that platform's subdirectory; if your
|
||||
changes force the Unix or Windows ports to be compiled as C++, they
|
||||
will be unacceptable to us.
|
||||
|
||||
\H{udp-security} Security-conscious coding
|
||||
|
||||
PuTTY is a network application and a security application. Assume
|
||||
your code will end up being fed deliberately malicious data by
|
||||
attackers, and try to code in a way that makes it unlikely to be a
|
||||
security risk.
|
||||
|
||||
In particular, try not to use fixed-size buffers for variable-size
|
||||
data such as strings received from the network (or even the user).
|
||||
We provide functions such as \cw{dupcat} and \cw{dupprintf}, which
|
||||
dynamically allocate buffers of the right size for the string they
|
||||
construct. Use these wherever possible.
|
||||
|
||||
\H{udp-multi-compiler} Independence of specific compiler
|
||||
|
||||
Windows PuTTY can currently be compiled with any of four Windows
|
||||
compilers: MS Visual C, Borland's freely downloadable C compiler,
|
||||
the Cygwin / \cw{mingw32} GNU tools, and \cw{lcc-win32}.
|
||||
|
||||
This is a really useful property of PuTTY, because it means people
|
||||
who want to contribute to the coding don't depend on having a
|
||||
specific compiler; so they don't have to fork out money for MSVC if
|
||||
they don't already have it, but on the other hand if they \e{do}
|
||||
have it they also don't have to spend effort installing \cw{gcc}
|
||||
alongside it. They can use whichever compiler they happen to have
|
||||
available, or install whichever is cheapest and easiest if they
|
||||
don't have one.
|
||||
|
||||
Therefore, we don't want PuTTY to start depending on which compiler
|
||||
you're using. Using GNU extensions to the C language, for example,
|
||||
would ruin this useful property (not that anyone's ever tried it!);
|
||||
and more realistically, depending on an MS-specific library function
|
||||
supplied by the MSVC C library (\cw{_snprintf}, for example) is a
|
||||
mistake, because that function won't be available under the other
|
||||
compilers. Any function supplied in an official Windows DLL as part
|
||||
of the Windows API is fine, and anything defined in the C library
|
||||
standard is also fine, because those should be available
|
||||
irrespective of compilation environment. But things in between,
|
||||
available as non-standard library and language extensions in only
|
||||
one compiler, are disallowed.
|
||||
|
||||
(\cw{_snprintf} in particular should be unnecessary, since we
|
||||
provide \cw{dupprintf}; see \k{udp-security}.)
|
||||
|
||||
Compiler independence should apply on all platforms, of course, not
|
||||
just on Windows.
|
||||
|
||||
\H{udp-small} Small code size
|
||||
|
||||
PuTTY is tiny, compared to many other Windows applications. And it's
|
||||
easy to install: it depends on no DLLs, no other applications, no
|
||||
service packs or system upgrades. It's just one executable. You
|
||||
install that executable wherever you want to, and run it.
|
||||
|
||||
We want to keep both these properties - the small size, and the ease
|
||||
of installation - if at all possible. So code contributions that
|
||||
depend critically on external DLLs, or that add a huge amount to the
|
||||
code size for a feature which is only useful to a small minority of
|
||||
users, are likely to be thrown out immediately.
|
||||
|
||||
We do vaguely intend to introduce a DLL plugin interface for PuTTY,
|
||||
whereby seriously large extra features can be implemented in plugin
|
||||
modules. The important thing, though, is that those DLLs will be
|
||||
\e{optional}; if PuTTY can't find them on startup, it should run
|
||||
perfectly happily and just won't provide those particular features.
|
||||
A full installation of PuTTY might one day contain ten or twenty
|
||||
little DLL plugins, which would cut down a little on the ease of
|
||||
installation - but if you really needed ease of installation you
|
||||
\e{could} still just install the one PuTTY binary, or just the DLLs
|
||||
you really needed, and it would still work fine.
|
||||
|
||||
Depending on \e{external} DLLs is something we'd like to avoid if at
|
||||
all possible (though for some purposes, such as complex SSH
|
||||
authentication mechanisms, it may be unavoidable). If it can't be
|
||||
avoided, the important thing is to follow the same principle of
|
||||
graceful degradation: if a DLL can't be found, then PuTTY should run
|
||||
happily and just not supply the feature that depended on it.
|
||||
|
||||
\H{udp-single-threaded} Single-threaded code
|
||||
|
||||
PuTTY and its supporting tools, or at least the vast majority of
|
||||
them, run in only one OS thread.
|
||||
|
||||
This means that if you're devising some piece of internal mechanism,
|
||||
there's no need to use locks to make sure it doesn't get called by
|
||||
two threads at once. The only way code can be called re-entrantly is
|
||||
by recursion.
|
||||
|
||||
That said, most of Windows PuTTY's network handling is triggered off
|
||||
Windows messages requested by \cw{WSAAsyncSelect()}, so if you call
|
||||
\cw{MessageBox()} deep within some network event handling code you
|
||||
should be aware that you might be re-entered if a network event
|
||||
comes in and is passed on to our window procedure by the
|
||||
\cw{MessageBox()} message loop.
|
||||
|
||||
Also, the front ends (in particular Windows Plink) can use multiple
|
||||
threads if they like. However, Windows Plink keeps \e{very} tight
|
||||
control of its auxiliary threads, and uses them pretty much
|
||||
exclusively as a form of \cw{select()}. Pretty much all the code
|
||||
outside \cw{windows/winplink.c} is \e{only} ever called from the one
|
||||
primary thread; the others just loop round blocking on file handles
|
||||
and send messages to the main thread when some real work needs
|
||||
doing. This is not considered a portability hazard because that bit
|
||||
of \cw{windows/winplink.c} will need rewriting on other platforms in
|
||||
any case.
|
||||
|
||||
One important consequence of this: PuTTY has only one thread in
|
||||
which to do everything. That \q{everything} may include managing
|
||||
more than one login session (\k{udp-globals}), managing multiple
|
||||
data channels within an SSH session, responding to GUI events even
|
||||
when nothing is happening on the network, and responding to network
|
||||
requests from the server (such as repeat key exchange) even when the
|
||||
program is dealing with complex user interaction such as the
|
||||
re-configuration dialog box. This means that \e{almost none} of the
|
||||
PuTTY code can safely block.
|
||||
|
||||
\H{udp-keystrokes} Keystrokes sent to the server wherever possible
|
||||
|
||||
In almost all cases, PuTTY sends keystrokes to the server. Even
|
||||
weird keystrokes that you think should be hot keys controlling
|
||||
PuTTY. Even Alt-F4 or Alt-Space, for example. If a keystroke has a
|
||||
well-defined escape sequence that it could usefully be sending to
|
||||
the server, then it should do so, or at the very least it should be
|
||||
configurably able to do so.
|
||||
|
||||
To unconditionally turn a key combination into a hot key to control
|
||||
PuTTY is almost always a design error. If a hot key is really truly
|
||||
required, then try to find a key combination for it which \e{isn't}
|
||||
already used in existing PuTTYs (either it sends nothing to the
|
||||
server, or it sends the same thing as some other combination). Even
|
||||
then, be prepared for the possibility that one day that key
|
||||
combination might end up being needed to send something to the
|
||||
server - so make sure that there's an alternative way to invoke
|
||||
whatever PuTTY feature it controls.
|
||||
|
||||
\H{udp-640x480} 640\u00D7{x}480 friendliness in configuration panels
|
||||
|
||||
There's a reason we have lots of tiny configuration panels instead
|
||||
of a few huge ones, and that reason is that not everyone has a
|
||||
1600\u00D7{x}1200 desktop. 640\u00D7{x}480 is still a viable
|
||||
resolution for running Windows (and indeed it's still the default if
|
||||
you start up in safe mode), so it's still a resolution we care
|
||||
about.
|
||||
|
||||
Accordingly, the PuTTY configuration box, and the PuTTYgen control
|
||||
window, are deliberately kept just small enough to fit comfortably
|
||||
on a 640\u00D7{x}480 display. If you're adding controls to either of
|
||||
these boxes and you find yourself wanting to increase the size of
|
||||
the whole box, \e{don't}. Split it into more panels instead.
|
||||
|
||||
\H{udp-makefiles-auto} Automatically generated \cw{Makefile}s
|
||||
|
||||
PuTTY is intended to compile on multiple platforms, and with
|
||||
multiple compilers. It would be horrifying to try to maintain a
|
||||
single \cw{Makefile} which handled all possible situations, and just
|
||||
as painful to try to directly maintain a set of matching
|
||||
\cw{Makefile}s for each different compilation environment.
|
||||
|
||||
Therefore, we have moved the problem up by one level. In the PuTTY
|
||||
source archive is a file called \c{Recipe}, which lists which source
|
||||
files combine to produce which binaries; and there is also a script
|
||||
called \cw{mkfiles.pl}, which reads \c{Recipe} and writes out the
|
||||
real \cw{Makefile}s. (The script also reads all the source files and
|
||||
analyses their dependencies on header files, so we get an extra
|
||||
benefit from doing it this way, which is that we can supply correct
|
||||
dependency information even in environments where it's difficult to
|
||||
set up an automated \c{make depend} phase.)
|
||||
|
||||
You should \e{never} edit any of the PuTTY \cw{Makefile}s directly.
|
||||
They are not stored in our source repository at all. They are
|
||||
automatically generated by \cw{mkfiles.pl} from the file \c{Recipe}.
|
||||
|
||||
If you need to add a new object file to a particular binary, the
|
||||
right thing to do is to edit \c{Recipe} and re-run \cw{mkfiles.pl}.
|
||||
This will cause the new object file to be added in every tool that
|
||||
requires it, on every platform where it matters, in every
|
||||
\cw{Makefile} to which it is relevant, \e{and} to get all the
|
||||
dependency data right.
|
||||
|
||||
If you send us a patch that modifies one of the \cw{Makefile}s, you
|
||||
just waste our time, because we will have to convert it into a
|
||||
change to \c{Recipe}. If you send us a patch that modifies \e{all}
|
||||
of the \cw{Makefile}s, you will have wasted a lot of \e{your} time
|
||||
as well!
|
||||
|
||||
(There is a comment at the top of every \cw{Makefile} in the PuTTY
|
||||
source archive saying this, but many people don't seem to read it,
|
||||
so it's worth repeating here.)
|
||||
|
||||
\H{udp-ssh-coroutines} Coroutines in \cw{ssh.c}
|
||||
|
||||
Large parts of the code in \cw{ssh.c} are structured using a set of
|
||||
macros that implement (something close to) Donald Knuth's
|
||||
\q{coroutines} concept in C.
|
||||
|
||||
Essentially, the purpose of these macros are to arrange that a
|
||||
function can call \cw{crReturn()} to return to its caller, and the
|
||||
next time it is called control will resume from just after that
|
||||
\cw{crReturn} statement.
|
||||
|
||||
This means that any local (automatic) variables declared in such a
|
||||
function will be corrupted every time you call \cw{crReturn}. If you
|
||||
need a variable to persist for longer than that, you \e{must} make
|
||||
it a field in one of the persistent state structures: either the
|
||||
local state structures \c{s} or \c{st} in each function, or the
|
||||
backend-wide structure \c{ssh}.
|
||||
|
||||
See
|
||||
\W{http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html}\c{http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html}
|
||||
for a more in-depth discussion of what these macros are for and how
|
||||
they work.
|
||||
|
||||
\H{udp-compile-once} Single compilation of each source file
|
||||
|
||||
The PuTTY build system for any given platform works on the following
|
||||
very simple model:
|
||||
|
||||
\b Each source file is compiled precisely once, to produce a single
|
||||
object file.
|
||||
|
||||
\b Each binary is created by linking together some combination of
|
||||
those object files.
|
||||
|
||||
Therefore, if you need to introduce functionality to a particular
|
||||
module which is only available in some of the tool binaries (for
|
||||
example, a cryptographic proxy authentication mechanism which needs
|
||||
to be left out of PuTTYtel to maintain its usability in
|
||||
crypto-hostile jurisdictions), the \e{wrong} way to do it is by
|
||||
adding \cw{#ifdef}s in (say) \cw{proxy.c}. This would require
|
||||
separate compilation of \cw{proxy.c} for PuTTY and PuTTYtel, which
|
||||
means that the entire \cw{Makefile}-generation architecture (see
|
||||
\k{udp-makefiles-auto}) would have to be significantly redesigned.
|
||||
Unless you are prepared to do that redesign yourself, \e{and}
|
||||
guarantee that it will still port to any future platforms we might
|
||||
decide to run on, you should not attempt this!
|
||||
|
||||
The \e{right} way to introduce a feature like this is to put the new
|
||||
code in a separate source file, and (if necessary) introduce a
|
||||
second new source file defining the same set of functions, but
|
||||
defining them as stubs which don't provide the feature. Then the
|
||||
module whose behaviour needs to vary (\cw{proxy.c} in this example)
|
||||
can call the functions defined in these two modules, and it will
|
||||
either provide the new feature or not provide it according to which
|
||||
of your new modules it is linked with.
|
||||
|
||||
Of course, object files are never shared \e{between} platforms; so
|
||||
it is allowable to use \cw{#ifdef} to select between platforms. This
|
||||
happens in \cw{puttyps.h} (choosing which of the platform-specific
|
||||
include files to use), and also in \cw{misc.c} (the Windows-specific
|
||||
\q{Minefield} memory diagnostic system). It should be used
|
||||
sparingly, though, if at all.
|
||||
|
||||
\H{udp-perfection} Do as we say, not as we do
|
||||
|
||||
The current PuTTY code probably does not conform strictly to \e{all}
|
||||
of the principles listed above. There may be the occasional
|
||||
SSH-specific piece of code in what should be a backend-independent
|
||||
module, or the occasional dependence on a non-standard X library
|
||||
function under Unix.
|
||||
|
||||
This should not be taken as a licence to go ahead and violate the
|
||||
rules. Where we violate them ourselves, we're not happy about it,
|
||||
and we would welcome patches that fix any existing problems. Please
|
||||
try to help us make our code better, not worse!
|
||||
894
puttysrc/DOC/USING.BUT
Normal file
894
puttysrc/DOC/USING.BUT
Normal file
@@ -0,0 +1,894 @@
|
||||
\define{versionidusing} \versionid $Id: using.but 7295 2007-02-18 14:02:39Z jacob $
|
||||
|
||||
\C{using} Using PuTTY
|
||||
|
||||
This chapter provides a general introduction to some more advanced
|
||||
features of PuTTY. For extreme detail and reference purposes,
|
||||
\k{config} is likely to contain more information.
|
||||
|
||||
\H{using-session} During your session
|
||||
|
||||
A lot of PuTTY's complexity and features are in the configuration
|
||||
panel. Once you have worked your way through that and started
|
||||
a session, things should be reasonably simple after that.
|
||||
Nevertheless, there are a few more useful features available.
|
||||
|
||||
\S{using-selection} Copying and pasting text
|
||||
|
||||
\I{copy and paste}Often in a PuTTY session you will find text on
|
||||
your terminal screen which you want to type in again. Like most
|
||||
other terminal emulators, PuTTY allows you to copy and paste the
|
||||
text rather than having to type it again. Also, copy and paste uses
|
||||
the \I{Windows clipboard}Windows \i{clipboard}, so that you can
|
||||
paste (for example) URLs into a web browser, or paste from a word
|
||||
processor or spreadsheet into your terminal session.
|
||||
|
||||
PuTTY's copy and paste works entirely with the \i{mouse}. In order
|
||||
to copy text to the clipboard, you just click the \i{left mouse
|
||||
button} in the \i{terminal window}, and drag to \I{selecting text}select
|
||||
text. When you let go of the button, the text is \e{automatically}
|
||||
copied to the clipboard. You do not need to press Ctrl-C or
|
||||
Ctrl-Ins; in fact, if you do press Ctrl-C, PuTTY will send a Ctrl-C
|
||||
character down your session to the server where it will probably
|
||||
cause a process to be interrupted.
|
||||
|
||||
Pasting is done using the right button (or the middle mouse button,
|
||||
if you have a \i{three-button mouse} and have set it up; see
|
||||
\k{config-mouse}). (Pressing \i{Shift-Ins}, or selecting \q{Paste}
|
||||
from the \I{right mouse button, with Ctrl}Ctrl+right-click
|
||||
\i{context menu}, have the same effect.) When
|
||||
you click the \i{right mouse button}, PuTTY will read whatever is in
|
||||
the Windows clipboard and paste it into your session, \e{exactly} as
|
||||
if it had been typed at the keyboard. (Therefore, be careful of
|
||||
pasting formatted text into an editor that does automatic indenting;
|
||||
you may find that the spaces pasted from the clipboard plus the
|
||||
spaces added by the editor add up to too many spaces and ruin the
|
||||
formatting. There is nothing PuTTY can do about this.)
|
||||
|
||||
If you \i{double-click} the left mouse button, PuTTY will
|
||||
\I{selecting words}select a whole word. If you double-click, hold
|
||||
down the second click, and drag the mouse, PuTTY will select a
|
||||
sequence of whole words. (You can adjust precisely what PuTTY
|
||||
considers to be part of a word; see \k{config-charclasses}.)
|
||||
If you \e{triple}-click, or \i{triple-click} and drag, then
|
||||
PuTTY will \I{selecting lines}select a whole line or sequence of lines.
|
||||
|
||||
If you want to select a \I{rectangular selection}rectangular region
|
||||
instead of selecting to the end of each line, you can do this by
|
||||
holding down Alt when you make your selection. (You can also
|
||||
configure rectangular selection to be the default, and then holding
|
||||
down Alt gives the normal behaviour instead. See
|
||||
\k{config-rectselect} for details.)
|
||||
|
||||
If you have a \i{middle mouse button}, then you can use it to
|
||||
\I{adjusting a selection}adjust an existing selection if you
|
||||
selected something slightly wrong. (If you have configured the
|
||||
middle mouse button to paste, then the right mouse button does this
|
||||
instead.) Click the button on the screen, and you can pick up the
|
||||
nearest end of the selection and drag it to somewhere else.
|
||||
|
||||
It's possible for the server to ask to \I{mouse reporting}handle mouse
|
||||
clicks in the PuTTY window itself. If this happens, the \i{mouse pointer}
|
||||
will turn into an arrow, and using the mouse to copy and paste will only
|
||||
work if you hold down Shift. See \k{config-features-mouse} and
|
||||
\k{config-mouseshift} for details of this feature and how to configure
|
||||
it.
|
||||
|
||||
\S{using-scrollback} \I{scrollback}Scrolling the screen back
|
||||
|
||||
PuTTY keeps track of text that has scrolled up off the top of the
|
||||
terminal. So if something appears on the screen that you want to
|
||||
read, but it scrolls too fast and it's gone by the time you try to
|
||||
look for it, you can use the \i{scrollbar} on the right side of the
|
||||
window to look back up the session \i{history} and find it again.
|
||||
|
||||
As well as using the scrollbar, you can also page the scrollback up
|
||||
and down by pressing \i{Shift-PgUp} and \i{Shift-PgDn}. You can
|
||||
scroll a line at a time using \i{Ctrl-PgUp} and \i{Ctrl-PgDn}. These
|
||||
are still available if you configure the scrollbar to be invisible.
|
||||
|
||||
By default the last 200 lines scrolled off the top are
|
||||
preserved for you to look at. You can increase (or decrease) this
|
||||
value using the configuration box; see \k{config-scrollback}.
|
||||
|
||||
\S{using-sysmenu} The \ii{System menu}
|
||||
|
||||
If you click the left mouse button on the icon in the top left
|
||||
corner of PuTTY's terminal window, or click the right mouse button
|
||||
on the title bar, you will see the standard Windows system menu
|
||||
containing items like Minimise, Move, Size and Close.
|
||||
|
||||
PuTTY's system menu contains extra program features in addition to
|
||||
the Windows standard options. These extra menu commands are
|
||||
described below.
|
||||
|
||||
(These options are also available in a \i{context menu} brought up
|
||||
by holding Ctrl and clicking with the right mouse button anywhere
|
||||
in the \i{PuTTY window}.)
|
||||
|
||||
\S2{using-eventlog} The PuTTY \i{Event Log}
|
||||
|
||||
If you choose \q{Event Log} from the system menu, a small window
|
||||
will pop up in which PuTTY logs significant events during the
|
||||
connection. Most of the events in the log will probably take place
|
||||
during session startup, but a few can occur at any point in the
|
||||
session, and one or two occur right at the end.
|
||||
|
||||
You can use the mouse to select one or more lines of the Event Log,
|
||||
and hit the Copy button to copy them to the \i{clipboard}. If you
|
||||
are reporting a bug, it's often useful to paste the contents of the
|
||||
Event Log into your bug report.
|
||||
|
||||
\S2{using-specials} \ii{Special commands}
|
||||
|
||||
Depending on the protocol used for the current session, there may be
|
||||
a submenu of \q{special commands}. These are protocol-specific
|
||||
tokens, such as a \q{break} signal, that can be sent down a
|
||||
connection in addition to normal data. Their precise effect is usually
|
||||
up to the server. Currently only Telnet, SSH, and serial connections
|
||||
have special commands.
|
||||
|
||||
The \q{break} signal can also be invoked from the keyboard with
|
||||
\i{Ctrl-Break}.
|
||||
|
||||
The following \I{Telnet special commands}special commands are
|
||||
available in Telnet:
|
||||
|
||||
\b \I{Are You There, Telnet special command}Are You There
|
||||
|
||||
\b \I{Break, Telnet special command}Break
|
||||
|
||||
\b \I{Synch, Telnet special command}Synch
|
||||
|
||||
\b \I{Erase Character, Telnet special command}Erase Character
|
||||
|
||||
\lcont{
|
||||
PuTTY can also be configured to send this when the Backspace key is
|
||||
pressed; see \k{config-telnetkey}.
|
||||
}
|
||||
|
||||
\b \I{Erase Line, Telnet special command}Erase Line
|
||||
|
||||
\b \I{Go Ahead, Telnet special command}Go Ahead
|
||||
|
||||
\b \I{No Operation, Telnet special command}No Operation
|
||||
|
||||
\lcont{
|
||||
Should have no effect.
|
||||
}
|
||||
|
||||
\b \I{Abort Process, Telnet special command}Abort Process
|
||||
|
||||
\b \I{Abort Output, Telnet special command}Abort Output
|
||||
|
||||
\b \I{Interrupt Process, Telnet special command}Interrupt Process
|
||||
|
||||
\lcont{
|
||||
PuTTY can also be configured to send this when Ctrl-C is typed; see
|
||||
\k{config-telnetkey}.
|
||||
}
|
||||
|
||||
\b \I{Suspend Process, Telnet special command}Suspend Process
|
||||
|
||||
\lcont{
|
||||
PuTTY can also be configured to send this when Ctrl-Z is typed; see
|
||||
\k{config-telnetkey}.
|
||||
}
|
||||
|
||||
\b \I{End Of Record, Telnet special command}End Of Record
|
||||
|
||||
\b \I{End Of File, Telnet special command}End Of File
|
||||
|
||||
In an SSH connection, the following \I{SSH special commands}special
|
||||
commands are available:
|
||||
|
||||
\b \I{IGNORE message, SSH special command}\I{No-op, in SSH}\ii{IGNORE message}
|
||||
|
||||
\lcont{
|
||||
Should have no effect.
|
||||
}
|
||||
|
||||
\b \I{Repeat key exchange, SSH special command}Repeat key exchange
|
||||
|
||||
\lcont{
|
||||
Only available in SSH-2. Forces a \i{repeat key exchange} immediately (and
|
||||
resets associated timers and counters). For more information about
|
||||
repeat key exchanges, see \k{config-ssh-kex-rekey}.
|
||||
}
|
||||
|
||||
\b \I{Break, SSH special command}Break
|
||||
|
||||
\lcont{
|
||||
Only available in SSH-2, and only during a session. Optional
|
||||
extension; may not be supported by server. PuTTY requests the server's
|
||||
default break length.
|
||||
}
|
||||
|
||||
\b \I{Signal, SSH special command}Signals (SIGINT, SIGTERM etc)
|
||||
|
||||
\lcont{
|
||||
Only available in SSH-2, and only during a session. Sends various
|
||||
POSIX signals. Not honoured by all servers.
|
||||
}
|
||||
|
||||
With a serial connection, the only available special command is
|
||||
\I{Break, serial special command}\q{Break}.
|
||||
|
||||
\S2{using-newsession} Starting new sessions
|
||||
|
||||
PuTTY's system menu provides some shortcut ways to start new
|
||||
sessions:
|
||||
|
||||
\b Selecting \i{\q{New Session}} will start a completely new
|
||||
instance of PuTTY, and bring up the configuration box as normal.
|
||||
|
||||
\b Selecting \i{\q{Duplicate Session}} will start a session in a
|
||||
new window with precisely the same options as your current one -
|
||||
connecting to the same host using the same protocol, with all the
|
||||
same terminal settings and everything.
|
||||
|
||||
\b In an inactive window, selecting \i{\q{Restart Session}} will
|
||||
do the same as \q{Duplicate Session}, but in the current window.
|
||||
|
||||
\b The \i{\q{Saved Sessions} submenu} gives you quick access to any
|
||||
sets of stored session details you have previously saved. See
|
||||
\k{config-saving} for details of how to create saved sessions.
|
||||
|
||||
\S2{using-changesettings} \I{settings, changing}Changing your
|
||||
session settings
|
||||
|
||||
If you select \i{\q{Change Settings}} from the system menu, PuTTY will
|
||||
display a cut-down version of its initial configuration box. This
|
||||
allows you to adjust most properties of your current session. You
|
||||
can change the terminal size, the font, the actions of various
|
||||
keypresses, the colours, and so on.
|
||||
|
||||
Some of the options that are available in the main configuration box
|
||||
are not shown in the cut-down Change Settings box. These are usually
|
||||
options which don't make sense to change in the middle of a session
|
||||
(for example, you can't switch from SSH to Telnet in mid-session).
|
||||
|
||||
You can save the current settings to a saved session for future use
|
||||
from this dialog box. See \k{config-saving} for more on saved
|
||||
sessions.
|
||||
|
||||
\S2{using-copyall} \i{Copy All to Clipboard}
|
||||
|
||||
This system menu option provides a convenient way to copy the whole
|
||||
contents of the terminal screen (up to the last nonempty line) and
|
||||
scrollback to the \i{clipboard} in one go.
|
||||
|
||||
\S2{reset-terminal} \I{scrollback, clearing}Clearing and
|
||||
\I{terminal, resetting}resetting the terminal
|
||||
|
||||
The \i{\q{Clear Scrollback}} option on the system menu tells PuTTY
|
||||
to discard all the lines of text that have been kept after they
|
||||
scrolled off the top of the screen. This might be useful, for
|
||||
example, if you displayed sensitive information and wanted to make
|
||||
sure nobody could look over your shoulder and see it. (Note that
|
||||
this only prevents a casual user from using the scrollbar to view
|
||||
the information; the text is not guaranteed not to still be in
|
||||
PuTTY's memory.)
|
||||
|
||||
The \i{\q{Reset Terminal}} option causes a full reset of the
|
||||
\i{terminal emulation}. A VT-series terminal is a complex piece of
|
||||
software and can easily get into a state where all the text printed
|
||||
becomes unreadable. (This can happen, for example, if you
|
||||
accidentally output a binary file to your terminal.) If this
|
||||
happens, selecting Reset Terminal should sort it out.
|
||||
|
||||
\S2{using-fullscreen} \ii{Full screen} mode
|
||||
|
||||
If you find the title bar on a maximised window to be ugly or
|
||||
distracting, you can select Full Screen mode to maximise PuTTY
|
||||
\q{even more}. When you select this, PuTTY will expand to fill the
|
||||
whole screen and its borders, title bar and scrollbar will
|
||||
disappear. (You can configure the scrollbar not to disappear in
|
||||
full-screen mode if you want to keep it; see \k{config-scrollback}.)
|
||||
|
||||
When you are in full-screen mode, you can still access the \i{system
|
||||
menu} if you click the left mouse button in the \e{extreme} top left
|
||||
corner of the screen.
|
||||
|
||||
\H{using-logging} Creating a \i{log file} of your \I{session
|
||||
log}session
|
||||
|
||||
For some purposes you may find you want to log everything that
|
||||
appears on your screen. You can do this using the \q{Logging}
|
||||
panel in the configuration box.
|
||||
|
||||
To begin a session log, select \q{Change Settings} from the system
|
||||
menu and go to the Logging panel. Enter a log file name, and select
|
||||
a logging mode. (You can log all session output including the
|
||||
terminal \i{control sequence}s, or you can just log the printable text.
|
||||
It depends what you want the log for.) Click \q{Apply} and your log
|
||||
will be started. Later on, you can go back to the Logging panel and
|
||||
select \q{Logging turned off completely} to stop logging; then PuTTY
|
||||
will close the log file and you can safely read it.
|
||||
|
||||
See \k{config-logging} for more details and options.
|
||||
|
||||
\H{using-translation} Altering your \i{character set} configuration
|
||||
|
||||
If you find that special characters (\i{accented characters}, for
|
||||
example, or \i{line-drawing characters}) are not being displayed
|
||||
correctly in your PuTTY session, it may be that PuTTY is interpreting
|
||||
the characters sent by the server according to the wrong \e{character
|
||||
set}. There are a lot of different character sets available, so it's
|
||||
entirely possible for this to happen.
|
||||
|
||||
If you click \q{Change Settings} and look at the \q{Translation}
|
||||
panel, you should see a large number of character sets which you can
|
||||
select, and other related options. Now all you need is to find out
|
||||
which of them you want! (See \k{config-translation} for more
|
||||
information.)
|
||||
|
||||
\H{using-x-forwarding} Using \i{X11 forwarding} in SSH
|
||||
|
||||
The SSH protocol has the ability to securely forward X Window System
|
||||
applications over your encrypted SSH connection, so that you can run
|
||||
an application on the SSH server machine and have it put its windows
|
||||
up on your local machine without sending any X network traffic in
|
||||
the clear.
|
||||
|
||||
In order to use this feature, you will need an X display server for
|
||||
your Windows machine, such as Cygwin/X, X-Win32, or Exceed. This will probably
|
||||
install itself as display number 0 on your local machine; if it
|
||||
doesn't, the manual for the \i{X server} should tell you what it
|
||||
does do.
|
||||
|
||||
You should then tick the \q{Enable X11 forwarding} box in the
|
||||
Tunnels panel (see \k{config-ssh-x11}) before starting your SSH
|
||||
session. The \i{\q{X display location}} box is blank by default, which
|
||||
means that PuTTY will try to use a sensible default such as \c{:0},
|
||||
which is the usual display location where your X server will be
|
||||
installed. If that needs changing, then change it.
|
||||
|
||||
Now you should be able to log in to the SSH server as normal. To
|
||||
check that X forwarding has been successfully negotiated during
|
||||
connection startup, you can check the PuTTY Event Log (see
|
||||
\k{using-eventlog}). It should say something like this:
|
||||
|
||||
\c 2001-12-05 17:22:01 Requesting X11 forwarding
|
||||
\c 2001-12-05 17:22:02 X11 forwarding enabled
|
||||
|
||||
If the remote system is Unix or Unix-like, you should also be able
|
||||
to see that the \i{\c{DISPLAY} environment variable} has been set to
|
||||
point at display 10 or above on the SSH server machine itself:
|
||||
|
||||
\c fred@unixbox:~$ echo $DISPLAY
|
||||
\c unixbox:10.0
|
||||
|
||||
If this works, you should then be able to run X applications in the
|
||||
remote session and have them display their windows on your PC.
|
||||
|
||||
Note that if your PC X server requires \I{X11 authentication}authentication
|
||||
to connect, then PuTTY cannot currently support it. If this is a problem for
|
||||
you, you should mail the PuTTY authors \#{FIXME} and give details
|
||||
(see \k{feedback}).
|
||||
|
||||
For more options relating to X11 forwarding, see \k{config-ssh-x11}.
|
||||
|
||||
\H{using-port-forwarding} Using \i{port forwarding} in SSH
|
||||
|
||||
The SSH protocol has the ability to forward arbitrary \i{network
|
||||
connection}s over your encrypted SSH connection, to avoid the network
|
||||
traffic being sent in clear. For example, you could use this to
|
||||
connect from your home computer to a \i{POP-3} server on a remote
|
||||
machine without your POP-3 password being visible to network
|
||||
sniffers.
|
||||
|
||||
In order to use port forwarding to \I{local port forwarding}connect
|
||||
from your local machine to a port on a remote server, you need to:
|
||||
|
||||
\b Choose a \i{port number} on your local machine where PuTTY should
|
||||
listen for incoming connections. There are likely to be plenty of
|
||||
unused port numbers above 3000. (You can also use a local loopback
|
||||
address here; see below for more details.)
|
||||
|
||||
\b Now, before you start your SSH connection, go to the Tunnels
|
||||
panel (see \k{config-ssh-portfwd}). Make sure the \q{Local} radio
|
||||
button is set. Enter the local port number into the \q{Source port}
|
||||
box. Enter the destination host name and port number into the
|
||||
\q{Destination} box, separated by a colon (for example,
|
||||
\c{popserver.example.com:110} to connect to a POP-3 server).
|
||||
|
||||
\b Now click the \q{Add} button. The details of your port forwarding
|
||||
should appear in the list box.
|
||||
|
||||
Now start your session and log in. (Port forwarding will not be
|
||||
enabled until after you have logged in; otherwise it would be easy
|
||||
to perform completely anonymous network attacks, and gain access to
|
||||
anyone's virtual private network.) To check that PuTTY has set up
|
||||
the port forwarding correctly, you can look at the PuTTY Event Log
|
||||
(see \k{using-eventlog}). It should say something like this:
|
||||
|
||||
\c 2001-12-05 17:22:10 Local port 3110 forwarding to
|
||||
\c popserver.example.com:110
|
||||
|
||||
Now if you connect to the source port number on your local PC, you
|
||||
should find that it answers you exactly as if it were the service
|
||||
running on the destination machine. So in this example, you could
|
||||
then configure an e-mail client to use \c{localhost:3110} as a POP-3
|
||||
server instead of \c{popserver.example.com:110}. (Of course, the
|
||||
forwarding will stop happening when your PuTTY session closes down.)
|
||||
|
||||
You can also forward ports in the other direction: arrange for a
|
||||
particular port number on the \e{server} machine to be \I{remote
|
||||
port forwarding}forwarded back to your PC as a connection to a
|
||||
service on your PC or near it.
|
||||
To do this, just select the \q{Remote} radio button instead of the
|
||||
\q{Local} one. The \q{Source port} box will now specify a port
|
||||
number on the \e{server} (note that most servers will not allow you
|
||||
to use \I{privileged port}port numbers under 1024 for this purpose).
|
||||
|
||||
An alternative way to forward local connections to remote hosts is
|
||||
to use \I{dynamic port forwarding}dynamic SOCKS proxying. For
|
||||
this, you will need to select the \q{Dynamic} radio button instead
|
||||
of \q{Local}, and then you should not enter anything into the
|
||||
\q{Destination} box (it will be ignored). This will cause PuTTY to
|
||||
listen on the port you have specified, and provide a SOCKS proxy
|
||||
service to any programs which connect to that port. So, in
|
||||
particular, you can forward other PuTTY connections through it by
|
||||
setting up the Proxy control panel (see \k{config-proxy} for
|
||||
details).
|
||||
|
||||
The source port for a forwarded connection usually does not accept
|
||||
connections from any machine except the \I{localhost}SSH client or
|
||||
server machine itself (for local and remote forwardings respectively).
|
||||
There are controls in the Tunnels panel to change this:
|
||||
|
||||
\b The \q{Local ports accept connections from other hosts} option
|
||||
allows you to set up local-to-remote port forwardings (including
|
||||
dynamic port forwardings) in such a way that machines other than
|
||||
your client PC can connect to the forwarded port.
|
||||
|
||||
\b The \q{Remote ports do the same} option does the same thing for
|
||||
remote-to-local port forwardings (so that machines other than the
|
||||
SSH server machine can connect to the forwarded port.) Note that
|
||||
this feature is only available in the SSH-2 protocol, and not all
|
||||
SSH-2 servers honour it (in \i{OpenSSH}, for example, it's usually
|
||||
disabled by default).
|
||||
|
||||
You can also specify an \i{IP address} to \I{listen address}listen
|
||||
on. Typically a Windows machine can be asked to listen on any single
|
||||
IP address in the \cw{127.*.*.*} range, and all of these are
|
||||
\i{loopback address}es available only to the local machine. So if
|
||||
you forward (for example) \c{127.0.0.5:79} to a remote machine's
|
||||
\i\cw{finger} port, then you should be able to run commands such as
|
||||
\c{finger fred@127.0.0.5}.
|
||||
This can be useful if the program connecting to the forwarded port
|
||||
doesn't allow you to change the port number it uses. This feature is
|
||||
available for local-to-remote forwarded ports; SSH-1 is unable to
|
||||
support it for remote-to-local ports, while SSH-2 can support it in
|
||||
theory but servers will not necessarily cooperate.
|
||||
|
||||
(Note that if you're using Windows XP Service Pack 2, you may need
|
||||
to obtain a fix from Microsoft in order to use addresses like
|
||||
\cw{127.0.0.5} - see \k{faq-alternate-localhost}.)
|
||||
|
||||
\H{using-rawprot} Making \i{raw TCP connections}
|
||||
|
||||
A lot of \I{debugging Internet protocols}Internet protocols are
|
||||
composed of commands and responses in plain text. For example,
|
||||
\i{SMTP} (the protocol used to transfer e-mail), \i{NNTP} (the
|
||||
protocol used to transfer Usenet news), and \i{HTTP} (the protocol
|
||||
used to serve Web pages) all consist of commands in readable plain
|
||||
text.
|
||||
|
||||
Sometimes it can be useful to connect directly to one of these
|
||||
services and speak the protocol \q{by hand}, by typing protocol
|
||||
commands and watching the responses. On Unix machines, you can do
|
||||
this using the system's \c{telnet} command to connect to the right
|
||||
port number. For example, \c{telnet mailserver.example.com 25} might
|
||||
enable you to talk directly to the SMTP service running on a mail
|
||||
server.
|
||||
|
||||
Although the Unix \c{telnet} program provides this functionality,
|
||||
the protocol being used is not really Telnet. Really there is no
|
||||
actual protocol at all; the bytes sent down the connection are
|
||||
exactly the ones you type, and the bytes shown on the screen are
|
||||
exactly the ones sent by the server. Unix \c{telnet} will attempt to
|
||||
detect or guess whether the service it is talking to is a real
|
||||
Telnet service or not; PuTTY prefers to be told for certain.
|
||||
|
||||
In order to make a debugging connection to a service of this type,
|
||||
you simply select the fourth protocol name, \I{\q{Raw}
|
||||
protocol}\q{Raw}, from the \q{Protocol} buttons in the \q{Session}
|
||||
configuration panel. (See \k{config-hostname}.) You can then enter a
|
||||
host name and a port number, and make the connection.
|
||||
|
||||
\H{using-serial} Connecting to a local serial line
|
||||
|
||||
PuTTY can connect directly to a local serial line as an alternative
|
||||
to making a network connection. In this mode, text typed into the
|
||||
PuTTY window will be sent straight out of your computer's serial
|
||||
port, and data received through that port will be displayed in the
|
||||
PuTTY window. You might use this mode, for example, if your serial
|
||||
port is connected to another computer which has a serial connection.
|
||||
|
||||
To make a connection of this type, simply select \q{Serial} from the
|
||||
\q{Connection type} radio buttons on the \q{Session} configuration
|
||||
panel (see \k{config-hostname}). The \q{Host Name} and \q{Port}
|
||||
boxes will transform into \q{Serial line} and \q{Speed}, allowing
|
||||
you to specify which serial line to use (if your computer has more
|
||||
than one) and what speed (baud rate) to use when transferring data.
|
||||
For further configuration options (data bits, stop bits, parity,
|
||||
flow control), you can use the \q{Serial} configuration panel (see
|
||||
\k{config-serial}).
|
||||
|
||||
After you start up PuTTY in serial mode, you might find that you
|
||||
have to make the first move, by sending some data out of the serial
|
||||
line in order to notify the device at the other end that someone is
|
||||
there for it to talk to. This probably depends on the device. If you
|
||||
start up a PuTTY serial session and nothing appears in the window,
|
||||
try pressing Return a few times and see if that helps.
|
||||
|
||||
A serial line provides no well defined means for one end of the
|
||||
connection to notify the other that the connection is finished.
|
||||
Therefore, PuTTY in serial mode will remain connected until you
|
||||
close the window using the close button.
|
||||
|
||||
\H{using-cmdline} The PuTTY command line
|
||||
|
||||
PuTTY can be made to do various things without user intervention by
|
||||
supplying \i{command-line arguments} (e.g., from a \i{command prompt
|
||||
window}, or a \i{Windows shortcut}).
|
||||
|
||||
\S{using-cmdline-session} Starting a session from the command line
|
||||
|
||||
\I\c{-ssh}\I\c{-telnet}\I\c{-rlogin}\I\c{-raw}These options allow
|
||||
you to bypass the configuration window and launch straight into a
|
||||
session.
|
||||
|
||||
To start a connection to a server called \c{host}:
|
||||
|
||||
\c putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host
|
||||
|
||||
If this syntax is used, settings are taken from the \i{Default Settings}
|
||||
(see \k{config-saving}); \c{user} overrides these settings if
|
||||
supplied. Also, you can specify a protocol, which will override the
|
||||
default protocol (see \k{using-cmdline-protocol}).
|
||||
|
||||
For telnet sessions, the following alternative syntax is supported
|
||||
(this makes PuTTY suitable for use as a URL handler for \i{telnet
|
||||
URLs} in web browsers):
|
||||
|
||||
\c putty.exe telnet://host[:port]/
|
||||
|
||||
In order to start an existing saved session called \c{sessionname},
|
||||
use the \c{-load} option (described in \k{using-cmdline-load}).
|
||||
|
||||
\c putty.exe -load "session name"
|
||||
|
||||
\S{using-cleanup} \i\c{-cleanup}
|
||||
|
||||
\cfg{winhelp-topic}{options.cleanup}
|
||||
|
||||
If invoked with the \c{-cleanup} option, rather than running as
|
||||
normal, PuTTY will remove its \I{removing registry entries}registry
|
||||
entries and \i{random seed file} from the local machine (after
|
||||
confirming with the user).
|
||||
|
||||
Note that on \i{multi-user systems}, \c{-cleanup} only removes
|
||||
registry entries and files associated with the currently logged-in
|
||||
user.
|
||||
|
||||
\S{using-general-opts} Standard command-line options
|
||||
|
||||
PuTTY and its associated tools support a range of command-line
|
||||
options, most of which are consistent across all the tools. This
|
||||
section lists the available options in all tools. Options which are
|
||||
specific to a particular tool are covered in the chapter about that
|
||||
tool.
|
||||
|
||||
\S2{using-cmdline-load} \i\c{-load}: load a saved session
|
||||
|
||||
\I{saved sessions, loading from command line}The \c{-load} option
|
||||
causes PuTTY to load configuration details out of a saved session.
|
||||
If these details include a host name, then this option is all you
|
||||
need to make PuTTY start a session.
|
||||
|
||||
You need double quotes around the session name if it contains spaces.
|
||||
|
||||
If you want to create a \i{Windows shortcut} to start a PuTTY saved
|
||||
session, this is the option you should use: your shortcut should
|
||||
call something like
|
||||
|
||||
\c d:\path\to\putty.exe -load "my session"
|
||||
|
||||
(Note that PuTTY itself supports an alternative form of this option,
|
||||
for backwards compatibility. If you execute \i\c{putty @sessionname}
|
||||
it will have the same effect as \c{putty -load "sessionname"}. With
|
||||
the \c{@} form, no double quotes are required, and the \c{@} sign
|
||||
must be the very first thing on the command line. This form of the
|
||||
option is deprecated.)
|
||||
|
||||
\S2{using-cmdline-protocol} Selecting a protocol: \c{-ssh},
|
||||
\c{-telnet}, \c{-rlogin}, \c{-raw}
|
||||
|
||||
To choose which protocol you want to connect with, you can use one
|
||||
of these options:
|
||||
|
||||
\b \i\c{-ssh} selects the SSH protocol.
|
||||
|
||||
\b \i\c{-telnet} selects the Telnet protocol.
|
||||
|
||||
\b \i\c{-rlogin} selects the Rlogin protocol.
|
||||
|
||||
\b \i\c{-raw} selects the raw protocol.
|
||||
|
||||
These options are not available in the file transfer tools PSCP and
|
||||
PSFTP (which only work with the SSH protocol).
|
||||
|
||||
These options are equivalent to the \i{protocol selection} buttons
|
||||
in the Session panel of the PuTTY configuration box (see
|
||||
\k{config-hostname}).
|
||||
|
||||
\S2{using-cmdline-v} \i\c{-v}: increase verbosity
|
||||
|
||||
\I{verbose mode}Most of the PuTTY tools can be made to tell you more
|
||||
about what they are doing by supplying the \c{-v} option. If you are
|
||||
having trouble when making a connection, or you're simply curious,
|
||||
you can turn this switch on and hope to find out more about what is
|
||||
happening.
|
||||
|
||||
\S2{using-cmdline-l} \i\c{-l}: specify a \i{login name}
|
||||
|
||||
You can specify the user name to log in as on the remote server
|
||||
using the \c{-l} option. For example, \c{plink login.example.com -l
|
||||
fred}.
|
||||
|
||||
These options are equivalent to the username selection box in the
|
||||
Connection panel of the PuTTY configuration box (see
|
||||
\k{config-username}).
|
||||
|
||||
\S2{using-cmdline-portfwd} \I{-L-upper}\c{-L}, \I{-R-upper}\c{-R}
|
||||
and \I{-D-upper}\c{-D}: set up \i{port forwardings}
|
||||
|
||||
As well as setting up port forwardings in the PuTTY configuration
|
||||
(see \k{config-ssh-portfwd}), you can also set up forwardings on the
|
||||
command line. The command-line options work just like the ones in
|
||||
Unix \c{ssh} programs.
|
||||
|
||||
To \I{local port forwarding}forward a local port (say 5110) to a
|
||||
remote destination (say \cw{popserver.example.com} port 110), you
|
||||
can write something like one of these:
|
||||
|
||||
\c putty -L 5110:popserver.example.com:110 -load mysession
|
||||
\c plink mysession -L 5110:popserver.example.com:110
|
||||
|
||||
To forward a \I{remote port forwarding}remote port to a local
|
||||
destination, just use the \c{-R} option instead of \c{-L}:
|
||||
|
||||
\c putty -R 5023:mytelnetserver.myhouse.org:23 -load mysession
|
||||
\c plink mysession -R 5023:mytelnetserver.myhouse.org:23
|
||||
|
||||
To \I{listen address}specify an IP address for the listening end of the
|
||||
tunnel, prepend it to the argument:
|
||||
|
||||
\c plink -L 127.0.0.5:23:localhost:23 myhost
|
||||
|
||||
To set up \I{dynamic port forwarding}SOCKS-based dynamic port
|
||||
forwarding on a local port, use the \c{-D} option. For this one you
|
||||
only have to pass the port number:
|
||||
|
||||
\c putty -D 4096 -load mysession
|
||||
|
||||
For general information on port forwarding, see
|
||||
\k{using-port-forwarding}.
|
||||
|
||||
These options are not available in the file transfer tools PSCP and
|
||||
PSFTP.
|
||||
|
||||
\S2{using-cmdline-m} \i\c{-m}: \I{reading commands from a file}read
|
||||
a remote command or script from a file
|
||||
|
||||
The \i\c{-m} option performs a similar function to the \q{\ii{Remote
|
||||
command}} box in the SSH panel of the PuTTY configuration box (see
|
||||
\k{config-command}). However, the \c{-m} option expects to be given
|
||||
a local file name, and it will read a command from that file.
|
||||
|
||||
With some servers (particularly Unix systems), you can even put
|
||||
multiple lines in this file and execute more than one command in
|
||||
sequence, or a whole shell script; but this is arguably an abuse, and
|
||||
cannot be expected to work on all servers. In particular, it is known
|
||||
\e{not} to work with certain \q{embedded} servers, such as \i{Cisco}
|
||||
routers.
|
||||
|
||||
This option is not available in the file transfer tools PSCP and
|
||||
PSFTP.
|
||||
|
||||
\S2{using-cmdline-p} \I{-P-upper}\c{-P}: specify a \i{port number}
|
||||
|
||||
The \c{-P} option is used to specify the port number to connect to. If
|
||||
you have a Telnet server running on port 9696 of a machine instead of
|
||||
port 23, for example:
|
||||
|
||||
\c putty -telnet -P 9696 host.name
|
||||
\c plink -telnet -P 9696 host.name
|
||||
|
||||
(Note that this option is more useful in Plink than in PuTTY,
|
||||
because in PuTTY you can write \c{putty -telnet host.name 9696} in
|
||||
any case.)
|
||||
|
||||
This option is equivalent to the port number control in the Session
|
||||
panel of the PuTTY configuration box (see \k{config-hostname}).
|
||||
|
||||
\S2{using-cmdline-pw} \i\c{-pw}: specify a \i{password}
|
||||
|
||||
A simple way to automate a remote login is to supply your password
|
||||
on the command line. This is \e{not recommended} for reasons of
|
||||
security. If you possibly can, we recommend you set up public-key
|
||||
authentication instead. See \k{pubkey} for details.
|
||||
|
||||
Note that the \c{-pw} option only works when you are using the SSH
|
||||
protocol. Due to fundamental limitations of Telnet and Rlogin, these
|
||||
protocols do not support automated password authentication.
|
||||
|
||||
\S2{using-cmdline-agentauth} \i\c{-agent} and \i\c{-noagent}:
|
||||
control use of Pageant for authentication
|
||||
|
||||
The \c{-agent} option turns on SSH authentication using Pageant, and
|
||||
\c{-noagent} turns it off. These options are only meaningful if you
|
||||
are using SSH.
|
||||
|
||||
See \k{pageant} for general information on \i{Pageant}.
|
||||
|
||||
These options are equivalent to the agent authentication checkbox in
|
||||
the Auth panel of the PuTTY configuration box (see
|
||||
\k{config-ssh-tryagent}).
|
||||
|
||||
\S2{using-cmdline-agent} \I{-A-upper}\c{-A} and \i\c{-a}: control \i{agent
|
||||
forwarding}
|
||||
|
||||
The \c{-A} option turns on SSH agent forwarding, and \c{-a} turns it
|
||||
off. These options are only meaningful if you are using SSH.
|
||||
|
||||
See \k{pageant} for general information on \i{Pageant}, and
|
||||
\k{pageant-forward} for information on agent forwarding. Note that
|
||||
there is a security risk involved with enabling this option; see
|
||||
\k{pageant-security} for details.
|
||||
|
||||
These options are equivalent to the agent forwarding checkbox in the
|
||||
Auth panel of the PuTTY configuration box (see \k{config-ssh-agentfwd}).
|
||||
|
||||
These options are not available in the file transfer tools PSCP and
|
||||
PSFTP.
|
||||
|
||||
\S2{using-cmdline-x11} \I{-X-upper}\c{-X} and \i\c{-x}: control \i{X11
|
||||
forwarding}
|
||||
|
||||
The \c{-X} option turns on X11 forwarding in SSH, and \c{-x} turns
|
||||
it off. These options are only meaningful if you are using SSH.
|
||||
|
||||
For information on X11 forwarding, see \k{using-x-forwarding}.
|
||||
|
||||
These options are equivalent to the X11 forwarding checkbox in the
|
||||
Tunnels panel of the PuTTY configuration box (see
|
||||
\k{config-ssh-x11}).
|
||||
|
||||
These options are not available in the file transfer tools PSCP and
|
||||
PSFTP.
|
||||
|
||||
\S2{using-cmdline-pty} \i\c{-t} and \I{-T-upper}\c{-T}: control
|
||||
\i{pseudo-terminal allocation}
|
||||
|
||||
The \c{-t} option ensures PuTTY attempts to allocate a
|
||||
pseudo-terminal at the server, and \c{-T} stops it from allocating
|
||||
one. These options are only meaningful if you are using SSH.
|
||||
|
||||
These options are equivalent to the \q{Don't allocate a
|
||||
pseudo-terminal} checkbox in the SSH panel of the PuTTY
|
||||
configuration box (see \k{config-ssh-pty}).
|
||||
|
||||
These options are not available in the file transfer tools PSCP and
|
||||
PSFTP.
|
||||
|
||||
\S2{using-cmdline-noshell} \I{-N-upper}\c{-N}: suppress starting a
|
||||
\I{suppressing remote shell}shell or command
|
||||
|
||||
The \c{-N} option prevents PuTTY from attempting to start a shell or
|
||||
command on the remote server. You might want to use this option if
|
||||
you are only using the SSH connection for port forwarding, and your
|
||||
user account on the server does not have the ability to run a shell.
|
||||
|
||||
This feature is only available in SSH protocol version 2 (since the
|
||||
version 1 protocol assumes you will always want to run a shell).
|
||||
|
||||
This option is equivalent to the \q{Don't start a shell or command
|
||||
at all} checkbox in the SSH panel of the PuTTY configuration box
|
||||
(see \k{config-ssh-noshell}).
|
||||
|
||||
This option is not available in the file transfer tools PSCP and
|
||||
PSFTP.
|
||||
|
||||
\S2{using-cmdline-ncmode} \I{-nc}\c{-nc}: make a \i{remote network
|
||||
connection} in place of a remote shell or command
|
||||
|
||||
The \c{-nc} option prevents Plink (or PuTTY) from attempting to
|
||||
start a shell or command on the remote server. Instead, it will
|
||||
instruct the remote server to open a network connection to a host
|
||||
name and port number specified by you, and treat that network
|
||||
connection as if it were the main session.
|
||||
|
||||
You specify a host and port as an argument to the \c{-nc} option,
|
||||
with a colon separating the host name from the port number, like
|
||||
this:
|
||||
|
||||
\c plink host1.example.com -nc host2.example.com:1234
|
||||
|
||||
You might want to use this feature if you needed to make an SSH
|
||||
connection to a target host which you can only reach by going
|
||||
through a proxy host, and rather than using port forwarding you
|
||||
prefer to use the local proxy feature (see \k{config-proxy-type} for
|
||||
more about local proxies). In this situation you might select
|
||||
\q{Local} proxy type, set your local proxy command to be \cq{plink
|
||||
%proxyhost -nc %host:%port}, enter the target host name on the
|
||||
Session panel, and enter the directly reachable proxy host name on
|
||||
the Proxy panel.
|
||||
|
||||
This feature is only available in SSH protocol version 2 (since the
|
||||
version 1 protocol assumes you will always want to run a shell). It
|
||||
is not available in the file transfer tools PSCP and PSFTP. It is
|
||||
available in PuTTY itself, although it is unlikely to be very useful
|
||||
in any tool other than Plink. Also, \c{-nc} uses the same server
|
||||
functionality as port forwarding, so it will not work if your server
|
||||
administrator has disabled port forwarding.
|
||||
|
||||
(The option is named \c{-nc} after the Unix program
|
||||
\W{http://www.vulnwatch.org/netcat/}\c{nc}, short for \q{netcat}.
|
||||
The command \cq{plink host1 -nc host2:port} is very similar in
|
||||
functionality to \cq{plink host1 nc host2 port}, which invokes
|
||||
\c{nc} on the server and tells it to connect to the specified
|
||||
destination. However, Plink's built-in \c{-nc} option does not
|
||||
depend on the \c{nc} program being installed on the server.)
|
||||
|
||||
\S2{using-cmdline-compress} \I{-C-upper}\c{-C}: enable \i{compression}
|
||||
|
||||
The \c{-C} option enables compression of the data sent across the
|
||||
network. This option is only meaningful if you are using SSH.
|
||||
|
||||
This option is equivalent to the \q{Enable compression} checkbox in
|
||||
the SSH panel of the PuTTY configuration box (see
|
||||
\k{config-ssh-comp}).
|
||||
|
||||
\S2{using-cmdline-sshprot} \i\c{-1} and \i\c{-2}: specify an \i{SSH
|
||||
protocol version}
|
||||
|
||||
The \c{-1} and \c{-2} options force PuTTY to use version \I{SSH-1}1
|
||||
or version \I{SSH-2}2 of the SSH protocol. These options are only
|
||||
meaningful if you are using SSH.
|
||||
|
||||
These options are equivalent to selecting your preferred SSH
|
||||
protocol version as \q{1 only} or \q{2 only} in the SSH panel of the
|
||||
PuTTY configuration box (see \k{config-ssh-prot}).
|
||||
|
||||
\S2{using-cmdline-ipversion} \i\c{-4} and \i\c{-6}: specify an
|
||||
\i{Internet protocol version}
|
||||
|
||||
The \c{-4} and \c{-6} options force PuTTY to use the older Internet
|
||||
protocol \i{IPv4} or the newer \i{IPv6}.
|
||||
|
||||
These options are equivalent to selecting your preferred Internet
|
||||
protocol version as \q{IPv4} or \q{IPv6} in the Connection panel of
|
||||
the PuTTY configuration box (see \k{config-address-family}).
|
||||
|
||||
\S2{using-cmdline-identity} \i\c{-i}: specify an SSH \i{private key}
|
||||
|
||||
The \c{-i} option allows you to specify the name of a private key
|
||||
file in \c{*.\i{PPK}} format which PuTTY will use to authenticate with the
|
||||
server. This option is only meaningful if you are using SSH.
|
||||
|
||||
For general information on \i{public-key authentication}, see
|
||||
\k{pubkey}.
|
||||
|
||||
This option is equivalent to the \q{Private key file for
|
||||
authentication} box in the Auth panel of the PuTTY configuration box
|
||||
(see \k{config-ssh-privkey}).
|
||||
|
||||
\S2{using-cmdline-pgpfp} \i\c{-pgpfp}: display \i{PGP key fingerprint}s
|
||||
|
||||
This option causes the PuTTY tools not to run as normal, but instead
|
||||
to display the fingerprints of the PuTTY PGP Master Keys, in order to
|
||||
aid with \i{verifying new versions}. See \k{pgpkeys} for more information.
|
||||
36
puttysrc/DOC/VIDS.BUT
Normal file
36
puttysrc/DOC/VIDS.BUT
Normal file
@@ -0,0 +1,36 @@
|
||||
\# Invoke the versionid macros defined in all the other manual
|
||||
\# chapter files.
|
||||
|
||||
\versionidblurb
|
||||
|
||||
\versionidintro
|
||||
|
||||
\versionidgs
|
||||
|
||||
\versionidusing
|
||||
|
||||
\versionidconfig
|
||||
|
||||
\versionidpscp
|
||||
|
||||
\versionidpsftp
|
||||
|
||||
\versionidplink
|
||||
|
||||
\versionidpubkey
|
||||
|
||||
\versionidpageant
|
||||
|
||||
\versioniderrors
|
||||
|
||||
\versionidfaq
|
||||
|
||||
\versionidfeedback
|
||||
|
||||
\versionidlicence
|
||||
|
||||
\versionidudp
|
||||
|
||||
\versionidpgpkeys
|
||||
|
||||
\versionidindex
|
||||
Reference in New Issue
Block a user