]> andersk Git - openssh.git/blame - ssh.1
- (djm) OpenBSD CVS Sync
[openssh.git] / ssh.1
CommitLineData
bf740959 1.\" -*- nroff -*-
2.\"
bf740959 3.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
bf740959 4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
5.\" All rights reserved
6.\"
bcbf86ec 7.\" As far as I am concerned, the code I have written for this software
8.\" can be used freely for any purpose. Any derived versions of this
9.\" software must be clearly marked as such, and if the derived work is
10.\" incompatible with the protocol description in the RFC file, it must be
11.\" called by a name other than "ssh" or "Secure Shell".
12.\"
f3c7c613 13.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved.
14.\" Copyright (c) 1999 Aaron Campbell. All rights reserved.
15.\" Copyright (c) 1999 Theo de Raadt. All rights reserved.
bcbf86ec 16.\"
17.\" Redistribution and use in source and binary forms, with or without
18.\" modification, are permitted provided that the following conditions
19.\" are met:
20.\" 1. Redistributions of source code must retain the above copyright
21.\" notice, this list of conditions and the following disclaimer.
22.\" 2. Redistributions in binary form must reproduce the above copyright
23.\" notice, this list of conditions and the following disclaimer in the
24.\" documentation and/or other materials provided with the distribution.
bf740959 25.\"
bcbf86ec 26.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
27.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
28.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
29.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
30.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
31.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
35.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bf740959 36.\"
d7cf99ff 37.\" $OpenBSD: ssh.1,v 1.213 2005/11/30 11:18:27 jmc Exp $
bf740959 38.Dd September 25, 1999
39.Dt SSH 1
40.Os
41.Sh NAME
42.Nm ssh
2c86906e 43.Nd OpenSSH SSH client (remote login program)
bf740959 44.Sh SYNOPSIS
45.Nm ssh
0e19494c 46.Op Fl 1246AaCfgkMNnqsTtVvXxY
3435f5a6 47.Op Fl b Ar bind_address
d0c832f3 48.Op Fl c Ar cipher_spec
5ddc5eb4 49.Oo Fl D\ \&
50.Sm off
51.Oo Ar bind_address : Oc
52.Ar port
53.Sm on
54.Oc
bf740959 55.Op Fl e Ar escape_char
e591b98a 56.Op Fl F Ar configfile
37c406a8 57.Bk -words
5f4a0c58 58.Op Fl i Ar identity_file
37c406a8 59.Ek
6c7e3b94 60.Oo Fl L\ \&
bf740959 61.Sm off
3867aa0a 62.Oo Ar bind_address : Oc
6c7e3b94 63.Ar port : host : hostport
bf740959 64.Sm on
bf740959 65.Oc
37c406a8 66.Bk -words
5f4a0c58 67.Op Fl l Ar login_name
37c406a8 68.Ek
5f4a0c58 69.Op Fl m Ar mac_spec
f8c6db83 70.Op Fl O Ar ctl_cmd
5f4a0c58 71.Op Fl o Ar option
5f4a0c58 72.Op Fl p Ar port
6c7e3b94 73.Oo Fl R\ \&
bf740959 74.Sm off
3867aa0a 75.Oo Ar bind_address : Oc
6c7e3b94 76.Ar port : host : hostport
bf740959 77.Sm on
bf740959 78.Oc
f8c6db83 79.Op Fl S Ar ctl_path
5f4a0c58 80.Oo Ar user Ns @ Oc Ns Ar hostname
bf740959 81.Op Ar command
f54651ce 82.Sh DESCRIPTION
bf740959 83.Nm
2c86906e 84(SSH client) is a program for logging into a remote machine and for
610cd5c6 85executing commands on a remote machine.
5f4a0c58 86It is intended to replace rlogin and rsh,
87and provide secure encrypted communications between
610cd5c6 88two untrusted hosts over an insecure network.
5f4a0c58 89X11 connections and arbitrary TCP/IP ports
90can also be forwarded over the secure channel.
bf740959 91.Pp
92.Nm
f54651ce 93connects and logs into the specified
5f4a0c58 94.Ar hostname
95(with optional
96.Ar user
97name).
bf740959 98The user must prove
1d1ffb87 99his/her identity to the remote machine using one of several methods
5f4a0c58 100depending on the protocol version used.
1d1ffb87 101.Pp
5f4a0c58 102If
103.Ar command
104is specified,
105.Ar command
106is executed on the remote host instead of a login shell.
1d1ffb87 107.Ss SSH protocol version 1
6f5abc1e 108The first authentication method is the
109.Em rhosts
110or
111.Em hosts.equiv
112method combined with RSA-based host authentication.
113If the machine the user logs in from is listed in
bf740959 114.Pa /etc/hosts.equiv
115or
5f4fdfae 116.Pa /etc/shosts.equiv
bf740959 117on the remote machine, and the user names are
6f5abc1e 118the same on both sides, or if the files
140e3e97 119.Pa ~/.rhosts
bf740959 120or
140e3e97 121.Pa ~/.shosts
6f5abc1e 122exist in the user's home directory on the
123remote machine and contain a line containing the name of the client
bf740959 124machine and the name of the user on that machine, the user is
6f5abc1e 125considered for log in.
126Additionally, if the server can verify the client's
f54651ce 127host key (see
2a8a6488 128.Pa /etc/ssh/ssh_known_hosts
5bbb5681 129and
140e3e97 130.Pa ~/.ssh/known_hosts
bf740959 131in the
132.Sx FILES
5f4a0c58 133section), only then is login permitted.
610cd5c6 134This authentication method closes security holes due to IP
135spoofing, DNS spoofing and routing spoofing.
136[Note to the administrator:
bf740959 137.Pa /etc/hosts.equiv ,
140e3e97 138.Pa ~/.rhosts ,
bf740959 139and the rlogin/rsh protocol in general, are inherently insecure and should be
140disabled if security is desired.]
141.Pp
6f5abc1e 142As a second authentication method,
bf740959 143.Nm
144supports RSA based authentication.
145The scheme is based on public-key cryptography: there are cryptosystems
146where encryption and decryption are done using separate keys, and it
147is not possible to derive the decryption key from the encryption key.
610cd5c6 148RSA is one such system.
f54651ce 149The idea is that each user creates a public/private
610cd5c6 150key pair for authentication purposes.
151The server knows the public key, and only the user knows the private key.
5f4a0c58 152.Pp
f54651ce 153The file
140e3e97 154.Pa ~/.ssh/authorized_keys
5f4a0c58 155lists the public keys that are permitted for logging in.
610cd5c6 156When the user logs in, the
bf740959 157.Nm
158program tells the server which key pair it would like to use for
610cd5c6 159authentication.
5f4a0c58 160The server checks if this key is permitted, and if so,
161sends the user (actually the
bf740959 162.Nm
163program running on behalf of the user) a challenge, a random number,
610cd5c6 164encrypted by the user's public key.
5f4a0c58 165The challenge can only be decrypted using the proper private key.
166The user's client then decrypts the challenge using the private key,
167proving that he/she knows the private key
168but without disclosing it to the server.
bf740959 169.Pp
170.Nm
610cd5c6 171implements the RSA authentication protocol automatically.
172The user creates his/her RSA key pair by running
bf740959 173.Xr ssh-keygen 1 .
f54651ce 174This stores the private key in
140e3e97 175.Pa ~/.ssh/identity
5f4a0c58 176and stores the public key in
140e3e97 177.Pa ~/.ssh/identity.pub
610cd5c6 178in the user's home directory.
179The user should then copy the
bf740959 180.Pa identity.pub
f54651ce 181to
140e3e97 182.Pa ~/.ssh/authorized_keys
f54651ce 183in his/her home directory on the remote machine (the
bf740959 184.Pa authorized_keys
f54651ce 185file corresponds to the conventional
140e3e97 186.Pa ~/.rhosts
bf740959 187file, and has one key
610cd5c6 188per line, though the lines can be very long).
189After this, the user can log in without giving the password.
bf740959 190.Pp
191The most convenient way to use RSA authentication may be with an
610cd5c6 192authentication agent.
193See
bf740959 194.Xr ssh-agent 1
195for more information.
196.Pp
f54651ce 197If other authentication methods fail,
bf740959 198.Nm
610cd5c6 199prompts the user for a password.
200The password is sent to the remote
bf740959 201host for checking; however, since all communications are encrypted,
202the password cannot be seen by someone listening on the network.
1d1ffb87 203.Ss SSH protocol version 2
5f4a0c58 204When a user connects using protocol version 2,
16210ef7 205similar authentication methods are available.
da89cf4d 206Using the default values for
207.Cm PreferredAuthentications ,
29c440a0 208the client will try to authenticate first using the hostbased method;
5f4a0c58 209if this method fails, public key authentication is attempted,
210and finally if this method fails, keyboard-interactive and
29c440a0 211password authentication are tried.
1d1ffb87 212.Pp
213The public key method is similar to RSA authentication described
da89cf4d 214in the previous section and allows the RSA or DSA algorithm to be used:
c0ecc314 215The client uses his private key,
140e3e97 216.Pa ~/.ssh/id_dsa
c0ecc314 217or
140e3e97 218.Pa ~/.ssh/id_rsa ,
1d1ffb87 219to sign the session identifier and sends the result to the server.
220The server checks whether the matching public key is listed in
140e3e97 221.Pa ~/.ssh/authorized_keys
1d1ffb87 222and grants access if both the key is found and the signature is correct.
223The session identifier is derived from a shared Diffie-Hellman value
224and is only known to the client and the server.
225.Pp
5f4a0c58 226If public key authentication fails or is not available, a password
227can be sent encrypted to the remote host to prove the user's identity.
da89cf4d 228.Pp
229Additionally,
230.Nm
231supports hostbased or challenge response authentication.
1d1ffb87 232.Pp
233Protocol 2 provides additional mechanisms for confidentiality
3b9baa7b 234(the traffic is encrypted using AES, 3DES, Blowfish, CAST128 or Arcfour)
235and integrity (hmac-md5, hmac-sha1, hmac-ripemd160).
1d1ffb87 236Note that protocol 1 lacks a strong mechanism for ensuring the
237integrity of the connection.
1d1ffb87 238.Ss Login session and remote execution
bf740959 239When the user's identity has been accepted by the server, the server
240either executes the given command, or logs into the machine and gives
610cd5c6 241the user a normal shell on the remote machine.
242All communication with
bf740959 243the remote command or shell will be automatically encrypted.
244.Pp
245If a pseudo-terminal has been allocated (normal login session), the
df841692 246user may use the escape characters noted below.
bf740959 247.Pp
5f4a0c58 248If no pseudo-tty has been allocated,
249the session is transparent and can be used to reliably transfer binary data.
610cd5c6 250On most systems, setting the escape character to
bf740959 251.Dq none
252will also make the session transparent even if a tty is used.
253.Pp
ce9c0b75 254The session terminates when the command or shell on the remote
e91c60f2 255machine exits and all X11 and TCP/IP connections have been closed.
5f4a0c58 256The exit status of the remote program is returned as the exit status of
bf740959 257.Nm ssh .
df841692 258.Ss Escape Characters
5f4a0c58 259When a pseudo-terminal has been requested,
260.Nm
261supports a number of functions through the use of an escape character.
df841692 262.Pp
263A single tilde character can be sent as
264.Ic ~~
5bef3c35 265or by following the tilde by a character other than those described below.
df841692 266The escape character must always follow a newline to be interpreted as
267special.
268The escape character can be changed in configuration files using the
269.Cm EscapeChar
3730bb22 270configuration directive or on the command line by the
df841692 271.Fl e
272option.
273.Pp
274The supported escapes (assuming the default
275.Ql ~ )
276are:
277.Bl -tag -width Ds
278.It Cm ~.
5f4a0c58 279Disconnect.
df841692 280.It Cm ~^Z
5f4a0c58 281Background
282.Nm ssh .
df841692 283.It Cm ~#
5f4a0c58 284List forwarded connections.
df841692 285.It Cm ~&
5f4a0c58 286Background
287.Nm
288at logout when waiting for forwarded connection / X11 sessions to terminate.
df841692 289.It Cm ~?
5f4a0c58 290Display a list of escape characters.
16a79097 291.It Cm ~B
5f4a0c58 292Send a BREAK to the remote system
293(only useful for SSH protocol version 2 and if the peer supports it).
c53c54c2 294.It Cm ~C
d740ec16 295Open command line.
296Currently this allows the addition of port forwardings using the
c53c54c2 297.Fl L
298and
299.Fl R
d740ec16 300options (see below).
790029d9 301It also allows the cancellation of existing remote port-forwardings
d740ec16 302using
303.Fl KR Ar hostport .
7069a5e2 304Basic help is available, using the
305.Fl h
d740ec16 306option.
df841692 307.It Cm ~R
5f4a0c58 308Request rekeying of the connection
309(only useful for SSH protocol version 2 and if the peer supports it).
df841692 310.El
1d1ffb87 311.Ss X11 and TCP forwarding
6efa3d14 312If the
313.Cm ForwardX11
314variable is set to
315.Dq yes
5f4a0c58 316(or see the description of the
6efa3d14 317.Fl X
318and
319.Fl x
320options described later)
321and the user is using X11 (the
bf740959 322.Ev DISPLAY
323environment variable is set), the connection to the X11 display is
324automatically forwarded to the remote side in such a way that any X11
325programs started from the shell (or command) will go through the
326encrypted channel, and the connection to the real X server will be made
610cd5c6 327from the local machine.
328The user should not manually set
bf740959 329.Ev DISPLAY .
330Forwarding of X11 connections can be
331configured on the command line or in configuration files.
332.Pp
333The
f54651ce 334.Ev DISPLAY
bf740959 335value set by
336.Nm
5f4a0c58 337will point to the server machine, but with a display number greater than zero.
610cd5c6 338This is normal, and happens because
bf740959 339.Nm
340creates a
341.Dq proxy
342X server on the server machine for forwarding the
343connections over the encrypted channel.
344.Pp
345.Nm
346will also automatically set up Xauthority data on the server machine.
347For this purpose, it will generate a random authorization cookie,
348store it in Xauthority on the server, and verify that any forwarded
349connections carry this cookie and replace it by the real cookie when
610cd5c6 350the connection is opened.
351The real authentication cookie is never
bf740959 352sent to the server machine (and no cookies are sent in the plain).
353.Pp
24794905 354If the
355.Cm ForwardAgent
356variable is set to
357.Dq yes
5f4a0c58 358(or see the description of the
24794905 359.Fl A
360and
361.Fl a
a4e5acef 362options described later) and
24794905 363the user is using an authentication agent, the connection to the agent
364is automatically forwarded to the remote side.
bf740959 365.Pp
366Forwarding of arbitrary TCP/IP connections over the secure channel can
491f5f7b 367be specified either on the command line or in a configuration file.
610cd5c6 368One possible application of TCP/IP forwarding is a secure connection to an
e91c60f2 369electronic purse; another is going through firewalls.
1d1ffb87 370.Ss Server authentication
bf740959 371.Nm
1d1ffb87 372automatically maintains and checks a database containing
610cd5c6 373identifications for all hosts it has ever been used with.
f49bc4f7 374Host keys are stored in
140e3e97 375.Pa ~/.ssh/known_hosts
610cd5c6 376in the user's home directory.
f49bc4f7 377Additionally, the file
2a8a6488 378.Pa /etc/ssh/ssh_known_hosts
f49bc4f7 379is automatically checked for known hosts.
610cd5c6 380Any new hosts are automatically added to the user's file.
5f4a0c58 381If a host's identification ever changes,
bf740959 382.Nm
383warns about this and disables password authentication to prevent a
610cd5c6 384trojan horse from getting the user's password.
5f4a0c58 385Another purpose of this mechanism is to prevent man-in-the-middle attacks
386which could otherwise be used to circumvent the encryption.
610cd5c6 387The
bf740959 388.Cm StrictHostKeyChecking
588df31a 389option can be used to prevent logins to machines whose
bf740959 390host key is not known or has changed.
fa08c86b 391.Pp
3a858356 392.Nm
393can be configured to verify host identification using fingerprint resource
394records (SSHFP) published in DNS.
395The
396.Cm VerifyHostKeyDNS
397option can be used to control how DNS lookups are performed.
398SSHFP resource records can be generated using
399.Xr ssh-keygen 1 .
400.Pp
fa08c86b 401The options are as follows:
bf740959 402.Bl -tag -width Ds
5f4a0c58 403.It Fl 1
404Forces
405.Nm
406to try protocol version 1 only.
407.It Fl 2
408Forces
409.Nm
410to try protocol version 2 only.
411.It Fl 4
412Forces
413.Nm
414to use IPv4 addresses only.
415.It Fl 6
416Forces
417.Nm
418to use IPv6 addresses only.
71276795 419.It Fl A
420Enables forwarding of the authentication agent connection.
421This can also be specified on a per-host basis in a configuration file.
07d688d5 422.Pp
a4e5acef 423Agent forwarding should be enabled with caution.
424Users with the ability to bypass file permissions on the remote host
425(for the agent's Unix-domain socket)
426can access the local agent through the forwarded connection.
427An attacker cannot obtain key material from the agent,
07d688d5 428however they can perform operations on the keys that enable them to
429authenticate using the identities loaded into the agent.
5f4a0c58 430.It Fl a
431Disables forwarding of the authentication agent connection.
3435f5a6 432.It Fl b Ar bind_address
143f17e8 433Use
434.Ar bind_address
435on the local machine as the source address
436of the connection.
437Only useful on systems with more than one address.
5f4a0c58 438.It Fl C
439Requests compression of all data (including stdin, stdout, stderr, and
440data for forwarded X11 and TCP/IP connections).
441The compression algorithm is the same used by
442.Xr gzip 1 ,
443and the
444.Dq level
445can be controlled by the
446.Cm CompressionLevel
447option for protocol version 1.
448Compression is desirable on modem lines and other
449slow connections, but will only slow down things on fast networks.
450The default value can be set on a host-by-host basis in the
451configuration files; see the
452.Cm Compression
453option.
3b9baa7b 454.It Fl c Ar cipher_spec
455Selects the cipher specification for encrypting the session.
456.Pp
457Protocol version 1 allows specification of a single cipher.
2915e42b 458The supported values are
3b9baa7b 459.Dq 3des ,
460.Dq blowfish
461and
462.Dq des .
bf740959 463.Ar 3des
464(triple-des) is an encrypt-decrypt-encrypt triple with three different keys.
3b9baa7b 465It is believed to be secure.
bf740959 466.Ar blowfish
5f4a0c58 467is a fast block cipher; it appears very secure and is much faster than
610cd5c6 468.Ar 3des .
29999e54 469.Ar des
470is only supported in the
471.Nm
472client for interoperability with legacy protocol 1 implementations
473that do not support the
474.Ar 3des
a4e5acef 475cipher.
476Its use is strongly discouraged due to cryptographic weaknesses.
3b9baa7b 477The default is
478.Dq 3des .
479.Pp
480For protocol version 2
481.Ar cipher_spec
482is a comma-separated list of ciphers
483listed in order of preference.
484The supported ciphers are
485.Dq 3des-cbc ,
486.Dq aes128-cbc ,
487.Dq aes192-cbc ,
488.Dq aes256-cbc ,
489.Dq aes128-ctr ,
490.Dq aes192-ctr ,
491.Dq aes256-ctr ,
74a66cc8 492.Dq arcfour128 ,
493.Dq arcfour256 ,
3b9baa7b 494.Dq arcfour ,
495.Dq blowfish-cbc ,
496and
497.Dq cast128-cbc .
498The default is
499.Bd -literal
74a66cc8 500 ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,
501 arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,
502 aes192-ctr,aes256-ctr''
3b9baa7b 503.Ed
5ddc5eb4 504.It Fl D Xo
505.Sm off
506.Oo Ar bind_address : Oc
507.Ar port
508.Sm on
509.Xc
5f4a0c58 510Specifies a local
511.Dq dynamic
512application-level port forwarding.
513This works by allocating a socket to listen to
514.Ar port
5ddc5eb4 515on the local side, optionally bound to the specified
516.Ar bind_address .
517Whenever a connection is made to this port, the
5f4a0c58 518connection is forwarded over the secure channel, and the application
519protocol is then used to determine where to connect to from the
520remote machine.
521Currently the SOCKS4 and SOCKS5 protocols are supported, and
522.Nm
523will act as a SOCKS server.
524Only root can forward privileged ports.
525Dynamic port forwardings can also be specified in the configuration file.
5ddc5eb4 526.Pp
527IPv6 addresses can be specified with an alternative syntax:
528.Sm off
529.Xo
530.Op Ar bind_address No /
531.Ar port
532.Xc
533.Sm on
534or by enclosing the address in square brackets.
535Only the superuser can forward privileged ports.
536By default, the local port is bound in accordance with the
537.Cm GatewayPorts
538setting.
539However, an explicit
540.Ar bind_address
541may be used to bind the connection to a specific address.
542The
543.Ar bind_address
544of
545.Dq localhost
546indicates that the listening port be bound for local use only, while an
547empty address or
548.Sq *
549indicates that the port should be available from all interfaces.
5f4a0c58 550.It Fl e Ar ch | ^ch | none
bf740959 551Sets the escape character for sessions with a pty (default:
552.Ql ~ ) .
610cd5c6 553The escape character is only recognized at the beginning of a line.
554The escape character followed by a dot
bf740959 555.Pq Ql \&.
5f4a0c58 556closes the connection;
557followed by control-Z suspends the connection;
558and followed by itself sends the escape character once.
610cd5c6 559Setting the character to
bf740959 560.Dq none
561disables any escapes and makes the session fully transparent.
5f4a0c58 562.It Fl F Ar configfile
563Specifies an alternative per-user configuration file.
564If a configuration file is given on the command line,
565the system-wide configuration file
566.Pq Pa /etc/ssh/ssh_config
567will be ignored.
568The default for the per-user configuration file is
140e3e97 569.Pa ~/.ssh/config .
bf740959 570.It Fl f
571Requests
572.Nm
610cd5c6 573to go to background just before command execution.
574This is useful if
bf740959 575.Nm
576is going to ask for passwords or passphrases, but the user
610cd5c6 577wants it in the background.
f54651ce 578This implies
bf740959 579.Fl n .
580The recommended way to start X11 programs at a remote site is with
581something like
582.Ic ssh -f host xterm .
7b2ea3a1 583.It Fl g
584Allows remote hosts to connect to local forwarded ports.
5f4a0c58 585.It Fl I Ar smartcard_device
586Specifies which smartcard device to use.
587The argument is the device
588.Nm
589should use to communicate with a smartcard used for storing the user's
590private RSA key.
bf740959 591.It Fl i Ar identity_file
cf5a07a8 592Selects a file from which the identity (private key) for
fa08c86b 593RSA or DSA authentication is read.
cf5a07a8 594The default is
140e3e97 595.Pa ~/.ssh/identity
cf5a07a8 596for protocol version 1, and
140e3e97 597.Pa ~/.ssh/id_rsa
cf5a07a8 598and
140e3e97 599.Pa ~/.ssh/id_dsa
cf5a07a8 600for protocol version 2.
610cd5c6 601Identity files may also be specified on
602a per-host basis in the configuration file.
603It is possible to have multiple
bf740959 604.Fl i
605options (and multiple identities specified in
606configuration files).
bf740959 607.It Fl k
f7926e97 608Disables forwarding (delegation) of GSSAPI credentials to the server.
5f4a0c58 609.It Fl L Xo
610.Sm off
3867aa0a 611.Oo Ar bind_address : Oc
5f4a0c58 612.Ar port : host : hostport
613.Sm on
614.Xc
615Specifies that the given port on the local (client) host is to be
616forwarded to the given host and port on the remote side.
617This works by allocating a socket to listen to
618.Ar port
3867aa0a 619on the local side, optionally bound to the specified
620.Ar bind_address .
621Whenever a connection is made to this port, the
5f4a0c58 622connection is forwarded over the secure channel, and a connection is
623made to
624.Ar host
625port
626.Ar hostport
627from the remote machine.
628Port forwardings can also be specified in the configuration file.
5f4a0c58 629IPv6 addresses can be specified with an alternative syntax:
630.Sm off
631.Xo
6d7a9e8f 632.Op Ar bind_address No /
5f4a0c58 633.Ar port No / Ar host No /
3867aa0a 634.Ar hostport
5f4a0c58 635.Xc
636.Sm on
3867aa0a 637or by enclosing the address in square brackets.
638Only the superuser can forward privileged ports.
639By default, the local port is bound in accordance with the
640.Cm GatewayPorts
641setting.
642However, an explicit
643.Ar bind_address
644may be used to bind the connection to a specific address.
645The
646.Ar bind_address
647of
648.Dq localhost
6c7e3b94 649indicates that the listening port be bound for local use only, while an
650empty address or
651.Sq *
3867aa0a 652indicates that the port should be available from all interfaces.
bf740959 653.It Fl l Ar login_name
610cd5c6 654Specifies the user to log in as on the remote machine.
655This also may be specified on a per-host basis in the configuration file.
5e96b616 656.It Fl M
657Places the
658.Nm
659client into
660.Dq master
661mode for connection sharing.
662Refer to the description of
663.Cm ControlMaster
664in
665.Xr ssh_config 5
666for details.
9affc5db 667.It Fl m Ar mac_spec
668Additionally, for protocol version 2 a comma-separated list of MAC
669(message authentication code) algorithms can
670be specified in order of preference.
671See the
672.Cm MACs
673keyword for more information.
5f4a0c58 674.It Fl N
675Do not execute a remote command.
676This is useful for just forwarding ports
677(protocol version 2 only).
bf740959 678.It Fl n
679Redirects stdin from
680.Pa /dev/null
681(actually, prevents reading from stdin).
682This must be used when
683.Nm
610cd5c6 684is run in the background.
685A common trick is to use this to run X11 programs on a remote machine.
686For example,
bf740959 687.Ic ssh -n shadows.cs.hut.fi emacs &
688will start an emacs on shadows.cs.hut.fi, and the X11
689connection will be automatically forwarded over an encrypted channel.
690The
691.Nm
692program will be put in the background.
693(This does not work if
694.Nm
695needs to ask for a password or passphrase; see also the
696.Fl f
697option.)
cf848a5e 698.It Fl O Ar ctl_cmd
699Control an active connection multiplexing master process.
700When the
701.Fl O
702option is specified, the
703.Ar ctl_cmd
704argument is interpreted and passed to the master process.
705Valid commands are:
706.Dq check
707(check that the master process is running) and
708.Dq exit
709(request the master to exit).
bf740959 710.It Fl o Ar option
38539909 711Can be used to give options in the format used in the configuration file.
bf740959 712This is useful for specifying options for which there is no separate
610cd5c6 713command-line flag.
5f4a0c58 714For full details of the options listed below, and their possible values, see
715.Xr ssh_config 5 .
716.Pp
717.Bl -tag -width Ds -offset indent -compact
718.It AddressFamily
719.It BatchMode
720.It BindAddress
721.It ChallengeResponseAuthentication
722.It CheckHostIP
723.It Cipher
724.It Ciphers
725.It ClearAllForwardings
726.It Compression
727.It CompressionLevel
728.It ConnectionAttempts
20b267fb 729.It ConnectTimeout
5e96b616 730.It ControlMaster
731.It ControlPath
5f4a0c58 732.It DynamicForward
5f4a0c58 733.It EscapeChar
734.It ForwardAgent
735.It ForwardX11
d73a67d7 736.It ForwardX11Trusted
5f4a0c58 737.It GatewayPorts
738.It GlobalKnownHostsFile
739.It GSSAPIAuthentication
740.It GSSAPIDelegateCredentials
5c63c2ab 741.It HashKnownHosts
5f4a0c58 742.It Host
743.It HostbasedAuthentication
744.It HostKeyAlgorithms
745.It HostKeyAlias
746.It HostName
747.It IdentityFile
3a065ed0 748.It IdentitiesOnly
396070f8 749.It KbdInteractiveDevices
5f4a0c58 750.It LocalForward
751.It LogLevel
752.It MACs
753.It NoHostAuthenticationForLocalhost
754.It NumberOfPasswordPrompts
755.It PasswordAuthentication
756.It Port
757.It PreferredAuthentications
758.It Protocol
759.It ProxyCommand
760.It PubkeyAuthentication
761.It RemoteForward
762.It RhostsRSAAuthentication
763.It RSAAuthentication
8e99a198 764.It SendEnv
5d8d32a3 765.It ServerAliveInterval
766.It ServerAliveCountMax
5f4a0c58 767.It SmartcardDevice
768.It StrictHostKeyChecking
fd573618 769.It TCPKeepAlive
5f4a0c58 770.It UsePrivilegedPort
771.It User
772.It UserKnownHostsFile
773.It VerifyHostKeyDNS
774.It XAuthLocation
775.El
bf740959 776.It Fl p Ar port
610cd5c6 777Port to connect to on the remote host.
778This can be specified on a
bf740959 779per-host basis in the configuration file.
bf740959 780.It Fl q
610cd5c6 781Quiet mode.
782Causes all warning and diagnostic messages to be suppressed.
5f4a0c58 783.It Fl R Xo
784.Sm off
3867aa0a 785.Oo Ar bind_address : Oc
5f4a0c58 786.Ar port : host : hostport
787.Sm on
788.Xc
789Specifies that the given port on the remote (server) host is to be
790forwarded to the given host and port on the local side.
791This works by allocating a socket to listen to
792.Ar port
793on the remote side, and whenever a connection is made to this port, the
794connection is forwarded over the secure channel, and a connection is
795made to
796.Ar host
797port
798.Ar hostport
799from the local machine.
3867aa0a 800.Pp
5f4a0c58 801Port forwardings can also be specified in the configuration file.
802Privileged ports can be forwarded only when
803logging in as root on the remote machine.
3867aa0a 804IPv6 addresses can be specified by enclosing the address in square braces or
805using an alternative syntax:
3867aa0a 806.Sm off
6c7e3b94 807.Xo
6d7a9e8f 808.Op Ar bind_address No /
6c7e3b94 809.Ar host No / Ar port No /
810.Ar hostport
3867aa0a 811.Xc .
6c7e3b94 812.Sm on
3867aa0a 813.Pp
814By default, the listening socket on the server will be bound to the loopback
815interface only.
816This may be overriden by specifying a
817.Ar bind_address .
6c7e3b94 818An empty
819.Ar bind_address ,
3867aa0a 820or the address
6c7e3b94 821.Ql * ,
3867aa0a 822indicates that the remote socket should listen on all interfaces.
823Specifying a remote
824.Ar bind_address
6c7e3b94 825will only succeed if the server's
826.Cm GatewayPorts
3867aa0a 827option is enabled (see
6c7e3b94 828.Xr sshd_config 5 ) .
f8c6db83 829.It Fl S Ar ctl_path
9affc5db 830Specifies the location of a control socket for connection sharing.
5e96b616 831Refer to the description of
0e19494c 832.Cm ControlPath
833and
5e96b616 834.Cm ControlMaster
835in
836.Xr ssh_config 5
837for details.
ae810de7 838.It Fl s
3cbc677d 839May be used to request invocation of a subsystem on the remote system.
840Subsystems are a feature of the SSH2 protocol which facilitate the use
5f4a0c58 841of SSH as a secure transport for other applications (eg.\&
842.Xr sftp 1 ) .
3cbc677d 843The subsystem is specified as the remote command.
5f4a0c58 844.It Fl T
845Disable pseudo-tty allocation.
bf740959 846.It Fl t
610cd5c6 847Force pseudo-tty allocation.
4fe2af09 848This can be used to execute arbitrary
610cd5c6 849screen-based programs on a remote machine, which can be very useful,
850e.g., when implementing menu services.
8abcdba4 851Multiple
852.Fl t
853options force tty allocation, even if
854.Nm
855has no local tty.
5f4a0c58 856.It Fl V
857Display the version number and exit.
bf740959 858.It Fl v
610cd5c6 859Verbose mode.
860Causes
bf740959 861.Nm
610cd5c6 862to print debugging messages about its progress.
863This is helpful in
bf740959 864debugging connection, authentication, and configuration problems.
8abcdba4 865Multiple
866.Fl v
c825cd79 867options increase the verbosity.
868The maximum is 3.
bf740959 869.It Fl X
870Enables X11 forwarding.
71276795 871This can also be specified on a per-host basis in a configuration file.
07d688d5 872.Pp
a4e5acef 873X11 forwarding should be enabled with caution.
874Users with the ability to bypass file permissions on the remote host
875(for the user's X authorization database)
876can access the local X11 display through the forwarded connection.
877An attacker may then be able to perform activities such as keystroke monitoring.
82966fe8 878.Pp
4469b0cf 879For this reason, X11 forwarding is subjected to X11 SECURITY extension
82966fe8 880restrictions by default.
881Please refer to the
882.Nm
883.Fl Y
884option and the
885.Cm ForwardX11Trusted
886directive in
887.Xr ssh_config 5
888for more information.
5f4a0c58 889.It Fl x
890Disables X11 forwarding.
d73a67d7 891.It Fl Y
892Enables trusted X11 forwarding.
82966fe8 893Trusted X11 forwardings are not subjected to the X11 SECURITY extension
894controls.
bf740959 895.El
896.Sh CONFIGURATION FILES
897.Nm
588df31a 898may additionally obtain configuration data from
899a per-user configuration file and a system-wide configuration file.
900The file format and configuration options are described in
901.Xr ssh_config 5 .
bf740959 902.Sh ENVIRONMENT
903.Nm
904will normally set the following environment variables:
5f4a0c58 905.Bl -tag -width LOGNAME
bf740959 906.It Ev DISPLAY
907The
908.Ev DISPLAY
610cd5c6 909variable indicates the location of the X11 server.
f54651ce 910It is automatically set by
bf740959 911.Nm
912to point to a value of the form
913.Dq hostname:n
914where hostname indicates
5f4a0c58 915the host where the shell runs, and n is an integer \*(Ge 1.
610cd5c6 916.Nm
917uses this special value to forward X11 connections over the secure
918channel.
da89cf4d 919The user should normally not set
920.Ev DISPLAY
921explicitly, as that
bf740959 922will render the X11 connection insecure (and will require the user to
923manually copy any required authorization cookies).
924.It Ev HOME
925Set to the path of the user's home directory.
926.It Ev LOGNAME
927Synonym for
928.Ev USER ;
929set for compatibility with systems that use this variable.
930.It Ev MAIL
ae897d7c 931Set to the path of the user's mailbox.
610cd5c6 932.It Ev PATH
bf740959 933Set to the default
934.Ev PATH ,
935as specified when compiling
936.Nm ssh .
3474b2b4 937.It Ev SSH_ASKPASS
938If
939.Nm
940needs a passphrase, it will read the passphrase from the current
941terminal if it was run from a terminal.
942If
943.Nm
944does not have a terminal associated with it but
945.Ev DISPLAY
946and
947.Ev SSH_ASKPASS
948are set, it will execute the program specified by
949.Ev SSH_ASKPASS
950and open an X11 window to read the passphrase.
951This is particularly useful when calling
952.Nm
953from a
caeffafb 954.Pa .xsession
3474b2b4 955or related script.
956(Note that on some machines it
957may be necessary to redirect the input from
958.Pa /dev/null
959to make this work.)
bf740959 960.It Ev SSH_AUTH_SOCK
ae897d7c 961Identifies the path of a unix-domain socket used to communicate with the
bf740959 962agent.
da0561eb 963.It Ev SSH_CONNECTION
964Identifies the client and server ends of the connection.
610cd5c6 965The variable contains
da0561eb 966four space-separated values: client ip-address, client port number,
967server ip-address and server port number.
8abcdba4 968.It Ev SSH_ORIGINAL_COMMAND
969The variable contains the original command line if a forced command
970is executed.
971It can be used to extract the original arguments.
bf740959 972.It Ev SSH_TTY
973This is set to the name of the tty (path to the device) associated
610cd5c6 974with the current shell or command.
975If the current session has no tty,
bf740959 976this variable is not set.
977.It Ev TZ
d7cf99ff 978The time zone variable is set to indicate the present time zone if it
c345cf9d 979was set when the daemon was started (i.e., the daemon passes the value
bf740959 980on to new connections).
981.It Ev USER
982Set to the name of the user logging in.
983.El
984.Pp
f54651ce 985Additionally,
bf740959 986.Nm
f54651ce 987reads
140e3e97 988.Pa ~/.ssh/environment ,
bf740959 989and adds lines of the format
990.Dq VARNAME=value
6a342527 991to the environment if the file exists and if users are allowed to
992change their environment.
5f4a0c58 993For more information, see the
6a342527 994.Cm PermitUserEnvironment
35453849 995option in
6a342527 996.Xr sshd_config 5 .
bf740959 997.Sh FILES
c8d54615 998.Bl -tag -width Ds
140e3e97 999.It Pa ~/.ssh/known_hosts
ae897d7c 1000Records host keys for all hosts the user has logged into that are not
bf740959 1001in
2a8a6488 1002.Pa /etc/ssh/ssh_known_hosts .
bf740959 1003See
1004.Xr sshd 8 .
140e3e97 1005.It Pa ~/.ssh/identity, ~/.ssh/id_dsa, ~/.ssh/id_rsa
c0ecc314 1006Contains the authentication identity of the user.
1007They are for protocol 1 RSA, protocol 2 DSA, and protocol 2 RSA, respectively.
1d1ffb87 1008These files
1009contain sensitive data and should be readable by the user but not
bf740959 1010accessible by others (read/write/execute).
1011Note that
1012.Nm
1d1ffb87 1013ignores a private key file if it is accessible by others.
bf740959 1014It is possible to specify a passphrase when
1015generating the key; the passphrase will be used to encrypt the
1016sensitive part of this file using 3DES.
140e3e97 1017.It Pa ~/.ssh/identity.pub, ~/.ssh/id_dsa.pub, ~/.ssh/id_rsa.pub
bf740959 1018Contains the public key for authentication (public part of the
610cd5c6 1019identity file in human-readable form).
1d1ffb87 1020The contents of the
140e3e97 1021.Pa ~/.ssh/identity.pub
5f4a0c58 1022file should be added to the file
140e3e97 1023.Pa ~/.ssh/authorized_keys
bf740959 1024on all machines
91789042 1025where the user wishes to log in using protocol version 1 RSA authentication.
1d1ffb87 1026The contents of the
140e3e97 1027.Pa ~/.ssh/id_dsa.pub
c0ecc314 1028and
140e3e97 1029.Pa ~/.ssh/id_rsa.pub
1d1ffb87 1030file should be added to
140e3e97 1031.Pa ~/.ssh/authorized_keys
1d1ffb87 1032on all machines
91789042 1033where the user wishes to log in using protocol version 2 DSA/RSA authentication.
1d1ffb87 1034These files are not
610cd5c6 1035sensitive and can (but need not) be readable by anyone.
1d1ffb87 1036These files are
c44559d2 1037never used automatically and are not necessary; they are only provided for
bf740959 1038the convenience of the user.
140e3e97 1039.It Pa ~/.ssh/config
610cd5c6 1040This is the per-user configuration file.
588df31a 1041The file format and configuration options are described in
1042.Xr ssh_config 5 .
e1520719 1043Because of the potential for abuse, this file must have strict permissions:
1044read/write for the user, and not accessible by others.
140e3e97 1045.It Pa ~/.ssh/authorized_keys
96a7b0cc 1046Lists the public keys (RSA/DSA) that can be used for logging in as this user.
610cd5c6 1047The format of this file is described in the
bf740959 1048.Xr sshd 8
610cd5c6 1049manual page.
5f4a0c58 1050In the simplest form the format is the same as the
1051.Pa .pub
f49bc4f7 1052identity files.
1d1ffb87 1053This file is not highly sensitive, but the recommended
1054permissions are read/write for the user, and not accessible by others.
2a8a6488 1055.It Pa /etc/ssh/ssh_known_hosts
610cd5c6 1056Systemwide list of known host keys.
f49bc4f7 1057This file should be prepared by the
bf740959 1058system administrator to contain the public host keys of all machines in the
610cd5c6 1059organization.
1060This file should be world-readable.
1061This file contains
bf740959 1062public keys, one per line, in the following format (fields separated
f49bc4f7 1063by spaces): system name, public key and optional comment field.
610cd5c6 1064When different names are used
bf740959 1065for the same machine, all such names should be listed, separated by
610cd5c6 1066commas.
5f4a0c58 1067The format is described in the
bf740959 1068.Xr sshd 8
1069manual page.
1070.Pp
1071The canonical system name (as returned by name servers) is used by
1072.Xr sshd 8
1073to verify the client host when logging in; other names are needed because
1074.Nm
1075does not convert the user-supplied name to a canonical name before
1076checking the key, because someone with access to the name servers
1077would then be able to fool host authentication.
2a8a6488 1078.It Pa /etc/ssh/ssh_config
610cd5c6 1079Systemwide configuration file.
588df31a 1080The file format and configuration options are described in
1081.Xr ssh_config 5 .
2a8a6488 1082.It Pa /etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_rsa_key
dd58cb5e 1083These three files contain the private parts of the host keys
1084and are used for
1085.Cm RhostsRSAAuthentication
1086and
1087.Cm HostbasedAuthentication .
d83cbdc3 1088If the protocol version 1
1089.Cm RhostsRSAAuthentication
7203d6bb 1090method is used,
d83cbdc3 1091.Nm
1092must be setuid root, since the host key is readable only by root.
1093For protocol version 2,
1094.Nm
1095uses
1096.Xr ssh-keysign 8
1097to access the host keys for
1098.Cm HostbasedAuthentication .
1099This eliminates the requirement that
1100.Nm
1101be setuid root when that authentication method is used.
1102By default
dd58cb5e 1103.Nm
d83cbdc3 1104is not setuid root.
140e3e97 1105.It Pa ~/.rhosts
bf740959 1106This file is used in
6f5abc1e 1107.Cm RhostsRSAAuthentication
1108and
1109.Cm HostbasedAuthentication
bf740959 1110authentication to list the
610cd5c6 1111host/user pairs that are permitted to log in.
1112(Note that this file is
bf740959 1113also used by rlogin and rsh, which makes using this file insecure.)
1114Each line of the file contains a host name (in the canonical form
1115returned by name servers), and then a user name on that host,
610cd5c6 1116separated by a space.
e91c60f2 1117On some machines this file may need to be
bf740959 1118world-readable if the user's home directory is on a NFS partition,
1119because
1120.Xr sshd 8
610cd5c6 1121reads it as root.
1122Additionally, this file must be owned by the user,
1123and must not have write permissions for anyone else.
1124The recommended
bf740959 1125permission for most machines is read/write for the user, and not
1126accessible by others.
1127.Pp
6f5abc1e 1128Note that
bf740959 1129.Xr sshd 8
6f5abc1e 1130allows authentication only in combination with client host key
1131authentication before permitting log in.
91789042 1132If the server machine does not have the client's host key in
2a8a6488 1133.Pa /etc/ssh/ssh_known_hosts ,
91789042 1134it can be stored in
140e3e97 1135.Pa ~/.ssh/known_hosts .
bf740959 1136The easiest way to do this is to
1137connect back to the client from the server machine using ssh; this
1d1ffb87 1138will automatically add the host key to
140e3e97 1139.Pa ~/.ssh/known_hosts .
1140.It Pa ~/.shosts
bf740959 1141This file is used exactly the same way as
5f4a0c58 1142.Pa .rhosts .
bf740959 1143The purpose for
6f5abc1e 1144having this file is to be able to use
1145.Cm RhostsRSAAuthentication
1146and
1147.Cm HostbasedAuthentication
1148authentication without permitting login with
5f4a0c58 1149.Xr rlogin
bf740959 1150or
1151.Xr rsh 1 .
1152.It Pa /etc/hosts.equiv
1153This file is used during
6f5abc1e 1154.Cm RhostsRSAAuthentication
1155and
1156.Cm HostbasedAuthentication
be193d89 1157authentication.
610cd5c6 1158It contains
5f4a0c58 1159canonical hosts names, one per line (the full format is described in the
bf740959 1160.Xr sshd 8
610cd5c6 1161manual page).
1162If the client host is found in this file, login is
bf740959 1163automatically permitted provided client and server user names are the
610cd5c6 1164same.
6f5abc1e 1165Additionally, successful client host key authentication is required.
610cd5c6 1166This file should only be writable by root.
5f4fdfae 1167.It Pa /etc/shosts.equiv
f54651ce 1168This file is processed exactly as
bf740959 1169.Pa /etc/hosts.equiv .
1170This file may be useful to permit logins using
1171.Nm
1172but not using rsh/rlogin.
2a8a6488 1173.It Pa /etc/ssh/sshrc
bf740959 1174Commands in this file are executed by
1175.Nm
1176when the user logs in just before the user's shell (or command) is started.
1177See the
1178.Xr sshd 8
1179manual page for more information.
140e3e97 1180.It Pa ~/.ssh/rc
bf740959 1181Commands in this file are executed by
1182.Nm
1183when the user logs in just before the user's shell (or command) is
1184started.
f54651ce 1185See the
bf740959 1186.Xr sshd 8
1187manual page for more information.
140e3e97 1188.It Pa ~/.ssh/environment
83b7f649 1189Contains additional definitions for environment variables, see section
1190.Sx ENVIRONMENT
1191above.
b5e300c2 1192.El
16210ef7 1193.Sh DIAGNOSTICS
1194.Nm
1195exits with the exit status of the remote command or with 255
1196if an error occurred.
bf740959 1197.Sh SEE ALSO
5f4a0c58 1198.Xr gzip 1 ,
bf740959 1199.Xr rsh 1 ,
1200.Xr scp 1 ,
61e96248 1201.Xr sftp 1 ,
bf740959 1202.Xr ssh-add 1 ,
1203.Xr ssh-agent 1 ,
1204.Xr ssh-keygen 1 ,
1205.Xr telnet 1 ,
5f4a0c58 1206.Xr hosts.equiv 5 ,
1ae02182 1207.Xr ssh_config 5 ,
b2843ec6 1208.Xr ssh-keysign 8 ,
9afadca8 1209.Xr sshd 8
2cad6cef 1210.Rs
1211.%A T. Ylonen
1212.%A T. Kivinen
1213.%A M. Saarinen
1214.%A T. Rinne
1215.%A S. Lehtinen
1216.%T "SSH Protocol Architecture"
17f5e68a 1217.%N draft-ietf-secsh-architecture-12.txt
1218.%D January 2002
2cad6cef 1219.%O work in progress material
1220.Re
be193d89 1221.Sh AUTHORS
1222OpenSSH is a derivative of the original and free
1223ssh 1.2.12 release by Tatu Ylonen.
1224Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
1225Theo de Raadt and Dug Song
1226removed many bugs, re-added newer features and
1227created OpenSSH.
1228Markus Friedl contributed the support for SSH
1229protocol versions 1.5 and 2.0.
This page took 0.519511 seconds and 5 git commands to generate.