]> andersk Git - openssh.git/blame - sshd.8
- jmc@cvs.openbsd.org 2006/01/12 18:48:48
[openssh.git] / sshd.8
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.\"
6cd6c442 37.\" $OpenBSD: sshd.8,v 1.210 2005/12/21 22:44:26 stevesk Exp $
bf740959 38.Dd September 25, 1999
39.Dt SSHD 8
40.Os
41.Sh NAME
42.Nm sshd
da89cf4d 43.Nd OpenSSH SSH daemon
bf740959 44.Sh SYNOPSIS
45.Nm sshd
6691e41b 46.Bk -words
433e60ac 47.Op Fl 46Ddeiqt
bf740959 48.Op Fl b Ar bits
49.Op Fl f Ar config_file
50.Op Fl g Ar login_grace_time
51.Op Fl h Ar host_key_file
52.Op Fl k Ar key_gen_time
2717fa0f 53.Op Fl o Ar option
bf740959 54.Op Fl p Ar port
c345cf9d 55.Op Fl u Ar len
6691e41b 56.Ek
f54651ce 57.Sh DESCRIPTION
bf740959 58.Nm
2c86906e 59(SSH Daemon) is the daemon program for
bf740959 60.Xr ssh 1 .
3189621b 61Together these programs replace rlogin and rsh, and
bf740959 62provide secure encrypted communications between two untrusted hosts
4fe2af09 63over an insecure network.
64The programs are intended to be as easy to
bf740959 65install and use as possible.
66.Pp
67.Nm
4fe2af09 68is the daemon that listens for connections from clients.
f54651ce 69It is normally started at boot from
bf740959 70.Pa /etc/rc .
71It forks a new
4fe2af09 72daemon for each incoming connection.
73The forked daemons handle
bf740959 74key exchange, encryption, authentication, command execution,
75and data exchange.
1d1ffb87 76This implementation of
77.Nm
78supports both SSH protocol version 1 and 2 simultaneously.
bf740959 79.Nm
6691e41b 80works as follows:
1d1ffb87 81.Ss SSH protocol version 1
4fe2af09 82Each host has a host-specific RSA key
60dacb4b 83(normally 2048 bits) used to identify the host.
4fe2af09 84Additionally, when
bf740959 85the daemon starts, it generates a server RSA key (normally 768 bits).
86This key is normally regenerated every hour if it has been used, and
87is never stored on disk.
88.Pp
6691e41b 89Whenever a client connects, the daemon responds with its public
3189621b 90host and server keys.
4fe2af09 91The client compares the
1d1ffb87 92RSA host key against its own database to verify that it has not changed.
433e60ac 93The client then generates a 256-bit random number.
4fe2af09 94It encrypts this
bf740959 95random number using both the host key and the server key, and sends
4fe2af09 96the encrypted number to the server.
3189621b 97Both sides then use this
bf740959 98random number as a session key which is used to encrypt all further
4fe2af09 99communications in the session.
100The rest of the session is encrypted
3189621b 101using a conventional cipher, currently Blowfish or 3DES, with 3DES
7368a6c8 102being used by default.
4fe2af09 103The client selects the encryption algorithm
bf740959 104to use from those offered by the server.
105.Pp
4fe2af09 106Next, the server and the client enter an authentication dialog.
107The client tries to authenticate itself using
433e60ac 108.Em .rhosts
bf740959 109authentication combined with RSA host
110authentication, RSA challenge-response authentication, or password
111based authentication.
112.Pp
3e6e3da0 113Regardless of the authentication type, the account is checked to
114ensure that it is accessible. An account is not accessible if it is
115locked, listed in
116.Cm DenyUsers
117or its group is listed in
118.Cm DenyGroups
119\&. The definition of a locked account is system dependant. Some platforms
120have their own account database (eg AIX) and some modify the passwd field (
121.Ql \&*LK\&*
e45da4d6 122on Solaris and UnixWare,
3e6e3da0 123.Ql \&*
124on HP-UX, containing
125.Ql Nologin
278f9900 126on Tru64,
127a leading
128.Ql \&*LOCKED\&*
129on FreeBSD and a leading
3e6e3da0 130.Ql \&!!
131on Linux). If there is a requirement to disable password authentication
132for the account while allowing still public-key, then the passwd field
133should be set to something other than these values (eg
134.Ql NP
135or
136.Ql \&*NP\&*
137).
138.Pp
7e276482 139.Nm rshd ,
140.Nm rlogind ,
bf740959 141and
6691e41b 142.Nm rexecd
bf740959 143are disabled (thus completely disabling
7e276482 144.Xr rlogin
bf740959 145and
7e276482 146.Xr rsh
3189621b 147into the machine).
1d1ffb87 148.Ss SSH protocol version 2
c345cf9d 149Version 2 works similarly:
7f19f8bb 150Each host has a host-specific key (RSA or DSA) used to identify the host.
1d1ffb87 151However, when the daemon starts, it does not generate a server key.
152Forward security is provided through a Diffie-Hellman key agreement.
153This key agreement results in a shared session key.
da89cf4d 154.Pp
51c251f0 155The rest of the session is encrypted using a symmetric cipher, currently
433e60ac 156128-bit AES, Blowfish, 3DES, CAST128, Arcfour, 192-bit AES, or 256-bit AES.
1d1ffb87 157The client selects the encryption algorithm
158to use from those offered by the server.
159Additionally, session integrity is provided
d0c832f3 160through a cryptographic message authentication code
1d1ffb87 161(hmac-sha1 or hmac-md5).
162.Pp
163Protocol version 2 provides a public key based
da89cf4d 164user (PubkeyAuthentication) or
165client host (HostbasedAuthentication) authentication method,
166conventional password authentication and challenge response based methods.
1d1ffb87 167.Ss Command execution and data forwarding
bf740959 168If the client successfully authenticates itself, a dialog for
4fe2af09 169preparing the session is entered.
170At this time the client may request
bf740959 171things like allocating a pseudo-tty, forwarding X11 connections,
172forwarding TCP/IP connections, or forwarding the authentication agent
173connection over the secure channel.
174.Pp
175Finally, the client either requests a shell or execution of a command.
4fe2af09 176The sides then enter session mode.
177In this mode, either side may send
bf740959 178data at any time, and such data is forwarded to/from the shell or
179command on the server side, and the user terminal in the client side.
180.Pp
181When the user program terminates and all forwarded X11 and other
182connections have been closed, the server sends command exit status to
183the client, and both sides exit.
184.Pp
185.Nm
433e60ac 186can be configured using command-line options or a configuration file
187(by default
188.Xr sshd_config 5 ) .
4fe2af09 189Command-line options override values specified in the
bf740959 190configuration file.
191.Pp
9d6b7add 192.Nm
193rereads its configuration file when it receives a hangup signal,
409edaba 194.Dv SIGHUP ,
7b7385da 195by executing itself with the name and options it was started with, e.g.,
409edaba 196.Pa /usr/sbin/sshd .
9d6b7add 197.Pp
bf740959 198The options are as follows:
199.Bl -tag -width Ds
433e60ac 200.It Fl 4
201Forces
202.Nm
203to use IPv4 addresses only.
204.It Fl 6
205Forces
206.Nm
207to use IPv6 addresses only.
bf740959 208.It Fl b Ar bits
da89cf4d 209Specifies the number of bits in the ephemeral protocol version 1
210server key (default 768).
433e60ac 211.It Fl D
212When this option is specified,
213.Nm
214will not detach and does not become a daemon.
215This allows easy monitoring of
216.Nm sshd .
bf740959 217.It Fl d
4fe2af09 218Debug mode.
219The server sends verbose debug output to the system
220log, and does not put itself in the background.
221The server also will not fork and will only process one connection.
222This option is only intended for debugging for the server.
6691e41b 223Multiple
224.Fl d
225options increase the debugging level.
94ec8c6b 226Maximum is 3.
da89cf4d 227.It Fl e
228When this option is specified,
229.Nm
230will send the output to the standard error instead of the system log.
bf740959 231.It Fl f Ar configuration_file
4fe2af09 232Specifies the name of the configuration file.
233The default is
2a8a6488 234.Pa /etc/ssh/sshd_config .
bf740959 235.Nm
236refuses to start if there is no configuration file.
237.It Fl g Ar login_grace_time
238Gives the grace time for clients to authenticate themselves (default
3445ca02 239120 seconds).
4fe2af09 240If the client fails to authenticate the user within
241this many seconds, the server disconnects and exits.
242A value of zero indicates no limit.
bf740959 243.It Fl h Ar host_key_file
0f84fe37 244Specifies a file from which a host key is read.
bf740959 245This option must be given if
246.Nm
247is not run as root (as the normal
0f84fe37 248host key files are normally not readable by anyone but root).
249The default is
2a8a6488 250.Pa /etc/ssh/ssh_host_key
0f84fe37 251for protocol version 1, and
2a8a6488 252.Pa /etc/ssh/ssh_host_rsa_key
0f84fe37 253and
2a8a6488 254.Pa /etc/ssh/ssh_host_dsa_key
0f84fe37 255for protocol version 2.
8abcdba4 256It is possible to have multiple host key files for
da89cf4d 257the different protocol versions and host key algorithms.
bf740959 258.It Fl i
259Specifies that
260.Nm
6691e41b 261is being run from
262.Xr inetd 8 .
bf740959 263.Nm
264is normally not run
265from inetd because it needs to generate the server key before it can
4fe2af09 266respond to the client, and this may take tens of seconds.
267Clients would have to wait too long if the key was regenerated every time.
610cd5c6 268However, with small key sizes (e.g., 512) using
bf740959 269.Nm
270from inetd may
271be feasible.
272.It Fl k Ar key_gen_time
da89cf4d 273Specifies how often the ephemeral protocol version 1 server key is
274regenerated (default 3600 seconds, or one hour).
4fe2af09 275The motivation for regenerating the key fairly
433e60ac 276often is that the key is not stored anywhere, and after about an hour
bf740959 277it becomes impossible to recover the key for decrypting intercepted
278communications even if the machine is cracked into or physically
4fe2af09 279seized.
280A value of zero indicates that the key will never be regenerated.
2717fa0f 281.It Fl o Ar option
282Can be used to give options in the format used in the configuration file.
283This is useful for specifying options for which there is no separate
284command-line flag.
433e60ac 285For full details of the options, and their values, see
286.Xr sshd_config 5 .
bf740959 287.It Fl p Ar port
288Specifies the port on which the server listens for connections
289(default 22).
135113a3 290Multiple port options are permitted.
6cd6c442 291Ports specified in the configuration file with the
292.Cm Port
293option are ignored when a command-line port is specified.
294Ports specified using the
295.Cm ListenAddress
296option override command-line ports.
bf740959 297.It Fl q
4fe2af09 298Quiet mode.
299Nothing is sent to the system log.
300Normally the beginning,
bf740959 301authentication, and termination of each connection is logged.
f87f09aa 302.It Fl t
303Test mode.
304Only check the validity of the configuration file and sanity of the keys.
184eed6a 305This is useful for updating
f87f09aa 306.Nm
307reliably as configuration options may change.
c345cf9d 308.It Fl u Ar len
309This option is used to specify the size of the field
310in the
311.Li utmp
312structure that holds the remote host name.
313If the resolved host name is longer than
314.Ar len ,
315the dotted decimal value will be used instead.
316This allows hosts with very long host names that
317overflow this field to still be uniquely identified.
318Specifying
319.Fl u0
320indicates that only dotted decimal addresses
321should be put into the
322.Pa utmp
323file.
e675b851 324.Fl u0
6691e41b 325may also be used to prevent
e675b851 326.Nm
327from making DNS requests unless the authentication
328mechanism or configuration requires it.
329Authentication mechanisms that may require DNS include
e675b851 330.Cm RhostsRSAAuthentication ,
331.Cm HostbasedAuthentication
332and using a
333.Cm from="pattern-list"
334option in a key file.
f464aad8 335Configuration options that require DNS include using a
336USER@HOST pattern in
337.Cm AllowUsers
338or
339.Cm DenyUsers .
bf740959 340.El
341.Sh CONFIGURATION FILE
342.Nm
f54651ce 343reads configuration data from
2a8a6488 344.Pa /etc/ssh/sshd_config
bf740959 345(or the file specified with
346.Fl f
4fe2af09 347on the command line).
588df31a 348The file format and configuration options are described in
349.Xr sshd_config 5 .
bf740959 350.Sh LOGIN PROCESS
351When a user successfully logs in,
352.Nm
353does the following:
354.Bl -enum -offset indent
355.It
356If the login is on a tty, and no command has been specified,
f54651ce 357prints last login time and
bf740959 358.Pa /etc/motd
359(unless prevented in the configuration file or by
140e3e97 360.Pa ~/.hushlogin ;
bf740959 361see the
f54651ce 362.Sx FILES
bf740959 363section).
364.It
365If the login is on a tty, records login time.
366.It
367Checks
368.Pa /etc/nologin ;
369if it exists, prints contents and quits
370(unless root).
371.It
372Changes to run with normal user privileges.
373.It
374Sets up basic environment.
375.It
433e60ac 376Reads the file
140e3e97 377.Pa ~/.ssh/environment ,
433e60ac 378if it exists, and users are allowed to change their environment.
35453849 379See the
6a342527 380.Cm PermitUserEnvironment
35453849 381option in
6a342527 382.Xr sshd_config 5 .
bf740959 383.It
384Changes to user's home directory.
385.It
386If
140e3e97 387.Pa ~/.ssh/rc
bf740959 388exists, runs it; else if
af98ced9 389.Pa /etc/ssh/sshrc
bf740959 390exists, runs
4fe2af09 391it; otherwise runs xauth.
392The
bf740959 393.Dq rc
394files are given the X11
395authentication protocol and cookie in standard input.
396.It
397Runs user's shell or command.
398.El
399.Sh AUTHORIZED_KEYS FILE FORMAT
140e3e97 400.Pa ~/.ssh/authorized_keys
96a7b0cc 401is the default file that lists the public keys that are
402permitted for RSA authentication in protocol version 1
403and for public key authentication (PubkeyAuthentication)
da89cf4d 404in protocol version 2.
96a7b0cc 405.Cm AuthorizedKeysFile
c8445989 406may be used to specify an alternative file.
8abcdba4 407.Pp
4fe2af09 408Each line of the file contains one
bf740959 409key (empty lines and lines starting with a
410.Ql #
411are ignored as
4fe2af09 412comments).
8abcdba4 413Each RSA public key consists of the following fields, separated by
4fe2af09 414spaces: options, bits, exponent, modulus, comment.
8abcdba4 415Each protocol version 2 public key consists of:
416options, keytype, base64 encoded key, comment.
755c4339 417The options field
418is optional; its presence is determined by whether the line starts
419with a number or not (the options field never starts with a number).
8abcdba4 420The bits, exponent, modulus and comment fields give the RSA key for
421protocol version 1; the
bf740959 422comment field is not used for anything (but may be convenient for the
423user to identify the key).
8abcdba4 424For protocol version 2 the keytype is
425.Dq ssh-dss
426or
427.Dq ssh-rsa .
bf740959 428.Pp
429Note that lines in this file are usually several hundred bytes long
ea067773 430(because of the size of the public key encoding) up to a limit of
4318 kilobytes, which permits DSA keys up to 8 kilobits and RSA
432keys up to 16 kilobits.
4fe2af09 433You don't want to type them in; instead, copy the
c0ecc314 434.Pa identity.pub ,
8abcdba4 435.Pa id_dsa.pub
c0ecc314 436or the
437.Pa id_rsa.pub
bf740959 438file and edit it.
439.Pp
3bc822df 440.Nm
441enforces a minimum RSA key modulus size for protocol 1
442and protocol 2 keys of 768 bits.
443.Pp
c345cf9d 444The options (if present) consist of comma-separated option
4fe2af09 445specifications.
446No spaces are permitted, except within double quotes.
54bf768d 447The following option specifications are supported (note
448that option keywords are case-insensitive):
bf740959 449.Bl -tag -width Ds
450.It Cm from="pattern-list"
755c4339 451Specifies that in addition to public key authentication, the canonical name
bf740959 452of the remote host must be present in the comma-separated list of
4fe2af09 453patterns
09dc8896 454.Pf ( Ql \&*
4fe2af09 455and
9a26a6e2 456.Ql \&?
4fe2af09 457serve as wildcards).
458The list may also contain
459patterns negated by prefixing them with
9a26a6e2 460.Ql \&! ;
4fe2af09 461if the canonical host name matches a negated pattern, the key is not accepted.
462The purpose
755c4339 463of this option is to optionally increase security: public key authentication
bf740959 464by itself does not trust the network or name servers or anything (but
465the key); however, if somebody somehow steals the key, the key
4fe2af09 466permits an intruder to log in from anywhere in the world.
467This additional option makes using a stolen key more difficult (name
bf740959 468servers and/or routers would have to be compromised in addition to
469just the key).
470.It Cm command="command"
471Specifies that the command is executed whenever this key is used for
4fe2af09 472authentication.
473The command supplied by the user (if any) is ignored.
9658ecbc 474The command is run on a pty if the client requests a pty;
4fe2af09 475otherwise it is run without a tty.
6691e41b 476If an 8-bit clean channel is required,
91789042 477one must not request a pty or should specify
61e96248 478.Cm no-pty .
4fe2af09 479A quote may be included in the command by quoting it with a backslash.
480This option might be useful
755c4339 481to restrict certain public keys to perform just a specific operation.
4fe2af09 482An example might be a key that permits remote backups but nothing else.
d0c832f3 483Note that the client may specify TCP/IP and/or X11
484forwarding unless they are explicitly prohibited.
4cdbc654 485Note that this option applies to shell, command or subsystem execution.
bf740959 486.It Cm environment="NAME=value"
487Specifies that the string is to be added to the environment when
4fe2af09 488logging in using this key.
489Environment variables set this way
490override other default environment values.
491Multiple options of this type are permitted.
35453849 492Environment processing is disabled by default and is
493controlled via the
494.Cm PermitUserEnvironment
495option.
2548961d 496This option is automatically disabled if
497.Cm UseLogin
498is enabled.
bf740959 499.It Cm no-port-forwarding
500Forbids TCP/IP forwarding when this key is used for authentication.
4fe2af09 501Any port forward requests by the client will return an error.
502This might be used, e.g., in connection with the
bf740959 503.Cm command
504option.
505.It Cm no-X11-forwarding
506Forbids X11 forwarding when this key is used for authentication.
507Any X11 forward requests by the client will return an error.
508.It Cm no-agent-forwarding
509Forbids authentication agent forwarding when this key is used for
510authentication.
511.It Cm no-pty
512Prevents tty allocation (a request to allocate a pty will fail).
dc504afd 513.It Cm permitopen="host:port"
3730bb22 514Limit local
dc504afd 515.Li ``ssh -L''
b2ae83b8 516port forwarding such that it may only connect to the specified host and
ed787d14 517port.
518IPv6 addresses can be specified with an alternative syntax:
433e60ac 519.Ar host Ns / Ns Ar port .
ed787d14 520Multiple
dc504afd 521.Cm permitopen
3cbc677d 522options may be applied separated by commas.
523No pattern matching is performed on the specified hostnames,
524they must be literal domains or addresses.
d20f3c9e 525.It Cm tunnel="n"
526Force a
527.Xr tun 4
528device on the server.
529Without this option, the next available device will be used if
530the client requests a tunnel.
bf740959 531.El
532.Ss Examples
433e60ac 5331024 33 12121...312314325 ylo@foo.bar
bf740959 534.Pp
433e60ac 535from="*.niksula.hut.fi,!pc.niksula.hut.fi" 1024 35 23...2334 ylo@niksula
bf740959 536.Pp
433e60ac 537command="dump /home",no-pty,no-port-forwarding 1024 33 23...2323 backup.hut.fi
dc504afd 538.Pp
433e60ac 539permitopen="10.2.1.55:80",permitopen="10.2.1.56:25" 1024 33 23...2323
d20f3c9e 540.Pp
541tunnel="0",command="sh /etc/netstart tun0" ssh-rsa AAAA...== reyk@openbsd.org
bf740959 542.Sh SSH_KNOWN_HOSTS FILE FORMAT
f54651ce 543The
6691e41b 544.Pa /etc/ssh/ssh_known_hosts
f54651ce 545and
140e3e97 546.Pa ~/.ssh/known_hosts
4fe2af09 547files contain host public keys for all known hosts.
548The global file should
549be prepared by the administrator (optional), and the per-user file is
c345cf9d 550maintained automatically: whenever the user connects from an unknown host
4fe2af09 551its key is added to the per-user file.
bf740959 552.Pp
553Each line in these files contains the following fields: hostnames,
4fe2af09 554bits, exponent, modulus, comment.
555The fields are separated by spaces.
bf740959 556.Pp
09dc8896 557Hostnames is a comma-separated list of patterns
3cbc677d 558.Pf ( Ql \&*
559and
560.Ql \&?
9a26a6e2 561act as
bf740959 562wildcards); each pattern in turn is matched against the canonical host
563name (when authenticating a client) or against the user-supplied
4fe2af09 564name (when authenticating a server).
565A pattern may also be preceded by
9a26a6e2 566.Ql \&!
bf740959 567to indicate negation: if the host name matches a negated
568pattern, it is not accepted (by that line) even if it matched another
569pattern on the line.
570.Pp
5c63c2ab 571Alternately, hostnames may be stored in a hashed form which hides host names
c79ae9fd 572and addresses should the file's contents be disclosed.
573Hashed hostnames start with a
574.Ql |
5c63c2ab 575character.
576Only one hashed hostname may appear on a single line and none of the above
577negation or wildcard operators may be applied.
578.Pp
1d1ffb87 579Bits, exponent, and modulus are taken directly from the RSA host key; they
bf740959 580can be obtained, e.g., from
2a8a6488 581.Pa /etc/ssh/ssh_host_key.pub .
bf740959 582The optional comment field continues to the end of the line, and is not used.
583.Pp
584Lines starting with
585.Ql #
586and empty lines are ignored as comments.
587.Pp
588When performing host authentication, authentication is accepted if any
4fe2af09 589matching line has the proper key.
590It is thus permissible (but not
bf740959 591recommended) to have several lines or different host keys for the same
4fe2af09 592names.
593This will inevitably happen when short forms of host names
594from different domains are put in the file.
595It is possible
bf740959 596that the files contain conflicting information; authentication is
597accepted if valid information can be found from either file.
598.Pp
599Note that the lines in these files are typically hundreds of characters
600long, and you definitely don't want to type in the host keys by hand.
601Rather, generate them by a script
f54651ce 602or by taking
2a8a6488 603.Pa /etc/ssh/ssh_host_key.pub
bf740959 604and adding the host names at the front.
605.Ss Examples
da89cf4d 606.Bd -literal
433e60ac 607closenet,...,130.233.208.41 1024 37 159...93 closenet.hut.fi
da89cf4d 608cvs.openbsd.org,199.185.137.3 ssh-rsa AAAA1234.....=
609.Ed
5c63c2ab 610.Bd -literal
611# A hashed hostname
612|1|JfKTdBh7rNbXkVAQCRp4OQoPfmI=|USECr3SWf1JUPsms5AqfD5QfxkM= ssh-rsa
613AAAA1234.....=
614.Ed
bf740959 615.Sh FILES
616.Bl -tag -width Ds
2a8a6488 617.It Pa /etc/ssh/sshd_config
bf740959 618Contains configuration data for
619.Nm sshd .
588df31a 620The file format and configuration options are described in
621.Xr sshd_config 5 .
2a8a6488 622.It Pa /etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_rsa_key
da89cf4d 623These three files contain the private parts of the host keys.
b8dc87d3 624These files should only be owned by root, readable only by root, and not
bf740959 625accessible to others.
626Note that
627.Nm
628does not start if this file is group/world-accessible.
2a8a6488 629.It Pa /etc/ssh/ssh_host_key.pub, /etc/ssh/ssh_host_dsa_key.pub, /etc/ssh/ssh_host_rsa_key.pub
da89cf4d 630These three files contain the public parts of the host keys.
b8dc87d3 631These files should be world-readable but writable only by
4fe2af09 632root.
b8dc87d3 633Their contents should match the respective private parts.
634These files are not
635really used for anything; they are provided for the convenience of
636the user so their contents can be copied to known hosts files.
637These files are created using
bf740959 638.Xr ssh-keygen 1 .
e2432638 639.It Pa /etc/moduli
c523303b 640Contains Diffie-Hellman groups used for the "Diffie-Hellman Group Exchange".
f1dcc34e 641The file format is described in
642.Xr moduli 5 .
75653d3e 643.It Pa /var/empty
644.Xr chroot 2
645directory used by
646.Nm
647during privilege separation in the pre-authentication phase.
648The directory should not contain any files and must be owned by root
649and not group or world-writable.
5f4fdfae 650.It Pa /var/run/sshd.pid
bf740959 651Contains the process ID of the
652.Nm
653listening for connections (if there are several daemons running
baa08b92 654concurrently for different ports, this contains the process ID of the one
4fe2af09 655started last).
c345cf9d 656The content of this file is not sensitive; it can be world-readable.
140e3e97 657.It Pa ~/.ssh/authorized_keys
da89cf4d 658Lists the public keys (RSA or DSA) that can be used to log into the user's account.
1d1ffb87 659This file must be readable by root (which may on some machines imply
660it being world-readable if the user's home directory resides on an NFS
661volume).
662It is recommended that it not be accessible by others.
663The format of this file is described above.
664Users will place the contents of their
96a7b0cc 665.Pa identity.pub ,
1d1ffb87 666.Pa id_dsa.pub
c0ecc314 667and/or
668.Pa id_rsa.pub
1d1ffb87 669files into this file, as described in
670.Xr ssh-keygen 1 .
140e3e97 671.It Pa "/etc/ssh/ssh_known_hosts", "~/.ssh/known_hosts"
6a17f9c2 672These files are consulted when using rhosts with RSA host
f49bc4f7 673authentication or protocol version 2 hostbased authentication
674to check the public key of the host.
4fe2af09 675The key must be listed in one of these files to be accepted.
5bbb5681 676The client uses the same files
e91c60f2 677to verify that it is connecting to the correct remote host.
4fe2af09 678These files should be writable only by root/the owner.
2a8a6488 679.Pa /etc/ssh/ssh_known_hosts
bf740959 680should be world-readable, and
140e3e97 681.Pa ~/.ssh/known_hosts
6691e41b 682can, but need not be, world-readable.
a333272d 683.It Pa /etc/motd
684See
685.Xr motd 5 .
140e3e97 686.It Pa ~/.hushlogin
a333272d 687This file is used to suppress printing the last login time and
688.Pa /etc/motd ,
689if
690.Cm PrintLastLog
691and
692.Cm PrintMotd ,
693respectively,
694are enabled.
695It does not suppress printing of the banner specified by
696.Cm Banner .
bf740959 697.It Pa /etc/nologin
f54651ce 698If this file exists,
bf740959 699.Nm
4fe2af09 700refuses to let anyone except root log in.
701The contents of the file
bf740959 702are displayed to anyone trying to log in, and non-root connections are
4fe2af09 703refused.
704The file should be world-readable.
bf740959 705.It Pa /etc/hosts.allow, /etc/hosts.deny
5b263aae 706Access controls that should be enforced by tcp-wrappers are defined here.
707Further details are described in
bf740959 708.Xr hosts_access 5 .
140e3e97 709.It Pa ~/.rhosts
6f5abc1e 710This file is used during
711.Cm RhostsRSAAuthentication
712and
713.Cm HostbasedAuthentication
714and contains host-username pairs, separated by a space, one per
4fe2af09 715line.
716The given user on the corresponding host is permitted to log in
6691e41b 717without a password.
4fe2af09 718The same file is used by rlogind and rshd.
bf740959 719The file must
720be writable only by the user; it is recommended that it not be
721accessible by others.
722.Pp
433e60ac 723It is also possible to use netgroups in the file.
4fe2af09 724Either host or user
bf740959 725name may be of the form +@groupname to specify all hosts or all users
726in the group.
140e3e97 727.It Pa ~/.shosts
bf740959 728For ssh,
729this file is exactly the same as for
730.Pa .rhosts .
731However, this file is
732not used by rlogin and rshd, so using this permits access using SSH only.
c345cf9d 733.It Pa /etc/hosts.equiv
bf740959 734This file is used during
6f5abc1e 735.Cm RhostsRSAAuthentication
736and
737.Cm HostbasedAuthentication
4fe2af09 738authentication.
739In the simplest form, this file contains host names, one per line.
740Users on
bf740959 741those hosts are permitted to log in without a password, provided they
4fe2af09 742have the same user name on both machines.
743The host name may also be
bf740959 744followed by a user name; such users are permitted to log in as
745.Em any
4fe2af09 746user on this machine (except root).
747Additionally, the syntax
bf740959 748.Dq +@group
4fe2af09 749can be used to specify netgroups.
750Negated entries start with
bf740959 751.Ql \&- .
752.Pp
753If the client host/user is successfully matched in this file, login is
754automatically permitted provided the client and server user names are the
4fe2af09 755same.
6f5abc1e 756Additionally, successful client host key authentication is required.
4fe2af09 757This file must be writable only by root; it is recommended
bf740959 758that it be world-readable.
759.Pp
760.Sy "Warning: It is almost never a good idea to use user names in"
761.Pa hosts.equiv .
762Beware that it really means that the named user(s) can log in as
763.Em anybody ,
764which includes bin, daemon, adm, and other accounts that own critical
4fe2af09 765binaries and directories.
766Using a user name practically grants the user root access.
767The only valid use for user names that I can think
bf740959 768of is in negative entries.
769.Pp
770Note that this warning also applies to rsh/rlogin.
5f4fdfae 771.It Pa /etc/shosts.equiv
bf740959 772This is processed exactly as
773.Pa /etc/hosts.equiv .
774However, this file may be useful in environments that want to run both
775rsh/rlogin and ssh.
140e3e97 776.It Pa ~/.ssh/environment
4fe2af09 777This file is read into the environment at login (if it exists).
778It can only contain empty lines, comment lines (that start with
bf740959 779.Ql # ) ,
4fe2af09 780and assignment lines of the form name=value.
781The file should be writable
bf740959 782only by the user; it need not be readable by anyone else.
35453849 783Environment processing is disabled by default and is
784controlled via the
785.Cm PermitUserEnvironment
786option.
140e3e97 787.It Pa ~/.ssh/rc
6691e41b 788If this file exists, it is run with
789.Pa /bin/sh
790after reading the
4fe2af09 791environment files but before starting the user's shell or command.
d4c6ddff 792It must not produce any output on stdout; stderr must be used
793instead.
794If X11 forwarding is in use, it will receive the "proto cookie" pair in
795its standard input (and
bf740959 796.Ev DISPLAY
d4c6ddff 797in its environment).
798The script must call
bf740959 799.Xr xauth 1
d4c6ddff 800because
801.Nm
802will not run xauth automatically to add X11 cookies.
bf740959 803.Pp
804The primary purpose of this file is to run any initialization routines
805which may be needed before the user's home directory becomes
806accessible; AFS is a particular example of such an environment.
807.Pp
808This file will probably contain some initialization code followed by
da89cf4d 809something similar to:
810.Bd -literal
d4c6ddff 811if read proto cookie && [ -n "$DISPLAY" ]; then
812 if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
813 # X11UseLocalhost=yes
cb11b555 814 echo add unix:`echo $DISPLAY |
d4c6ddff 815 cut -c11-` $proto $cookie
816 else
817 # X11UseLocalhost=no
cb11b555 818 echo add $DISPLAY $proto $cookie
819 fi | xauth -q -
d4c6ddff 820fi
da89cf4d 821.Ed
bf740959 822.Pp
823If this file does not exist,
2a8a6488 824.Pa /etc/ssh/sshrc
bf740959 825is run, and if that
d4c6ddff 826does not exist either, xauth is used to add the cookie.
bf740959 827.Pp
828This file should be writable only by the user, and need not be
829readable by anyone else.
2a8a6488 830.It Pa /etc/ssh/sshrc
bf740959 831Like
140e3e97 832.Pa ~/.ssh/rc .
bf740959 833This can be used to specify
4fe2af09 834machine-specific login-time initializations globally.
835This file should be writable only by root, and should be world-readable.
089fbbd2 836.El
bf740959 837.Sh SEE ALSO
bf740959 838.Xr scp 1 ,
61e96248 839.Xr sftp 1 ,
bf740959 840.Xr ssh 1 ,
841.Xr ssh-add 1 ,
842.Xr ssh-agent 1 ,
843.Xr ssh-keygen 1 ,
433e60ac 844.Xr chroot 2 ,
845.Xr hosts_access 5 ,
248bad82 846.Xr login.conf 5 ,
847.Xr moduli 5 ,
588df31a 848.Xr sshd_config 5 ,
433e60ac 849.Xr inetd 8 ,
a5a2da3b 850.Xr sftp-server 8
2cad6cef 851.Rs
852.%A T. Ylonen
853.%A T. Kivinen
854.%A M. Saarinen
855.%A T. Rinne
856.%A S. Lehtinen
857.%T "SSH Protocol Architecture"
17f5e68a 858.%N draft-ietf-secsh-architecture-12.txt
859.%D January 2002
2cad6cef 860.%O work in progress material
861.Re
da89cf4d 862.Rs
863.%A M. Friedl
864.%A N. Provos
865.%A W. A. Simpson
866.%T "Diffie-Hellman Group Exchange for the SSH Transport Layer Protocol"
17f5e68a 867.%N draft-ietf-secsh-dh-group-exchange-02.txt
868.%D January 2002
da89cf4d 869.%O work in progress material
870.Re
be193d89 871.Sh AUTHORS
872OpenSSH is a derivative of the original and free
873ssh 1.2.12 release by Tatu Ylonen.
874Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
875Theo de Raadt and Dug Song
876removed many bugs, re-added newer features and
877created OpenSSH.
878Markus Friedl contributed the support for SSH
879protocol versions 1.5 and 2.0.
880Niels Provos and Markus Friedl contributed support
881for privilege separation.
This page took 1.172294 seconds and 5 git commands to generate.