| 1 | \define{versioniderrors} \versionid $Id$ |
| 2 | |
| 3 | \C{errors} Common \i{error messages} |
| 4 | |
| 5 | This chapter lists a number of common error messages which PuTTY and |
| 6 | its associated tools can produce, and explains what they mean in |
| 7 | more detail. |
| 8 | |
| 9 | We do not attempt to list \e{all} error messages here: there are |
| 10 | many which should never occur, and some which should be |
| 11 | self-explanatory. If you get an error message which is not listed in |
| 12 | this chapter and which you don't understand, report it to us as a |
| 13 | bug (see \k{feedback}) and we will add documentation for it. |
| 14 | |
| 15 | \H{errors-hostkey-absent} \q{The server's host key is not cached in |
| 16 | the registry} |
| 17 | |
| 18 | \cfg{winhelp-topic}{errors.hostkey.absent} |
| 19 | |
| 20 | This error message occurs when PuTTY connects to a new SSH server. |
| 21 | Every server identifies itself by means of a host key; once PuTTY |
| 22 | knows the host key for a server, it will be able to detect if a |
| 23 | malicious attacker redirects your connection to another machine. |
| 24 | |
| 25 | If you see this message, it means that PuTTY has not seen this host |
| 26 | key before, and has no way of knowing whether it is correct or not. |
| 27 | You should attempt to verify the host key by other means, such as |
| 28 | asking the machine's administrator. |
| 29 | |
| 30 | If you see this message and you know that your installation of PuTTY |
| 31 | \e{has} connected to the same server before, it may have been |
| 32 | recently upgraded to SSH protocol version 2. SSH protocols 1 and 2 |
| 33 | use separate host keys, so when you first use \i{SSH-2} with a server |
| 34 | you have only used SSH-1 with before, you will see this message |
| 35 | again. You should verify the correctness of the key as before. |
| 36 | |
| 37 | See \k{gs-hostkey} for more information on host keys. |
| 38 | |
| 39 | \H{errors-hostkey-wrong} \q{WARNING - POTENTIAL SECURITY BREACH!} |
| 40 | |
| 41 | \cfg{winhelp-topic}{errors.hostkey.changed} |
| 42 | |
| 43 | This message, followed by \q{The server's host key does not match |
| 44 | the one PuTTY has cached in the registry}, means that PuTTY has |
| 45 | connected to the SSH server before, knows what its host key |
| 46 | \e{should} be, but has found a different one. |
| 47 | |
| 48 | This may mean that a malicious attacker has replaced your server |
| 49 | with a different one, or has redirected your network connection to |
| 50 | their own machine. On the other hand, it may simply mean that the |
| 51 | administrator of your server has accidentally changed the key while |
| 52 | upgrading the SSH software; this \e{shouldn't} happen but it is |
| 53 | unfortunately possible. |
| 54 | |
| 55 | You should contact your server's administrator and see whether they |
| 56 | expect the host key to have changed. If so, verify the new host key |
| 57 | in the same way as you would if it was new. |
| 58 | |
| 59 | See \k{gs-hostkey} for more information on host keys. |
| 60 | |
| 61 | \H{errors-portfwd-space} \q{Out of space for port forwardings} |
| 62 | |
| 63 | PuTTY has a fixed-size buffer which it uses to store the details of |
| 64 | all \i{port forwardings} you have set up in an SSH session. If you |
| 65 | specify too many port forwardings on the PuTTY or Plink command line |
| 66 | and this buffer becomes full, you will see this error message. |
| 67 | |
| 68 | We need to fix this (fixed-size buffers are almost always a mistake) |
| 69 | but we haven't got round to it. If you actually have trouble with |
| 70 | this, let us know and we'll move it up our priority list. |
| 71 | |
| 72 | \H{errors-cipher-warning} \q{The first cipher supported by the server is |
| 73 | ... below the configured warning threshold} |
| 74 | |
| 75 | This occurs when the SSH server does not offer any ciphers which you |
| 76 | have configured PuTTY to consider strong enough. By default, PuTTY |
| 77 | puts up this warning only for \ii{single-DES} and \i{Arcfour} encryption. |
| 78 | |
| 79 | See \k{config-ssh-encryption} for more information on this message. |
| 80 | |
| 81 | \H{errors-toomanyauth} \q{Server sent disconnect message type 2 |
| 82 | (protocol error): "Too many authentication failures for root"} |
| 83 | |
| 84 | This message is produced by an \i{OpenSSH} (or \i{Sun SSH}) server if it |
| 85 | receives more failed authentication attempts than it is willing to |
| 86 | tolerate. |
| 87 | |
| 88 | This can easily happen if you are using Pageant and have a |
| 89 | large number of keys loaded into it, since these servers count each |
| 90 | offer of a public key as an authentication attempt. This can be worked |
| 91 | around by specifying the key that's required for the authentication in |
| 92 | the PuTTY configuration (see \k{config-ssh-privkey}); PuTTY will ignore |
| 93 | any other keys Pageant may have, but will ask Pageant to do the |
| 94 | authentication, so that you don't have to type your passphrase. |
| 95 | |
| 96 | On the server, this can be worked around by disabling public-key |
| 97 | authentication or (for Sun SSH only) by increasing \c{MaxAuthTries} in |
| 98 | \c{sshd_config}. |
| 99 | |
| 100 | \H{errors-memory} \q{\ii{Out of memory}} |
| 101 | |
| 102 | This occurs when PuTTY tries to allocate more memory than the system |
| 103 | can give it. This \e{may} happen for genuine reasons: if the |
| 104 | computer really has run out of memory, or if you have configured an |
| 105 | extremely large number of lines of scrollback in your terminal. |
| 106 | PuTTY is not able to recover from running out of memory; it will |
| 107 | terminate immediately after giving this error. |
| 108 | |
| 109 | However, this error can also occur when memory is not running out at |
| 110 | all, because PuTTY receives data in the wrong format. In SSH-2 and |
| 111 | also in SFTP, the server sends the length of each message before the |
| 112 | message itself; so PuTTY will receive the length, try to allocate |
| 113 | space for the message, and then receive the rest of the message. If |
| 114 | the length PuTTY receives is garbage, it will try to allocate a |
| 115 | ridiculous amount of memory, and will terminate with an \q{Out of |
| 116 | memory} error. |
| 117 | |
| 118 | This can happen in SSH-2, if PuTTY and the server have not enabled |
| 119 | encryption in the same way (see \k{faq-outofmem} in the FAQ). Some |
| 120 | versions of \i{OpenSSH} have a known problem with this: see |
| 121 | \k{faq-openssh-bad-openssl}. |
| 122 | |
| 123 | This can also happen in PSCP or PSFTP, if your \i{login scripts} on the |
| 124 | server generate output: the client program will be expecting an SFTP |
| 125 | message starting with a length, and if it receives some text from |
| 126 | your login scripts instead it will try to interpret them as a |
| 127 | message length. See \k{faq-outofmem2} for details of this. |
| 128 | |
| 129 | \H{errors-internal} \q{\ii{Internal error}}, \q{\ii{Internal fault}}, |
| 130 | \q{\ii{Assertion failed}} |
| 131 | |
| 132 | Any error beginning with the word \q{Internal} should \e{never} |
| 133 | occur. If it does, there is a bug in PuTTY by definition; please see |
| 134 | \k{feedback} and report it to us. |
| 135 | |
| 136 | Similarly, any error message starting with \q{Assertion failed} is a |
| 137 | bug in PuTTY. Please report it to us, and include the exact text |
| 138 | from the error message box. |
| 139 | |
| 140 | \H{errors-cant-load-key} \q{Unable to use this private key file}, |
| 141 | \q{Couldn't load private key}, \q{Key is of wrong type} |
| 142 | |
| 143 | \cfg{winhelp-topic}{errors.cantloadkey} |
| 144 | |
| 145 | Various forms of this error are printed in the PuTTY window, or |
| 146 | written to the PuTTY Event Log (see \k{using-eventlog}) when trying |
| 147 | public-key authentication, or given by Pageant when trying to load a |
| 148 | private key. |
| 149 | |
| 150 | If you see one of these messages, it often indicates that you've tried |
| 151 | to load a key of an inappropriate type into PuTTY, Plink, PSCP, PSFTP, |
| 152 | or Pageant. |
| 153 | |
| 154 | You may have specified a key that's inappropriate for the connection |
| 155 | you're making. The SSH-1 and SSH-2 protocols require different private |
| 156 | key formats, and a SSH-1 key can't be used for a SSH-2 connection (or |
| 157 | vice versa). |
| 158 | |
| 159 | Alternatively, you may have tried to load an SSH-2 key in a \q{foreign} |
| 160 | format (OpenSSH or \cw{ssh.com}) directly into one of the PuTTY tools, |
| 161 | in which case you need to import it into PuTTY's native format |
| 162 | (\c{*.PPK}) using PuTTYgen - see \k{puttygen-conversions}. |
| 163 | |
| 164 | \H{errors-refused} \q{Server refused our public key} or \q{Key |
| 165 | refused} |
| 166 | |
| 167 | Various forms of this error are printed in the PuTTY window, or |
| 168 | written to the PuTTY Event Log (see \k{using-eventlog}) when trying |
| 169 | public-key authentication. |
| 170 | |
| 171 | If you see one of these messages, it means that PuTTY has sent a |
| 172 | public key to the server and offered to authenticate with it, and |
| 173 | the server has refused to accept authentication. This usually means |
| 174 | that the server is not configured to accept this key to authenticate |
| 175 | this user. |
| 176 | |
| 177 | This is almost certainly not a problem with PuTTY. If you see this |
| 178 | type of message, the first thing you should do is check your |
| 179 | \e{server} configuration carefully. Common errors include having |
| 180 | the wrong permissions or ownership set on the public key or the |
| 181 | user's home directory on the server. Also, read the PuTTY Event Log; |
| 182 | the server may have sent diagnostic messages explaining exactly what |
| 183 | problem it had with your setup. |
| 184 | |
| 185 | \H{errors-access-denied} \q{Access denied}, \q{Authentication refused} |
| 186 | |
| 187 | Various forms of this error are printed in the PuTTY window, or |
| 188 | written to the PuTTY Event Log (see \k{using-eventlog}) during |
| 189 | authentication. |
| 190 | |
| 191 | If you see one of these messages, it means that the server has refused |
| 192 | all the forms of authentication PuTTY has tried and it has no further |
| 193 | ideas. |
| 194 | |
| 195 | It may be worth checking the Event Log for diagnostic messages from |
| 196 | the server giving more detail. |
| 197 | |
| 198 | This error can be caused by buggy SSH-1 servers that fail to cope with |
| 199 | the various strategies we use for camouflaging passwords in transit. |
| 200 | Upgrade your server, or use the workarounds described in |
| 201 | \k{config-ssh-bug-ignore1} and possibly \k{config-ssh-bug-plainpw1}. |
| 202 | |
| 203 | \H{errors-crc} \q{Incorrect \i{CRC} received on packet} or \q{Incorrect |
| 204 | MAC received on packet} |
| 205 | |
| 206 | This error occurs when PuTTY decrypts an SSH packet and its checksum |
| 207 | is not correct. This probably means something has gone wrong in the |
| 208 | encryption or decryption process. It's difficult to tell from this |
| 209 | error message whether the problem is in the client, in the server, |
| 210 | or in between. |
| 211 | |
| 212 | A known server problem which can cause this error is described in |
| 213 | \k{faq-openssh-bad-openssl} in the FAQ. |
| 214 | |
| 215 | \H{errors-garbled} \q{Incoming packet was garbled on decryption} |
| 216 | |
| 217 | This error occurs when PuTTY decrypts an SSH packet and the |
| 218 | decrypted data makes no sense. This probably means something has |
| 219 | gone wrong in the encryption or decryption process. It's difficult |
| 220 | to tell from this error message whether the problem is in the client, |
| 221 | in the server, or in between. |
| 222 | |
| 223 | If you get this error, one thing you could try would be to fiddle |
| 224 | with the setting of \q{Miscomputes SSH-2 encryption keys} on the Bugs |
| 225 | panel (see \k{config-ssh-bug-derivekey2}). |
| 226 | |
| 227 | Another known server problem which can cause this error is described |
| 228 | in \k{faq-openssh-bad-openssl} in the FAQ. |
| 229 | |
| 230 | \H{errors-x11-proxy} \q{PuTTY X11 proxy: \e{various errors}} |
| 231 | |
| 232 | This family of errors are reported when PuTTY is doing X forwarding. |
| 233 | They are sent back to the X application running on the SSH server, |
| 234 | which will usually report the error to the user. |
| 235 | |
| 236 | When PuTTY enables X forwarding (see \k{using-x-forwarding}) it |
| 237 | creates a virtual X display running on the SSH server. This display |
| 238 | requires authentication to connect to it (this is how PuTTY prevents |
| 239 | other users on your server machine from connecting through the PuTTY |
| 240 | proxy to your real X display). PuTTY also sends the server the |
| 241 | details it needs to enable clients to connect, and the server should |
| 242 | put this mechanism in place automatically, so your X applications |
| 243 | should just work. |
| 244 | |
| 245 | A common reason why people see one of these messages is because they |
| 246 | used SSH to log in as one user (let's say \q{fred}), and then used |
| 247 | the Unix \c{su} command to become another user (typically \q{root}). |
| 248 | The original user, \q{fred}, has access to the X authentication data |
| 249 | provided by the SSH server, and can run X applications which are |
| 250 | forwarded over the SSH connection. However, the second user |
| 251 | (\q{root}) does not automatically have the authentication data |
| 252 | passed on to it, so attempting to run an X application as that user |
| 253 | often fails with this error. |
| 254 | |
| 255 | If this happens, \e{it is not a problem with PuTTY}. You need to |
| 256 | arrange for your X authentication data to be passed from the user |
| 257 | you logged in as to the user you used \c{su} to become. How you do |
| 258 | this depends on your particular system; in fact many modern versions |
| 259 | of \c{su} do it automatically. |
| 260 | |
| 261 | \H{errors-connaborted} \q{Network error: Software caused connection |
| 262 | abort} |
| 263 | |
| 264 | This is a generic error produced by the Windows network code when it |
| 265 | kills an established connection for some reason. For example, it might |
| 266 | happen if you pull the network cable out of the back of an |
| 267 | Ethernet-connected computer, or if Windows has any other similar |
| 268 | reason to believe the entire network has become unreachable. |
| 269 | |
| 270 | Windows also generates this error if it has given up on the machine |
| 271 | at the other end of the connection ever responding to it. If the |
| 272 | network between your client and server goes down and your client |
| 273 | then tries to send some data, Windows will make several attempts to |
| 274 | send the data and will then give up and kill the connection. In |
| 275 | particular, this can occur even if you didn't type anything, if you |
| 276 | are using SSH-2 and PuTTY attempts a key re-exchange. (See |
| 277 | \k{config-ssh-kex-rekey} for more about key re-exchange.) |
| 278 | |
| 279 | (It can also occur if you are using keepalives in your connection. |
| 280 | Other people have reported that keepalives \e{fix} this error for |
| 281 | them. See \k{config-keepalive} for a discussion of the pros and cons |
| 282 | of keepalives.) |
| 283 | |
| 284 | We are not aware of any reason why this error might occur that would |
| 285 | represent a bug in PuTTY. The problem is between you, your Windows |
| 286 | system, your network and the remote system. |
| 287 | |
| 288 | \H{errors-connreset} \q{Network error: Connection reset by peer} |
| 289 | |
| 290 | This error occurs when the machines at each end of a network |
| 291 | connection lose track of the state of the connection between them. |
| 292 | For example, you might see it if your SSH server crashes, and |
| 293 | manages to reboot fully before you next attempt to send data to it. |
| 294 | |
| 295 | However, the most common reason to see this message is if you are |
| 296 | connecting through a \i{firewall} or a \i{NAT router} which has timed the |
| 297 | connection out. See \k{faq-idleout} in the FAQ for more details. You |
| 298 | may be able to improve the situation by using keepalives; see |
| 299 | \k{config-keepalive} for details on this. |
| 300 | |
| 301 | Note that Windows can produce this error in some circumstances without |
| 302 | seeing a connection reset from the server, for instance if the |
| 303 | connection to the network is lost. |
| 304 | |
| 305 | \H{errors-connrefused} \q{Network error: Connection refused} |
| 306 | |
| 307 | This error means that the network connection PuTTY tried to make to |
| 308 | your server was rejected by the server. Usually this happens because |
| 309 | the server does not provide the service which PuTTY is trying to |
| 310 | access. |
| 311 | |
| 312 | Check that you are connecting with the correct protocol (SSH, Telnet |
| 313 | or Rlogin), and check that the port number is correct. If that |
| 314 | fails, consult the administrator of your server. |
| 315 | |
| 316 | \H{errors-conntimedout} \q{Network error: Connection timed out} |
| 317 | |
| 318 | This error means that the network connection PuTTY tried to make to |
| 319 | your server received no response at all from the server. Usually |
| 320 | this happens because the server machine is completely isolated from |
| 321 | the network, or because it is turned off. |
| 322 | |
| 323 | Check that you have correctly entered the host name or IP address of |
| 324 | your server machine. If that fails, consult the administrator of |
| 325 | your server. |
| 326 | |
| 327 | \i{Unix} also generates this error when it tries to send data down a |
| 328 | connection and contact with the server has been completely lost |
| 329 | during a connection. (There is a delay of minutes before Unix gives |
| 330 | up on receiving a reply from the server.) This can occur if you type |
| 331 | things into PuTTY while the network is down, but it can also occur |
| 332 | if PuTTY decides of its own accord to send data: due to a repeat key |
| 333 | exchange in SSH-2 (see \k{config-ssh-kex-rekey}) or due to |
| 334 | keepalives (\k{config-keepalive}). |