Initialise 'psa' to NULL on every code path in the Pageant client
[u/mdw/putty] / doc / pageant.but
index c7f552a..698908c 100644 (file)
@@ -1,18 +1,21 @@
-\versionid $Id: pageant.but,v 1.5 2001/11/25 17:32:39 simon Exp $
+\define{versionidpageant} \versionid $Id$
 
-\C{pageant} Using Pageant for authentication
+\C{pageant} Using \i{Pageant} for authentication
 
-Pageant is an SSH authentication agent. It holds your private keys
-in memory, already decoded, so that you can use them often without
-needing to type a passphrase.
+\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. See
-\k{pubkey} to find out how to generate and use one.
+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 System tray. It will then sit and do nothing.
+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
@@ -21,7 +24,8 @@ 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.
+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
@@ -38,26 +42,137 @@ 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-forward} Using agent forwarding
+\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 SSH2 is only available
-when your SSH server is OpenSSH. The \cw{ssh.com} server uses a
-different agent protocol which they have not published. If you would
-like PuTTY to be able to support agent forwarding to an \cw{ssh.com}
-server, please write to \cw{ssh.com} and explain to them that they
-are hurting themselves and their users by keeping their protocol
-secret.
+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.
+\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
@@ -91,7 +206,7 @@ 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
-\c{ssh-add} command:
+\i\c{ssh-add} command:
 
 \c unixbox:~$ ssh-add ~/.ssh/id_rsa
 \c Need passphrase for /home/fred/.ssh/id_rsa
@@ -104,7 +219,7 @@ available (not just the ones downstream of the place you added it).
 
 \H{pageant-security} Security considerations
 
-Using Pageant for public-key authentication gives you the
+\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.
@@ -117,7 +232,7 @@ 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 swap file. So if Pageant is holding
+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
@@ -145,7 +260,7 @@ 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 public keys, and
+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