diff options
Diffstat (limited to 'other/openssh-2.1.1p4/ssh.0')
| -rw-r--r-- | other/openssh-2.1.1p4/ssh.0 | 811 |
1 files changed, 0 insertions, 811 deletions
diff --git a/other/openssh-2.1.1p4/ssh.0 b/other/openssh-2.1.1p4/ssh.0 deleted file mode 100644 index b62d1db..0000000 --- a/other/openssh-2.1.1p4/ssh.0 +++ /dev/null | |||
| @@ -1,811 +0,0 @@ | |||
| 1 | |||
| 2 | SSH(1) System Reference Manual SSH(1) | ||
| 3 | |||
| 4 | NAME | ||
| 5 | ssh - OpenSSH secure shell client (remote login program) | ||
| 6 | |||
| 7 | SYNOPSIS | ||
| 8 | ssh [-l login_name] [hostname | user@hostname] [command] | ||
| 9 | |||
| 10 | ssh [-afgknqtvxACNPTX246] [-c cipher_spec] [-e escape_char] [-i | ||
| 11 | identity_file] [-l login_name] [-o option] [-p port] [-L | ||
| 12 | port:host:hostport] [-R port:host:hostport] [hostname | | ||
| 13 | user@hostname] [command] | ||
| 14 | |||
| 15 | DESCRIPTION | ||
| 16 | ssh (Secure Shell) is a program for logging into a remote machine and for | ||
| 17 | executing commands on a remote machine. It is intended to replace rlogin | ||
| 18 | and rsh, and provide secure encrypted communications between two untrust- | ||
| 19 | ed hosts over an insecure network. X11 connections and arbitrary TCP/IP | ||
| 20 | ports can also be forwarded over the secure channel. | ||
| 21 | |||
| 22 | ssh connects and logs into the specified hostname. The user must prove | ||
| 23 | his/her identity to the remote machine using one of several methods de- | ||
| 24 | pending on the protocol version used: | ||
| 25 | |||
| 26 | SSH protocol version 1 | ||
| 27 | |||
| 28 | First, if the machine the user logs in from is listed in /etc/hosts.equiv | ||
| 29 | or /etc/shosts.equiv on the remote machine, and the user names are the | ||
| 30 | same on both sides, the user is immediately permitted to log in. Second, | ||
| 31 | if .rhosts or .shosts exists in the user's home directory on the remote | ||
| 32 | machine and contains a line containing the name of the client machine and | ||
| 33 | the name of the user on that machine, the user is permitted to log in. | ||
| 34 | This form of authentication alone is normally not allowed by the server | ||
| 35 | because it is not secure. | ||
| 36 | |||
| 37 | The second (and primary) authentication method is the rhosts or | ||
| 38 | hosts.equiv method combined with RSA-based host authentication. It means | ||
| 39 | that if the login would be permitted by $HOME/.rhosts, $HOME/.shosts, | ||
| 40 | /etc/hosts.equiv, or /etc/shosts.equiv, and if additionally the server | ||
| 41 | can verify the client's host key (see /etc/ssh_known_hosts and | ||
| 42 | $HOME/.ssh/known_hosts in the FILES section), only then login is permit- | ||
| 43 | ted. This authentication method closes security holes due to IP spoof- | ||
| 44 | ing, DNS spoofing and routing spoofing. [Note to the administrator: | ||
| 45 | /etc/hosts.equiv, $HOME/.rhosts, and the rlogin/rsh protocol in general, | ||
| 46 | are inherently insecure and should be disabled if security is desired.] | ||
| 47 | |||
| 48 | As a third authentication method, ssh supports RSA based authentication. | ||
| 49 | The scheme is based on public-key cryptography: there are cryptosystems | ||
| 50 | where encryption and decryption are done using separate keys, and it is | ||
| 51 | not possible to derive the decryption key from the encryption key. RSA | ||
| 52 | is one such system. The idea is that each user creates a public/private | ||
| 53 | key pair for authentication purposes. The server knows the public key, | ||
| 54 | and only the user knows the private key. The file | ||
| 55 | $HOME/.ssh/authorized_keys lists the public keys that are permitted for | ||
| 56 | logging in. When the user logs in, the ssh program tells the server | ||
| 57 | which key pair it would like to use for authentication. The server | ||
| 58 | checks if this key is permitted, and if so, sends the user (actually the | ||
| 59 | ssh program running on behalf of the user) a challenge, a random number, | ||
| 60 | encrypted by the user's public key. The challenge can only be decrypted | ||
| 61 | using the proper private key. The user's client then decrypts the chal- | ||
| 62 | lenge using the private key, proving that he/she knows the private key | ||
| 63 | but without disclosing it to the server. | ||
| 64 | |||
| 65 | |||
| 66 | ssh implements the RSA authentication protocol automatically. The user | ||
| 67 | creates his/her RSA key pair by running ssh-keygen(1). This stores the | ||
| 68 | private key in $HOME/.ssh/identity and the public key in | ||
| 69 | $HOME/.ssh/identity.pub in the user's home directory. The user should | ||
| 70 | then copy the identity.pub to $HOME/.ssh/authorized_keys in his/her home | ||
| 71 | directory on the remote machine (the authorized_keys file corresponds to | ||
| 72 | the conventional $HOME/.rhosts file, and has one key per line, though the | ||
| 73 | lines can be very long). After this, the user can log in without giving | ||
| 74 | the password. RSA authentication is much more secure than rhosts authen- | ||
| 75 | tication. | ||
| 76 | |||
| 77 | The most convenient way to use RSA authentication may be with an authen- | ||
| 78 | tication agent. See ssh-agent(1) for more information. | ||
| 79 | |||
| 80 | If other authentication methods fail, ssh prompts the user for a pass- | ||
| 81 | word. The password is sent to the remote host for checking; however, | ||
| 82 | since all communications are encrypted, the password cannot be seen by | ||
| 83 | someone listening on the network. | ||
| 84 | |||
| 85 | SSH protocol version 2 | ||
| 86 | |||
| 87 | When a user connects using the protocol version 2 different authentica- | ||
| 88 | tion methods are available: At first, the client attempts to authenticate | ||
| 89 | using the public key method. If this method fails password authentica- | ||
| 90 | tion is tried. | ||
| 91 | |||
| 92 | The public key method is similar to RSA authentication described in the | ||
| 93 | previous section except that the DSA algorithm is used instead of the | ||
| 94 | patented RSA algorithm. The client uses his private DSA key | ||
| 95 | $HOME/.ssh/id_dsa to sign the session identifier and sends the result to | ||
| 96 | the server. The server checks whether the matching public key is listed | ||
| 97 | in $HOME/.ssh/authorized_keys2 and grants access if both the key is found | ||
| 98 | and the signature is correct. The session identifier is derived from a | ||
| 99 | shared Diffie-Hellman value and is only known to the client and the serv- | ||
| 100 | er. | ||
| 101 | |||
| 102 | If public key authentication fails or is not available a password can be | ||
| 103 | sent encrypted to the remote host for proving the user's identity. This | ||
| 104 | protocol 2 implementation does not yet support Kerberos or S/Key authen- | ||
| 105 | tication. | ||
| 106 | |||
| 107 | Protocol 2 provides additional mechanisms for confidentiality (the traf- | ||
| 108 | fic is encrypted using 3DES, Blowfish, CAST128 or Arcfour) and integrity | ||
| 109 | (hmac-sha1, hmac-md5). Note that protocol 1 lacks a strong mechanism for | ||
| 110 | ensuring the integrity of the connection. | ||
| 111 | |||
| 112 | Login session and remote execution | ||
| 113 | |||
| 114 | When the user's identity has been accepted by the server, the server ei- | ||
| 115 | ther executes the given command, or logs into the machine and gives the | ||
| 116 | user a normal shell on the remote machine. All communication with the | ||
| 117 | remote command or shell will be automatically encrypted. | ||
| 118 | |||
| 119 | If a pseudo-terminal has been allocated (normal login session), the user | ||
| 120 | can disconnect with ~., and suspend ssh with ~^Z. All forwarded connec- | ||
| 121 | tions can be listed with ~# and if the session blocks waiting for for- | ||
| 122 | warded X11 or TCP/IP connections to terminate, it can be backgrounded | ||
| 123 | with ~& (this should not be used while the user shell is active, as it | ||
| 124 | can cause the shell to hang). All available escapes can be listed with | ||
| 125 | ~?. | ||
| 126 | |||
| 127 | A single tilde character can be sent as ~~ (or by following the tilde by | ||
| 128 | a character other than those described above). The escape character must | ||
| 129 | always follow a newline to be interpreted as special. The escape charac- | ||
| 130 | ter can be changed in configuration files or on the command line. | ||
| 131 | |||
| 132 | |||
| 133 | If no pseudo tty has been allocated, the session is transparent and can | ||
| 134 | be used to reliably transfer binary data. On most systems, setting the | ||
| 135 | escape character to ``none'' will also make the session transparent even | ||
| 136 | if a tty is used. | ||
| 137 | |||
| 138 | The session terminates when the command or shell in on the remote machine | ||
| 139 | exists and all X11 and TCP/IP connections have been closed. The exit | ||
| 140 | status of the remote program is returned as the exit status of ssh. | ||
| 141 | |||
| 142 | X11 and TCP forwarding | ||
| 143 | |||
| 144 | If the user is using X11 (the DISPLAY environment variable is set), the | ||
| 145 | connection to the X11 display is automatically forwarded to the remote | ||
| 146 | side in such a way that any X11 programs started from the shell (or com- | ||
| 147 | mand) will go through the encrypted channel, and the connection to the | ||
| 148 | real X server will be made from the local machine. The user should not | ||
| 149 | manually set DISPLAY. Forwarding of X11 connections can be configured on | ||
| 150 | the command line or in configuration files. | ||
| 151 | |||
| 152 | The DISPLAY value set by ssh will point to the server machine, but with a | ||
| 153 | display number greater than zero. This is normal, and happens because | ||
| 154 | ssh creates a ``proxy'' X server on the server machine for forwarding the | ||
| 155 | connections over the encrypted channel. | ||
| 156 | |||
| 157 | ssh will also automatically set up Xauthority data on the server machine. | ||
| 158 | For this purpose, it will generate a random authorization cookie, store | ||
| 159 | it in Xauthority on the server, and verify that any forwarded connections | ||
| 160 | carry this cookie and replace it by the real cookie when the connection | ||
| 161 | is opened. The real authentication cookie is never sent to the server | ||
| 162 | machine (and no cookies are sent in the plain). | ||
| 163 | |||
| 164 | If the user is using an authentication agent, the connection to the agent | ||
| 165 | is automatically forwarded to the remote side unless disabled on command | ||
| 166 | line or in a configuration file. | ||
| 167 | |||
| 168 | Forwarding of arbitrary TCP/IP connections over the secure channel can be | ||
| 169 | specified either on command line or in a configuration file. One possi- | ||
| 170 | ble application of TCP/IP forwarding is a secure connection to an elec- | ||
| 171 | tronic purse; another is going trough firewalls. | ||
| 172 | |||
| 173 | Server authentication | ||
| 174 | |||
| 175 | ssh automatically maintains and checks a database containing identifica- | ||
| 176 | tions for all hosts it has ever been used with. RSA host keys are stored | ||
| 177 | in $HOME/.ssh/known_hosts and DSA host keys are stored in | ||
| 178 | $HOME/.ssh/known_hosts2 in the user's home directory. Additionally, the | ||
| 179 | files /etc/ssh_known_hosts and /etc/ssh_known_hosts2 are automatically | ||
| 180 | checked for known hosts. Any new hosts are automatically added to the | ||
| 181 | user's file. If a host's identification ever changes, ssh warns about | ||
| 182 | this and disables password authentication to prevent a trojan horse from | ||
| 183 | getting the user's password. Another purpose of this mechanism is to | ||
| 184 | prevent man-in-the-middle attacks which could otherwise be used to cir- | ||
| 185 | cumvent the encryption. The StrictHostKeyChecking option (see below) can | ||
| 186 | be used to prevent logins to machines whose host key is not known or has | ||
| 187 | changed. | ||
| 188 | |||
| 189 | OPTIONS | ||
| 190 | -a Disables forwarding of the authentication agent connection. | ||
| 191 | |||
| 192 | -A Enables forwarding of the authentication agent connection. This | ||
| 193 | can also be specified on a per-host basis in a configuration | ||
| 194 | file. | ||
| 195 | |||
| 196 | -c blowfish|3des | ||
| 197 | Selects the cipher to use for encrypting the session. 3des is | ||
| 198 | used by default. It is believed to be secure. 3des (triple-des) | ||
| 199 | is an encrypt-decrypt-encrypt triple with three different keys. | ||
| 200 | It is presumably more secure than the des cipher which is no | ||
| 201 | longer supported in ssh. blowfish is a fast block cipher, it ap- | ||
| 202 | pears very secure and is much faster than 3des. | ||
| 203 | |||
| 204 | -c 3des-cbc,blowfish-cbc,arcfour,cast128-cbc | ||
| 205 | Additionally, for protocol version 2 a comma-separated list of | ||
| 206 | ciphers can be specified in order of preference. Protocol version | ||
| 207 | 2 supports 3DES, Blowfish and CAST128 in CBC mode and Arcfour. | ||
| 208 | |||
| 209 | -e ch|^ch|none | ||
| 210 | Sets the escape character for sessions with a pty (default: `~'). | ||
| 211 | The escape character is only recognized at the beginning of a | ||
| 212 | line. The escape character followed by a dot (`.') closes the | ||
| 213 | connection, followed by control-Z suspends the connection, and | ||
| 214 | followed by itself sends the escape character once. Setting the | ||
| 215 | character to ``none'' disables any escapes and makes the session | ||
| 216 | fully transparent. | ||
| 217 | |||
| 218 | -f Requests ssh to go to background just before command execution. | ||
| 219 | This is useful if ssh is going to ask for passwords or passphras- | ||
| 220 | es, but the user wants it in the background. This implies -n. | ||
| 221 | The recommended way to start X11 programs at a remote site is | ||
| 222 | with something like ssh -f host xterm. | ||
| 223 | |||
| 224 | -g Allows remote hosts to connect to local forwarded ports. | ||
| 225 | |||
| 226 | -i identity_file | ||
| 227 | Selects the file from which the identity (private key) for RSA | ||
| 228 | authentication is read. Default is $HOME/.ssh/identity in the | ||
| 229 | user's home directory. Identity files may also be specified on a | ||
| 230 | per-host basis in the configuration file. It is possible to have | ||
| 231 | multiple -i options (and multiple identities specified in config- | ||
| 232 | uration files). | ||
| 233 | |||
| 234 | -k Disables forwarding of Kerberos tickets and AFS tokens. This may | ||
| 235 | also be specified on a per-host basis in the configuration file. | ||
| 236 | |||
| 237 | -l login_name | ||
| 238 | Specifies the user to log in as on the remote machine. This also | ||
| 239 | may be specified on a per-host basis in the configuration file. | ||
| 240 | |||
| 241 | -n Redirects stdin from /dev/null (actually, prevents reading from | ||
| 242 | stdin). This must be used when ssh is run in the background. A | ||
| 243 | common trick is to use this to run X11 programs on a remote ma- | ||
| 244 | chine. For example, ssh -n shadows.cs.hut.fi emacs & will start | ||
| 245 | an emacs on shadows.cs.hut.fi, and the X11 connection will be au- | ||
| 246 | tomatically forwarded over an encrypted channel. The ssh program | ||
| 247 | will be put in the background. (This does not work if ssh needs | ||
| 248 | to ask for a password or passphrase; see also the -f option.) | ||
| 249 | |||
| 250 | -N Do not execute a remote command. This is usefull if you just | ||
| 251 | want to forward ports (protocol version 2 only). | ||
| 252 | |||
| 253 | -o option | ||
| 254 | Can be used to give options in the format used in the config | ||
| 255 | file. This is useful for specifying options for which there is | ||
| 256 | no separate command-line flag. The option has the same format as | ||
| 257 | a line in the configuration file. | ||
| 258 | |||
| 259 | -p port | ||
| 260 | Port to connect to on the remote host. This can be specified on | ||
| 261 | a per-host basis in the configuration file. | ||
| 262 | |||
| 263 | -P Use a non-privileged port for outgoing connections. This can be | ||
| 264 | used if your firewall does not permit connections from privileged | ||
| 265 | ports. Note that this option turns off RhostsAuthentication and | ||
| 266 | RhostsRSAAuthentication. | ||
| 267 | |||
| 268 | -q Quiet mode. Causes all warning and diagnostic messages to be | ||
| 269 | suppressed. Only fatal errors are displayed. | ||
| 270 | |||
| 271 | -t Force pseudo-tty allocation. This can be used to execute arbi- | ||
| 272 | trary screen-based programs on a remote machine, which can be | ||
| 273 | very useful, e.g., when implementing menu services. | ||
| 274 | |||
| 275 | -T Disable pseudo-tty allocation (protocol version 2 only). | ||
| 276 | |||
| 277 | -v Verbose mode. Causes ssh to print debugging messages about its | ||
| 278 | progress. This is helpful in debugging connection, authentica- | ||
| 279 | tion, and configuration problems. The verbose mode is also used | ||
| 280 | to display skey(1) challenges, if the user entered "s/key" as | ||
| 281 | password. | ||
| 282 | |||
| 283 | -x Disables X11 forwarding. | ||
| 284 | |||
| 285 | -X Enables X11 forwarding. This can also be specified on a per-host | ||
| 286 | basis in a configuration file. | ||
| 287 | |||
| 288 | -C Requests compression of all data (including stdin, stdout, | ||
| 289 | stderr, and data for forwarded X11 and TCP/IP connections). The | ||
| 290 | compression algorithm is the same used by gzip(1), and the | ||
| 291 | ``level'' can be controlled by the CompressionLevel option (see | ||
| 292 | below). Compression is desirable on modem lines and other slow | ||
| 293 | connections, but will only slow down things on fast networks. | ||
| 294 | The default value can be set on a host-by-host basis in the con- | ||
| 295 | figuration files; see the Compress option below. | ||
| 296 | |||
| 297 | -L port:host:hostport | ||
| 298 | Specifies that the given port on the local (client) host is to be | ||
| 299 | forwarded to the given host and port on the remote side. This | ||
| 300 | works by allocating a socket to listen to port on the local side, | ||
| 301 | and whenever a connection is made to this port, the connection is | ||
| 302 | forwarded over the secure channel, and a connection is made to | ||
| 303 | host port hostport from the remote machine. Port forwardings can | ||
| 304 | also be specified in the configuration file. Only root can for- | ||
| 305 | ward privileged ports. IPv6 addresses can be specified with an | ||
| 306 | alternative syntax: port/host/hostport | ||
| 307 | |||
| 308 | -R port:host:hostport | ||
| 309 | Specifies that the given port on the remote (server) host is to | ||
| 310 | be forwarded to the given host and port on the local side. This | ||
| 311 | works by allocating a socket to listen to port on the remote | ||
| 312 | side, and whenever a connection is made to this port, the connec- | ||
| 313 | tion is forwarded over the secure channel, and a connection is | ||
| 314 | made to host port hostport from the local machine. Port forward- | ||
| 315 | ings can also be specified in the configuration file. Privileged | ||
| 316 | ports can be forwarded only when logging in as root on the remote | ||
| 317 | machine. | ||
| 318 | |||
| 319 | -2 Forces ssh to try protocol version 2 only. | ||
| 320 | |||
| 321 | -4 Forces ssh to use IPv4 addresses only. | ||
| 322 | |||
| 323 | -6 Forces ssh to use IPv6 addresses only. | ||
| 324 | |||
| 325 | CONFIGURATION FILES | ||
| 326 | ssh obtains configuration data from the following sources (in this or- | ||
| 327 | der): command line options, user's configuration file | ||
| 328 | ($HOME/.ssh/config), and system-wide configuration file | ||
| 329 | (/etc/ssh_config). For each parameter, the first obtained value will be | ||
| 330 | used. The configuration files contain sections bracketed by ``Host'' | ||
| 331 | specifications, and that section is only applied for hosts that match one | ||
| 332 | of the patterns given in the specification. The matched host name is the | ||
| 333 | one given on the command line. | ||
| 334 | |||
| 335 | Since the first obtained value for each parameter is used, more host-spe- | ||
| 336 | cific declarations should be given near the beginning of the file, and | ||
| 337 | general defaults at the end. | ||
| 338 | |||
| 339 | The configuration file has the following format: | ||
| 340 | |||
| 341 | Empty lines and lines starting with `#' are comments. | ||
| 342 | |||
| 343 | Otherwise a line is of the format ``keyword arguments''. The possible | ||
| 344 | keywords and their meanings are as follows (note that the configuration | ||
| 345 | files are case-sensitive): | ||
| 346 | |||
| 347 | Host Restricts the following declarations (up to the next Host key- | ||
| 348 | word) to be only for those hosts that match one of the patterns | ||
| 349 | given after the keyword. `*' and `?' can be used as wildcards in | ||
| 350 | the patterns. A single `*' as a pattern can be used to provide | ||
| 351 | global defaults for all hosts. The host is the hostname argument | ||
| 352 | given on the command line (i.e., the name is not converted to a | ||
| 353 | canonicalized host name before matching). | ||
| 354 | |||
| 355 | AFSTokenPassing | ||
| 356 | Specifies whether to pass AFS tokens to remote host. The argu- | ||
| 357 | ment to this keyword must be ``yes'' or ``no''. | ||
| 358 | |||
| 359 | BatchMode | ||
| 360 | If set to ``yes'', passphrase/password querying will be disabled. | ||
| 361 | This option is useful in scripts and other batch jobs where you | ||
| 362 | have no user to supply the password. The argument must be | ||
| 363 | ``yes'' or ``no''. | ||
| 364 | |||
| 365 | CheckHostIP | ||
| 366 | If this flag is set to ``yes'', ssh will additionally check the | ||
| 367 | host ip address in the known_hosts file. This allows ssh to de- | ||
| 368 | tect if a host key changed due to DNS spoofing. If the option is | ||
| 369 | set to ``no'', the check will not be executed. | ||
| 370 | |||
| 371 | Cipher Specifies the cipher to use for encrypting the session. Current- | ||
| 372 | ly, ``blowfish'', and ``3des'' are supported. The default is | ||
| 373 | ``3des''. | ||
| 374 | |||
| 375 | Ciphers | ||
| 376 | Specifies the ciphers allowed for protocol version 2 in order of | ||
| 377 | preference. Multiple ciphers must be comma-separated. The de- | ||
| 378 | fault is ``3des-cbc,blowfish-cbc,arcfour,cast128-cbc''. | ||
| 379 | |||
| 380 | Compression | ||
| 381 | Specifies whether to use compression. The argument must be | ||
| 382 | ``yes'' or ``no''. | ||
| 383 | |||
| 384 | CompressionLevel | ||
| 385 | Specifies the compression level to use if compression is enable. | ||
| 386 | The argument must be an integer from 1 (fast) to 9 (slow, best). | ||
| 387 | The default level is 6, which is good for most applications. The | ||
| 388 | meaning of the values is the same as in gzip(1). | ||
| 389 | |||
| 390 | ConnectionAttempts | ||
| 391 | Specifies the number of tries (one per second) to make before | ||
| 392 | falling back to rsh or exiting. The argument must be an integer. | ||
| 393 | This may be useful in scripts if the connection sometimes fails. | ||
| 394 | |||
| 395 | DSAAuthentication | ||
| 396 | Specifies whether to try DSA authentication. The argument to | ||
| 397 | this keyword must be ``yes'' or ``no''. DSA authentication will | ||
| 398 | only be attempted if a DSA identity file exists. Note that this | ||
| 399 | option applies to protocol version 2 only. | ||
| 400 | |||
| 401 | EscapeChar | ||
| 402 | Sets the escape character (default: `~'). The escape character | ||
| 403 | can also be set on the command line. The argument should be a | ||
| 404 | single character, `^' followed by a letter, or ``none'' to dis- | ||
| 405 | able the escape character entirely (making the connection trans- | ||
| 406 | parent for binary data). | ||
| 407 | |||
| 408 | FallBackToRsh | ||
| 409 | Specifies that if connecting via ssh fails due to a connection | ||
| 410 | refused error (there is no sshd(8) listening on the remote host), | ||
| 411 | rsh(1) should automatically be used instead (after a suitable | ||
| 412 | warning about the session being unencrypted). The argument must | ||
| 413 | be ``yes'' or ``no''. | ||
| 414 | |||
| 415 | ForwardAgent | ||
| 416 | Specifies whether the connection to the authentication agent (if | ||
| 417 | any) will be forwarded to the remote machine. The argument must | ||
| 418 | be ``yes'' or ``no''. The default is ``no''. | ||
| 419 | |||
| 420 | ForwardX11 | ||
| 421 | Specifies whether X11 connections will be automatically redirect- | ||
| 422 | ed over the secure channel and DISPLAY set. The argument must be | ||
| 423 | ``yes'' or ``no''. The default is ``no''. | ||
| 424 | |||
| 425 | GatewayPorts | ||
| 426 | Specifies whether remote hosts are allowed to connect to local | ||
| 427 | forwarded ports. The argument must be ``yes'' or ``no''. The de- | ||
| 428 | fault is ``no''. | ||
| 429 | |||
| 430 | GlobalKnownHostsFile | ||
| 431 | Specifies a file to use instead of /etc/ssh_known_hosts. | ||
| 432 | |||
| 433 | HostName | ||
| 434 | Specifies the real host name to log into. This can be used to | ||
| 435 | specify nicknames or abbreviations for hosts. Default is the | ||
| 436 | name given on the command line. Numeric IP addresses are also | ||
| 437 | permitted (both on the command line and in HostName specifica- | ||
| 438 | tions). | ||
| 439 | |||
| 440 | IdentityFile | ||
| 441 | Specifies the file from which the user's RSA authentication iden- | ||
| 442 | tity is read (default $HOME/.ssh/identity in the user's home di- | ||
| 443 | rectory). Additionally, any identities represented by the au- | ||
| 444 | thentication agent will be used for authentication. The file | ||
| 445 | name may use the tilde syntax to refer to a user's home directo- | ||
| 446 | ry. It is possible to have multiple identity files specified in | ||
| 447 | configuration files; all these identities will be tried in se- | ||
| 448 | quence. | ||
| 449 | |||
| 450 | IdentityFile2 | ||
| 451 | Specifies the file from which the user's DSA authentication iden- | ||
| 452 | tity is read (default $HOME/.ssh/id_dsa in the user's home direc- | ||
| 453 | tory). The file name may use the tilde syntax to refer to a us- | ||
| 454 | er's home directory. It is possible to have multiple identity | ||
| 455 | files specified in configuration files; all these identities will | ||
| 456 | be tried in sequence. | ||
| 457 | |||
| 458 | KeepAlive | ||
| 459 | Specifies whether the system should send keepalive messages to | ||
| 460 | the other side. If they are sent, death of the connection or | ||
| 461 | crash of one of the machines will be properly noticed. However, | ||
| 462 | this means that connections will die if the route is down tem- | ||
| 463 | porarily, and some people find it annoying. | ||
| 464 | |||
| 465 | The default is ``yes'' (to send keepalives), and the client will | ||
| 466 | notice if the network goes down or the remote host dies. This is | ||
| 467 | important in scripts, and many users want it too. | ||
| 468 | |||
| 469 | To disable keepalives, the value should be set to ``no'' in both | ||
| 470 | the server and the client configuration files. | ||
| 471 | |||
| 472 | KerberosAuthentication | ||
| 473 | Specifies whether Kerberos authentication will be used. The ar- | ||
| 474 | gument to this keyword must be ``yes'' or ``no''. | ||
| 475 | |||
| 476 | KerberosTgtPassing | ||
| 477 | Specifies whether a Kerberos TGT will be forwarded to the server. | ||
| 478 | This will only work if the Kerberos server is actually an AFS | ||
| 479 | kaserver. The argument to this keyword must be ``yes'' or | ||
| 480 | ``no''. | ||
| 481 | |||
| 482 | LocalForward | ||
| 483 | Specifies that a TCP/IP port on the local machine be forwarded | ||
| 484 | over the secure channel to given host:port from the remote ma- | ||
| 485 | chine. The first argument must be a port number, and the second | ||
| 486 | must be host:port. Multiple forwardings may be specified, and | ||
| 487 | additional forwardings can be given on the command line. Only | ||
| 488 | the superuser can forward privileged ports. | ||
| 489 | |||
| 490 | LogLevel | ||
| 491 | Gives the verbosity level that is used when logging messages from | ||
| 492 | ssh. The possible values are: QUIET, FATAL, ERROR, INFO, VERBOSE | ||
| 493 | and DEBUG. The default is INFO. | ||
| 494 | |||
| 495 | NumberOfPasswordPrompts | ||
| 496 | Specifies the number of password prompts before giving up. The | ||
| 497 | argument to this keyword must be an integer. Default is 3. | ||
| 498 | |||
| 499 | PasswordAuthentication | ||
| 500 | Specifies whether to use password authentication. The argument | ||
| 501 | to this keyword must be ``yes'' or ``no''. Note that this option | ||
| 502 | applies to both protocol version 1 and 2. | ||
| 503 | |||
| 504 | Port Specifies the port number to connect on the remote host. Default | ||
| 505 | is 22. | ||
| 506 | |||
| 507 | Protocol | ||
| 508 | Specifies the protocol versions ssh should support in order of | ||
| 509 | preference. The possible values are ``1'' and ``2''. Multiple | ||
| 510 | versions must be comma-separated. The default is ``1,2''. This | ||
| 511 | means that ssh tries version 1 and falls back to version 2 if | ||
| 512 | version 1 is not available. | ||
| 513 | |||
| 514 | ProxyCommand | ||
| 515 | Specifies the command to use to connect to the server. The com- | ||
| 516 | mand string extends to the end of the line, and is executed with | ||
| 517 | /bin/sh. In the command string, `%h' will be substituted by the | ||
| 518 | host name to connect and `%p' by the port. The command can be | ||
| 519 | basically anything, and should read from its standard input and | ||
| 520 | write to its standard output. It should eventually connect an | ||
| 521 | sshd(8) server running on some machine, or execute sshd -i some- | ||
| 522 | where. Host key management will be done using the HostName of | ||
| 523 | the host being connected (defaulting to the name typed by the us- | ||
| 524 | er). Note that CheckHostIP is not available for connects with a | ||
| 525 | proxy command. | ||
| 526 | |||
| 527 | |||
| 528 | |||
| 529 | |||
| 530 | RemoteForward | ||
| 531 | Specifies that a TCP/IP port on the remote machine be forwarded | ||
| 532 | over the secure channel to given host:port from the local ma- | ||
| 533 | chine. The first argument must be a port number, and the second | ||
| 534 | must be host:port. Multiple forwardings may be specified, and | ||
| 535 | additional forwardings can be given on the command line. Only | ||
| 536 | the superuser can forward privileged ports. | ||
| 537 | |||
| 538 | RhostsAuthentication | ||
| 539 | Specifies whether to try rhosts based authentication. Note that | ||
| 540 | this declaration only affects the client side and has no effect | ||
| 541 | whatsoever on security. Disabling rhosts authentication may re- | ||
| 542 | duce authentication time on slow connections when rhosts authen- | ||
| 543 | tication is not used. Most servers do not permit RhostsAuthenti- | ||
| 544 | cation because it is not secure (see RhostsRSAAuthentication). | ||
| 545 | The argument to this keyword must be ``yes'' or ``no''. | ||
| 546 | |||
| 547 | RhostsRSAAuthentication | ||
| 548 | Specifies whether to try rhosts based authentication with RSA | ||
| 549 | host authentication. This is the primary authentication method | ||
| 550 | for most sites. The argument must be ``yes'' or ``no''. | ||
| 551 | |||
| 552 | RSAAuthentication | ||
| 553 | Specifies whether to try RSA authentication. The argument to | ||
| 554 | this keyword must be ``yes'' or ``no''. RSA authentication will | ||
| 555 | only be attempted if the identity file exists, or an authentica- | ||
| 556 | tion agent is running. Note that this option applies to protocol | ||
| 557 | version 1 only. | ||
| 558 | |||
| 559 | SkeyAuthentication | ||
| 560 | Specifies whether to use skey(1) authentication. The argument to | ||
| 561 | this keyword must be ``yes'' or ``no''. The default is ``no''. | ||
| 562 | |||
| 563 | StrictHostKeyChecking | ||
| 564 | If this flag is set to ``yes'', ssh ssh will never automatically | ||
| 565 | add host keys to the $HOME/.ssh/known_hosts and | ||
| 566 | $HOME/.ssh/known_hosts2 files, and refuses to connect hosts whose | ||
| 567 | host key has changed. This provides maximum protection against | ||
| 568 | trojan horse attacks. However, it can be somewhat annoying if | ||
| 569 | you don't have good /etc/ssh_known_hosts and | ||
| 570 | /etc/ssh_known_hosts2 files installed and frequently connect new | ||
| 571 | hosts. Basically this option forces the user to manually add any | ||
| 572 | new hosts. Normally this option is disabled, and new hosts will | ||
| 573 | automatically be added to the known host files. The host keys of | ||
| 574 | known hosts will be verified automatically in either case. The | ||
| 575 | argument must be ``yes'' or ``no''. | ||
| 576 | |||
| 577 | UsePrivilegedPort | ||
| 578 | Specifies whether to use a privileged port for outgoing connec- | ||
| 579 | tions. The argument must be ``yes'' or ``no''. The default is | ||
| 580 | ``yes''. Note that setting this option to ``no'' turns off | ||
| 581 | RhostsAuthentication and RhostsRSAAuthentication. | ||
| 582 | |||
| 583 | User Specifies the user to log in as. This can be useful if you have | ||
| 584 | a different user name on different machines. This saves the | ||
| 585 | trouble of having to remember to give the user name on the com- | ||
| 586 | mand line. | ||
| 587 | |||
| 588 | UserKnownHostsFile | ||
| 589 | Specifies a file to use instead of $HOME/.ssh/known_hosts. | ||
| 590 | |||
| 591 | UseRsh Specifies that rlogin/rsh should be used for this host. It is | ||
| 592 | possible that the host does not at all support the ssh protocol. | ||
| 593 | This causes ssh to immediately execute rsh(1). All other options | ||
| 594 | (except HostName) are ignored if this has been specified. The | ||
| 595 | argument must be ``yes'' or ``no''. | ||
| 596 | |||
| 597 | XAuthLocation | ||
| 598 | Specifies the location of the xauth(1) program. The default is | ||
| 599 | /usr/X11R6/bin/xauth. | ||
| 600 | |||
| 601 | ENVIRONMENT | ||
| 602 | ssh will normally set the following environment variables: | ||
| 603 | |||
| 604 | DISPLAY | ||
| 605 | The DISPLAY variable indicates the location of the X11 server. | ||
| 606 | It is automatically set by ssh to point to a value of the form | ||
| 607 | ``hostname:n'' where hostname indicates the host where the shell | ||
| 608 | runs, and n is an integer >= 1. ssh uses this special value to | ||
| 609 | forward X11 connections over the secure channel. The user should | ||
| 610 | normally not set DISPLAY explicitly, as that will render the X11 | ||
| 611 | connection insecure (and will require the user to manually copy | ||
| 612 | any required authorization cookies). | ||
| 613 | |||
| 614 | HOME Set to the path of the user's home directory. | ||
| 615 | |||
| 616 | LOGNAME | ||
| 617 | Synonym for USER; set for compatibility with systems that use | ||
| 618 | this variable. | ||
| 619 | |||
| 620 | MAIL Set to point the user's mailbox. | ||
| 621 | |||
| 622 | PATH Set to the default PATH, as specified when compiling ssh. | ||
| 623 | |||
| 624 | SSH_AUTH_SOCK | ||
| 625 | indicates the path of a unix-domain socket used to communicate | ||
| 626 | with the agent. | ||
| 627 | |||
| 628 | SSH_CLIENT | ||
| 629 | Identifies the client end of the connection. The variable con- | ||
| 630 | tains three space-separated values: client ip-address, client | ||
| 631 | port number, and server port number. | ||
| 632 | |||
| 633 | SSH_TTY | ||
| 634 | This is set to the name of the tty (path to the device) associat- | ||
| 635 | ed with the current shell or command. If the current session has | ||
| 636 | no tty, this variable is not set. | ||
| 637 | |||
| 638 | TZ The timezone variable is set to indicate the present timezone if | ||
| 639 | it was set when the daemon was started (e.i., the daemon passes | ||
| 640 | the value on to new connections). | ||
| 641 | |||
| 642 | USER Set to the name of the user logging in. | ||
| 643 | |||
| 644 | Additionally, ssh reads $HOME/.ssh/environment, and adds lines of the | ||
| 645 | format ``VARNAME=value'' to the environment. | ||
| 646 | |||
| 647 | FILES | ||
| 648 | $HOME/.ssh/known_hosts | ||
| 649 | Records host keys for all hosts the user has logged into (that | ||
| 650 | are not in /etc/ssh_known_hosts). See sshd(8). | ||
| 651 | |||
| 652 | $HOME/.ssh/identity, $HOME/.ssh/id_dsa | ||
| 653 | Contains the RSA and the DSA authentication identity of the user. | ||
| 654 | These files contain sensitive data and should be readable by the | ||
| 655 | user but not accessible by others (read/write/execute). Note | ||
| 656 | that ssh ignores a private key file if it is accessible by oth- | ||
| 657 | ers. It is possible to specify a passphrase when generating the | ||
| 658 | key; the passphrase will be used to encrypt the sensitive part of | ||
| 659 | |||
| 660 | this file using 3DES. | ||
| 661 | |||
| 662 | $HOME/.ssh/identity.pub, $HOME/.ssh/id_dsa.pub | ||
| 663 | Contains the public key for authentication (public part of the | ||
| 664 | identity file in human-readable form). The contents of the | ||
| 665 | $HOME/.ssh/identity.pub file should be added to | ||
| 666 | $HOME/.ssh/authorized_keys on all machines where you wish to log | ||
| 667 | in using RSA authentication. The contents of the | ||
| 668 | $HOME/.ssh/id_dsa.pub file should be added to | ||
| 669 | $HOME/.ssh/authorized_keys2 on all machines where you wish to log | ||
| 670 | in using DSA authentication. These files are not sensitive and | ||
| 671 | can (but need not) be readable by anyone. These files are never | ||
| 672 | used automatically and are not necessary; they is only provided | ||
| 673 | for the convenience of the user. | ||
| 674 | |||
| 675 | $HOME/.ssh/config | ||
| 676 | This is the per-user configuration file. The format of this file | ||
| 677 | is described above. This file is used by the ssh client. This | ||
| 678 | file does not usually contain any sensitive information, but the | ||
| 679 | recommended permissions are read/write for the user, and not ac- | ||
| 680 | cessible by others. | ||
| 681 | |||
| 682 | $HOME/.ssh/authorized_keys | ||
| 683 | Lists the RSA keys that can be used for logging in as this user. | ||
| 684 | The format of this file is described in the sshd(8) manual page. | ||
| 685 | In the simplest form the format is the same as the .pub identity | ||
| 686 | files (that is, each line contains the number of bits in modulus, | ||
| 687 | public exponent, modulus, and comment fields, separated by | ||
| 688 | spaces). This file is not highly sensitive, but the recommended | ||
| 689 | permissions are read/write for the user, and not accessible by | ||
| 690 | others. | ||
| 691 | |||
| 692 | $HOME/.ssh/authorized_keys2 | ||
| 693 | Lists the DSA keys that can be used for logging in as this user. | ||
| 694 | This file is not highly sensitive, but the recommended permis- | ||
| 695 | sions are read/write for the user, and not accessible by others. | ||
| 696 | |||
| 697 | /etc/ssh_known_hosts, /etc/ssh_known_hosts2 | ||
| 698 | Systemwide list of known host keys. /etc/ssh_known_hosts con- | ||
| 699 | tains RSA and /etc/ssh_known_hosts2 contains DSA keys. These | ||
| 700 | files should be prepared by the system administrator to contain | ||
| 701 | the public host keys of all machines in the organization. This | ||
| 702 | file should be world-readable. This file contains public keys, | ||
| 703 | one per line, in the following format (fields separated by | ||
| 704 | spaces): system name, number of bits in modulus, public exponent, | ||
| 705 | modulus, and optional comment field. When different names are | ||
| 706 | used for the same machine, all such names should be listed, sepa- | ||
| 707 | rated by commas. The format is described on the sshd(8) manual | ||
| 708 | page. | ||
| 709 | |||
| 710 | The canonical system name (as returned by name servers) is used | ||
| 711 | by sshd(8) to verify the client host when logging in; other names | ||
| 712 | are needed because ssh does not convert the user-supplied name to | ||
| 713 | a canonical name before checking the key, because someone with | ||
| 714 | access to the name servers would then be able to fool host au- | ||
| 715 | thentication. | ||
| 716 | |||
| 717 | /etc/ssh_config | ||
| 718 | Systemwide configuration file. This file provides defaults for | ||
| 719 | those values that are not specified in the user's configuration | ||
| 720 | file, and for those users who do not have a configuration file. | ||
| 721 | This file must be world-readable. | ||
| 722 | |||
| 723 | $HOME/.rhosts | ||
| 724 | This file is used in .rhosts authentication to list the host/user | ||
| 725 | pairs that are permitted to log in. (Note that this file is also | ||
| 726 | used by rlogin and rsh, which makes using this file insecure.) | ||
| 727 | Each line of the file contains a host name (in the canonical form | ||
| 728 | returned by name servers), and then a user name on that host, | ||
| 729 | separated by a space. One some machines this file may need to be | ||
| 730 | world-readable if the user's home directory is on a NFS parti- | ||
| 731 | tion, because sshd(8) reads it as root. Additionally, this file | ||
| 732 | must be owned by the user, and must not have write permissions | ||
| 733 | for anyone else. The recommended permission for most machines is | ||
| 734 | read/write for the user, and not accessible by others. | ||
| 735 | |||
| 736 | Note that by default sshd(8) will be installed so that it re- | ||
| 737 | quires successful RSA host authentication before permitting | ||
| 738 | .rhosts authentication. If your server machine does not have the | ||
| 739 | client's host key in /etc/ssh_known_hosts, you can store it in | ||
| 740 | $HOME/.ssh/known_hosts. The easiest way to do this is to connect | ||
| 741 | back to the client from the server machine using ssh; this will | ||
| 742 | automatically add the host key to $HOME/.ssh/known_hosts. | ||
| 743 | |||
| 744 | $HOME/.shosts | ||
| 745 | This file is used exactly the same way as .rhosts. The purpose | ||
| 746 | for having this file is to be able to use rhosts authentication | ||
| 747 | with ssh without permitting login with rlogin(1) or rsh(1). | ||
| 748 | |||
| 749 | /etc/hosts.equiv | ||
| 750 | This file is used during .rhosts authentication. It contains | ||
| 751 | canonical hosts names, one per line (the full format is described | ||
| 752 | on the sshd(8) manual page). If the client host is found in this | ||
| 753 | file, login is automatically permitted provided client and server | ||
| 754 | user names are the same. Additionally, successful RSA host au- | ||
| 755 | thentication is normally required. This file should only be | ||
| 756 | writable by root. | ||
| 757 | |||
| 758 | /etc/shosts.equiv | ||
| 759 | This file is processed exactly as /etc/hosts.equiv. This file may | ||
| 760 | be useful to permit logins using ssh but not using rsh/rlogin. | ||
| 761 | |||
| 762 | /etc/sshrc | ||
| 763 | Commands in this file are executed by ssh when the user logs in | ||
| 764 | just before the user's shell (or command) is started. See the | ||
| 765 | sshd(8) manual page for more information. | ||
| 766 | |||
| 767 | $HOME/.ssh/rc | ||
| 768 | Commands in this file are executed by ssh when the user logs in | ||
| 769 | just before the user's shell (or command) is started. See the | ||
| 770 | sshd(8) manual page for more information. | ||
| 771 | |||
| 772 | $HOME/.ssh/environment | ||
| 773 | Contains additional definitions for environment variables, see | ||
| 774 | section ENVIRONMENT above. | ||
| 775 | |||
| 776 | libcrypto.so.X.1 | ||
| 777 | A version of this library which includes support for the RSA al- | ||
| 778 | gorithm is required for proper operation. | ||
| 779 | |||
| 780 | AUTHOR | ||
| 781 | OpenSSH is a derivative of the original (free) ssh 1.2.12 release by Tatu | ||
| 782 | Ylonen, but with bugs removed and newer features re-added. Rapidly after | ||
| 783 | the 1.2.12 release, newer versions of the original ssh bore successively | ||
| 784 | more restrictive licenses, and thus demand for a free version was born. | ||
| 785 | |||
| 786 | This version of OpenSSH | ||
| 787 | |||
| 788 | o has all components of a restrictive nature (i.e., patents) directly | ||
| 789 | removed from the source code; any licensed or patented components are | ||
| 790 | |||
| 791 | |||
| 792 | chosen from external libraries. | ||
| 793 | |||
| 794 | o has been updated to support SSH protocol 1.5 and 2, making it compat- | ||
| 795 | ible with all other SSH clients and servers. | ||
| 796 | |||
| 797 | o contains added support for kerberos(8) authentication and ticket | ||
| 798 | passing. | ||
| 799 | |||
| 800 | o supports one-time password authentication with skey(1). | ||
| 801 | |||
| 802 | OpenSSH has been created by Aaron Campbell, Bob Beck, Markus Friedl, | ||
| 803 | Niels Provos, Theo de Raadt, and Dug Song. | ||
| 804 | |||
| 805 | The support for SSH protocol 2 was written by Markus Friedl. | ||
| 806 | |||
| 807 | SEE ALSO | ||
| 808 | rlogin(1), rsh(1), scp(1), ssh-add(1), ssh-agent(1), ssh-keygen(1), | ||
| 809 | telnet(1), sshd(8), | ||
| 810 | |||
| 811 | BSD Experimental September 25, 1999 13 | ||
