]> andersk Git - openssh.git/blame - sshd.8
- (djm) Fix ssh2 hang on background processes at logout.
[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.\"
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.
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.\"
37.Dd September 25, 1999
38.Dt SSHD 8
39.Os
40.Sh NAME
41.Nm sshd
42.Nd secure shell daemon
43.Sh SYNOPSIS
44.Nm sshd
48e671d5 45.Op Fl diqQ46
bf740959 46.Op Fl b Ar bits
47.Op Fl f Ar config_file
48.Op Fl g Ar login_grace_time
49.Op Fl h Ar host_key_file
50.Op Fl k Ar key_gen_time
51.Op Fl p Ar port
c345cf9d 52.Op Fl u Ar len
5260325f 53.Op Fl V Ar client_protocol_id
f54651ce 54.Sh DESCRIPTION
bf740959 55.Nm
f54651ce 56(Secure Shell Daemon) is the daemon program for
bf740959 57.Xr ssh 1 .
3189621b 58Together these programs replace rlogin and rsh, and
bf740959 59provide secure encrypted communications between two untrusted hosts
4fe2af09 60over an insecure network.
61The programs are intended to be as easy to
bf740959 62install and use as possible.
63.Pp
64.Nm
4fe2af09 65is the daemon that listens for connections from clients.
f54651ce 66It is normally started at boot from
bf740959 67.Pa /etc/rc .
68It forks a new
4fe2af09 69daemon for each incoming connection.
70The forked daemons handle
bf740959 71key exchange, encryption, authentication, command execution,
72and data exchange.
1d1ffb87 73This implementation of
74.Nm
75supports both SSH protocol version 1 and 2 simultaneously.
bf740959 76.Nm
4fe2af09 77works as follows.
1d1ffb87 78.Pp
79.Ss SSH protocol version 1
80.Pp
4fe2af09 81Each host has a host-specific RSA key
82(normally 1024 bits) used to identify the host.
83Additionally, when
bf740959 84the daemon starts, it generates a server RSA key (normally 768 bits).
85This key is normally regenerated every hour if it has been used, and
86is never stored on disk.
87.Pp
3189621b 88Whenever a client connects the daemon responds with its public
89host and server keys.
4fe2af09 90The client compares the
1d1ffb87 91RSA host key against its own database to verify that it has not changed.
4fe2af09 92The client then generates a 256 bit random number.
93It encrypts this
bf740959 94random number using both the host key and the server key, and sends
4fe2af09 95the encrypted number to the server.
3189621b 96Both sides then use this
bf740959 97random number as a session key which is used to encrypt all further
4fe2af09 98communications in the session.
99The rest of the session is encrypted
3189621b 100using a conventional cipher, currently Blowfish or 3DES, with 3DES
7368a6c8 101being used by default.
4fe2af09 102The client selects the encryption algorithm
bf740959 103to use from those offered by the server.
104.Pp
4fe2af09 105Next, the server and the client enter an authentication dialog.
106The client tries to authenticate itself using
bf740959 107.Pa .rhosts
108authentication,
109.Pa .rhosts
110authentication combined with RSA host
111authentication, RSA challenge-response authentication, or password
112based authentication.
113.Pp
114Rhosts authentication is normally disabled
115because it is fundamentally insecure, but can be enabled in the server
4fe2af09 116configuration file if desired.
117System security is not improved unless
bf740959 118.Xr rshd 8 ,
119.Xr rlogind 8 ,
120.Xr rexecd 8 ,
121and
122.Xr rexd 8
123are disabled (thus completely disabling
124.Xr rlogin 1
125and
126.Xr rsh 1
3189621b 127into the machine).
bf740959 128.Pp
1d1ffb87 129.Ss SSH protocol version 2
130.Pp
c345cf9d 131Version 2 works similarly:
1d1ffb87 132Each host has a host-specific DSA key used to identify the host.
133However, when the daemon starts, it does not generate a server key.
134Forward security is provided through a Diffie-Hellman key agreement.
135This key agreement results in a shared session key.
136The rest of the session is encrypted
137using a symmetric cipher, currently
138Blowfish, 3DES or CAST128 in CBC mode or Arcfour.
139The client selects the encryption algorithm
140to use from those offered by the server.
141Additionally, session integrity is provided
d0c832f3 142through a cryptographic message authentication code
1d1ffb87 143(hmac-sha1 or hmac-md5).
144.Pp
145Protocol version 2 provides a public key based
146user authentication method (DSAAuthentication)
147and conventional password authentication.
148.Pp
149.Ss Command execution and data forwarding
150.Pp
bf740959 151If the client successfully authenticates itself, a dialog for
4fe2af09 152preparing the session is entered.
153At this time the client may request
bf740959 154things like allocating a pseudo-tty, forwarding X11 connections,
155forwarding TCP/IP connections, or forwarding the authentication agent
156connection over the secure channel.
157.Pp
158Finally, the client either requests a shell or execution of a command.
4fe2af09 159The sides then enter session mode.
160In this mode, either side may send
bf740959 161data at any time, and such data is forwarded to/from the shell or
162command on the server side, and the user terminal in the client side.
163.Pp
164When the user program terminates and all forwarded X11 and other
165connections have been closed, the server sends command exit status to
166the client, and both sides exit.
167.Pp
168.Nm
169can be configured using command-line options or a configuration
4fe2af09 170file.
171Command-line options override values specified in the
bf740959 172configuration file.
173.Pp
9d6b7add 174.Nm
175rereads its configuration file when it receives a hangup signal,
176.Dv SIGHUP .
177.Pp
bf740959 178The options are as follows:
179.Bl -tag -width Ds
180.It Fl b Ar bits
181Specifies the number of bits in the server key (default 768).
182.Pp
183.It Fl d
4fe2af09 184Debug mode.
185The server sends verbose debug output to the system
186log, and does not put itself in the background.
187The server also will not fork and will only process one connection.
188This option is only intended for debugging for the server.
94ec8c6b 189Multiple -d options increases the debugging level.
190Maximum is 3.
bf740959 191.It Fl f Ar configuration_file
4fe2af09 192Specifies the name of the configuration file.
193The default is
5f4fdfae 194.Pa /etc/sshd_config .
bf740959 195.Nm
196refuses to start if there is no configuration file.
197.It Fl g Ar login_grace_time
198Gives the grace time for clients to authenticate themselves (default
4fe2af09 199300 seconds).
200If the client fails to authenticate the user within
201this many seconds, the server disconnects and exits.
202A value of zero indicates no limit.
bf740959 203.It Fl h Ar host_key_file
1d1ffb87 204Specifies the file from which the RSA host key is read (default
5f4fdfae 205.Pa /etc/ssh_host_key ) .
bf740959 206This option must be given if
207.Nm
208is not run as root (as the normal
209host file is normally not readable by anyone but root).
210.It Fl i
211Specifies that
212.Nm
f54651ce 213is being run from inetd.
bf740959 214.Nm
215is normally not run
216from inetd because it needs to generate the server key before it can
4fe2af09 217respond to the client, and this may take tens of seconds.
218Clients would have to wait too long if the key was regenerated every time.
610cd5c6 219However, with small key sizes (e.g., 512) using
bf740959 220.Nm
221from inetd may
222be feasible.
223.It Fl k Ar key_gen_time
224Specifies how often the server key is regenerated (default 3600
4fe2af09 225seconds, or one hour).
226The motivation for regenerating the key fairly
bf740959 227often is that the key is not stored anywhere, and after about an hour,
228it becomes impossible to recover the key for decrypting intercepted
229communications even if the machine is cracked into or physically
4fe2af09 230seized.
231A value of zero indicates that the key will never be regenerated.
bf740959 232.It Fl p Ar port
233Specifies the port on which the server listens for connections
234(default 22).
235.It Fl q
4fe2af09 236Quiet mode.
237Nothing is sent to the system log.
238Normally the beginning,
bf740959 239authentication, and termination of each connection is logged.
c345cf9d 240.It Fl u Ar len
241This option is used to specify the size of the field
242in the
243.Li utmp
244structure that holds the remote host name.
245If the resolved host name is longer than
246.Ar len ,
247the dotted decimal value will be used instead.
248This allows hosts with very long host names that
249overflow this field to still be uniquely identified.
250Specifying
251.Fl u0
252indicates that only dotted decimal addresses
253should be put into the
254.Pa utmp
255file.
bf740959 256.It Fl Q
257Do not print an error message if RSA support is missing.
5260325f 258.It Fl V Ar client_protocol_id
94ec8c6b 259SSH-2 compatibility mode.
3189621b 260When this option is specified
5260325f 261.Nm
3189621b 262assumes the client has sent the supplied version string
5260325f 263and skips the
264Protocol Version Identification Exchange.
94ec8c6b 265This option is not intended to be called directly.
48e671d5 266.It Fl 4
267Forces
268.Nm
269to use IPv4 addresses only.
270.It Fl 6
271Forces
272.Nm
273to use IPv6 addresses only.
bf740959 274.El
275.Sh CONFIGURATION FILE
276.Nm
f54651ce 277reads configuration data from
5f4fdfae 278.Pa /etc/sshd_config
bf740959 279(or the file specified with
280.Fl f
4fe2af09 281on the command line).
282The file contains keyword-value pairs, one per line.
283Lines starting with
bf740959 284.Ql #
285and empty lines are interpreted as comments.
286.Pp
287The following keywords are possible.
288.Bl -tag -width Ds
289.It Cm AFSTokenPassing
4fe2af09 290Specifies whether an AFS token may be forwarded to the server.
291Default is
bf740959 292.Dq yes .
293.It Cm AllowGroups
294This keyword can be followed by a number of group names, separated
4fe2af09 295by spaces.
296If specified, login is allowed only for users whose primary
bf740959 297group matches one of the patterns.
298.Ql \&*
299and
300.Ql ?
301can be used as
4fe2af09 302wildcards in the patterns.
c345cf9d 303Only group names are valid; a numerical group ID isn't recognized.
4fe2af09 304By default login is allowed regardless of the primary group.
bf740959 305.Pp
306.It Cm AllowUsers
307This keyword can be followed by a number of user names, separated
4fe2af09 308by spaces.
309If specified, login is allowed only for users names that
bf740959 310match one of the patterns.
311.Ql \&*
312and
313.Ql ?
314can be used as
4fe2af09 315wildcards in the patterns.
c345cf9d 316Only user names are valid; a numerical user ID isn't recognized.
4fe2af09 317By default login is allowed regardless of the user name.
bf740959 318.Pp
f54651ce 319.It Cm Ciphers
320Specifies the ciphers allowed for protocol version 2.
321Multiple ciphers must be comma-separated.
322The default is
d0c832f3 323.Dq 3des-cbc,blowfish-cbc,arcfour,cast128-cbc .
bf740959 324.It Cm CheckMail
325Specifies whether
326.Nm
327should check for new mail for interactive logins.
328The default is
329.Dq no .
330.It Cm DenyGroups
331This keyword can be followed by a number of group names, separated
4fe2af09 332by spaces.
333Users whose primary group matches one of the patterns
bf740959 334aren't allowed to log in.
335.Ql \&*
336and
337.Ql ?
338can be used as
4fe2af09 339wildcards in the patterns.
c345cf9d 340Only group names are valid; a numerical group ID isn't recognized.
4fe2af09 341By default login is allowed regardless of the primary group.
bf740959 342.Pp
343.It Cm DenyUsers
344This keyword can be followed by a number of user names, separated
4fe2af09 345by spaces.
346Login is disallowed for user names that match one of the patterns.
bf740959 347.Ql \&*
348and
349.Ql ?
4fe2af09 350can be used as wildcards in the patterns.
c345cf9d 351Only user names are valid; a numerical user ID isn't recognized.
4fe2af09 352By default login is allowed regardless of the user name.
1d1ffb87 353.It Cm DSAAuthentication
354Specifies whether DSA authentication is allowed.
355The default is
356.Dq yes .
357Note that this option applies to protocol version 2 only.
358.It Cm GatewayPorts
359Specifies whether remote hosts are allowed to connect to ports
360forwarded for the client.
361The argument must be
362.Dq yes
363or
364.Dq no .
365The default is
366.Dq no .
c345cf9d 367.It Cm HostDSAKey
1d1ffb87 368Specifies the file containing the private DSA host key (default
369.Pa /etc/ssh_host_dsa_key )
370used by SSH protocol 2.0.
371Note that
372.Nm
d0c832f3 373disables protocol 2.0 if this file is group/world-accessible.
bf740959 374.It Cm HostKey
1d1ffb87 375Specifies the file containing the private RSA host key (default
376.Pa /etc/ssh_host_key )
377used by SSH protocols 1.3 and 1.5.
bf740959 378Note that
379.Nm
d0c832f3 380disables protocols 1.3 and 1.5 if this file is group/world-accessible.
bf740959 381.It Cm IgnoreRhosts
c8d54615 382Specifies that
383.Pa .rhosts
f54651ce 384and
c8d54615 385.Pa .shosts
386files will not be used in authentication.
bf740959 387.Pa /etc/hosts.equiv
388and
f54651ce 389.Pa /etc/shosts.equiv
4fe2af09 390are still used.
f54651ce 391The default is
c8d54615 392.Dq yes .
b4748e2f 393.It Cm IgnoreUserKnownHosts
394Specifies whether
395.Nm
396should ignore the user's
397.Pa $HOME/.ssh/known_hosts
398during
399.Cm RhostsRSAAuthentication .
400The default is
401.Dq no .
bf740959 402.It Cm KeepAlive
403Specifies whether the system should send keepalive messages to the
4fe2af09 404other side.
405If they are sent, death of the connection or crash of one
406of the machines will be properly noticed.
407However, this means that
bf740959 408connections will die if the route is down temporarily, and some people
4fe2af09 409find it annoying.
d0c832f3 410On the other hand, if keepalives are not sent,
bf740959 411sessions may hang indefinitely on the server, leaving
412.Dq ghost
413users and consuming server resources.
414.Pp
415The default is
416.Dq yes
417(to send keepalives), and the server will notice
4fe2af09 418if the network goes down or the client host reboots.
419This avoids infinitely hanging sessions.
bf740959 420.Pp
421To disable keepalives, the value should be set to
422.Dq no
423in both the server and the client configuration files.
424.It Cm KerberosAuthentication
4fe2af09 425Specifies whether Kerberos authentication is allowed.
426This can be in the form of a Kerberos ticket, or if
bf740959 427.Cm PasswordAuthentication
428is yes, the password provided by the user will be validated through
94ec8c6b 429the Kerberos KDC.
430To use this option, the server needs a
c345cf9d 431Kerberos servtab which allows the verification of the KDC's identity.
4fe2af09 432Default is
bf740959 433.Dq yes .
434.It Cm KerberosOrLocalPasswd
435If set then if password authentication through Kerberos fails then
436the password will be validated via any additional local mechanism
437such as
188adeb2 438.Pa /etc/passwd .
4fe2af09 439Default is
bf740959 440.Dq yes .
441.It Cm KerberosTgtPassing
442Specifies whether a Kerberos TGT may be forwarded to the server.
f54651ce 443Default is
bf740959 444.Dq no ,
445as this only works when the Kerberos KDC is actually an AFS kaserver.
446.It Cm KerberosTicketCleanup
447Specifies whether to automatically destroy the user's ticket cache
4fe2af09 448file on logout.
449Default is
bf740959 450.Dq yes .
451.It Cm KeyRegenerationInterval
452The server key is automatically regenerated after this many seconds
4fe2af09 453(if it has been used).
454The purpose of regeneration is to prevent
bf740959 455decrypting captured sessions by later breaking into the machine and
4fe2af09 456stealing the keys.
457The key is never stored anywhere.
458If the value is 0, the key is never regenerated.
459The default is 3600 (seconds).
bf740959 460.It Cm ListenAddress
461Specifies what local address
462.Nm
463should listen on.
464The default is to listen to all local addresses.
48e671d5 465Multiple options of this type are permitted.
466Additionally, the
467.Cm Ports
468options must precede this option.
bf740959 469.It Cm LoginGraceTime
470The server disconnects after this time if the user has not
4fe2af09 471successfully logged in.
472If the value is 0, there is no time limit.
bf740959 473The default is 600 (seconds).
6a17f9c2 474.It Cm LogLevel
475Gives the verbosity level that is used when logging messages from
476.Nm sshd .
477The possible values are:
5260325f 478QUIET, FATAL, ERROR, INFO, VERBOSE and DEBUG.
6a17f9c2 479The default is INFO.
480Logging with level DEBUG violates the privacy of users
481and is not recommended.
089fbbd2 482.It Cm MaxStartups
483Specifies the maximum number of concurrent unauthenticated connections to the
484.Nm
485daemon.
486Additional connections will be dropped until authentication succeeds or the
487.Cm LoginGraceTime
488expires for a connection.
489The default is 10.
c345cf9d 490.Pp
491Alternatively, random early drop can be enabled by specifying
492the three colon separated values
493.Dq start:rate:full
94ec8c6b 494(e.g., "10:30:60").
c345cf9d 495.Nm
496will refuse connection attempts with a probabillity of
497.Dq rate/100
498(30%)
499if there are currently
500.Dq start
501(10)
502unauthenticated connections.
503The probabillity increases linearly and all connection attempts
504are refused if the number of unauthenticated connections reaches
505.Dq full
506(60).
bf740959 507.It Cm PasswordAuthentication
508Specifies whether password authentication is allowed.
509The default is
510.Dq yes .
c345cf9d 511Note that this option applies to both protocol versions 1 and 2.
bf740959 512.It Cm PermitEmptyPasswords
513When password authentication is allowed, it specifies whether the
4fe2af09 514server allows login to accounts with empty password strings.
515The default is
c8d54615 516.Dq no .
bf740959 517.It Cm PermitRootLogin
518Specifies whether the root can log in using
519.Xr ssh 1 .
520The argument must be
521.Dq yes ,
522.Dq without-password
523or
524.Dq no .
525The default is
526.Dq yes .
527If this options is set to
528.Dq without-password
529only password authentication is disabled for root.
530.Pp
531Root login with RSA authentication when the
532.Ar command
533option has been
534specified will be allowed regardless of the value of this setting
535(which may be useful for taking remote backups even if root login is
536normally not allowed).
0fbe8c74 537.It Cm PidFile
538Specifies the file that contains the process identifier of the
539.Nm
540daemon.
541The default is
542.Pa /var/run/sshd.pid .
bf740959 543.It Cm Port
544Specifies the port number that
545.Nm
4fe2af09 546listens on.
547The default is 22.
48e671d5 548Multiple options of this type are permitted.
bf740959 549.It Cm PrintMotd
550Specifies whether
551.Nm
f54651ce 552should print
bf740959 553.Pa /etc/motd
4fe2af09 554when a user logs in interactively.
555(On some systems it is also printed by the shell,
bf740959 556.Pa /etc/profile ,
4fe2af09 557or equivalent.)
558The default is
bf740959 559.Dq yes .
f54651ce 560.It Cm Protocol
561Specifies the protocol versions
562.Nm
563should support.
564The possible values are
565.Dq 1
566and
567.Dq 2 .
568Multiple versions must be comma-separated.
569The default is
570.Dq 1 .
bf740959 571.It Cm RandomSeed
4fe2af09 572Obsolete.
573Random number generation uses other techniques.
bf740959 574.It Cm RhostsAuthentication
575Specifies whether authentication using rhosts or /etc/hosts.equiv
4fe2af09 576files is sufficient.
577Normally, this method should not be permitted because it is insecure.
bf740959 578.Cm RhostsRSAAuthentication
579should be used
580instead, because it performs RSA-based host authentication in addition
581to normal rhosts or /etc/hosts.equiv authentication.
582The default is
583.Dq no .
584.It Cm RhostsRSAAuthentication
585Specifies whether rhosts or /etc/hosts.equiv authentication together
4fe2af09 586with successful RSA host authentication is allowed.
587The default is
c8d54615 588.Dq no .
bf740959 589.It Cm RSAAuthentication
4fe2af09 590Specifies whether pure RSA authentication is allowed.
591The default is
bf740959 592.Dq yes .
1d1ffb87 593Note that this option applies to protocol version 1 only.
bf740959 594.It Cm ServerKeyBits
4fe2af09 595Defines the number of bits in the server key.
596The minimum value is 512, and the default is 768.
bf740959 597.It Cm SkeyAuthentication
598Specifies whether
f54651ce 599.Xr skey 1
4fe2af09 600authentication is allowed.
601The default is
bf740959 602.Dq yes .
603Note that s/key authentication is enabled only if
604.Cm PasswordAuthentication
605is allowed, too.
606.It Cm StrictModes
607Specifies whether
608.Nm
609should check file modes and ownership of the
4fe2af09 610user's files and home directory before accepting login.
611This is normally desirable because novices sometimes accidentally leave their
612directory or files world-writable.
613The default is
bf740959 614.Dq yes .
38c295d6 615.It Cm Subsystem
94ec8c6b 616Configures an external subsystem (e.g., file transfer daemon).
617Arguments should be a subsystem name and a command to execute upon subsystem
618request.
b5e300c2 619The command
620.Xr sftp-server 8
621implements the
622.Dq sftp
623file transfer subsystem.
38c295d6 624By default no subsystems are defined.
625Note that this option applies to protocol version 2 only.
bf740959 626.It Cm SyslogFacility
627Gives the facility code that is used when logging messages from
628.Nm sshd .
629The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2,
4fe2af09 630LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
631The default is AUTH.
bf740959 632.It Cm UseLogin
633Specifies whether
634.Xr login 1
fa649821 635is used for interactive login sessions.
636Note that
637.Xr login 1
c345cf9d 638is never used for remote command execution.
4fe2af09 639The default is
bf740959 640.Dq no .
bf740959 641.It Cm X11DisplayOffset
642Specifies the first display number available for
643.Nm sshd Ns 's
4fe2af09 644X11 forwarding.
645This prevents
bf740959 646.Nm
647from interfering with real X11 servers.
c8d54615 648The default is 10.
7b2ea3a1 649.It Cm X11Forwarding
4fe2af09 650Specifies whether X11 forwarding is permitted.
651The default is
c8d54615 652.Dq no .
7b2ea3a1 653Note that disabling X11 forwarding does not improve security in any
654way, as users can always install their own forwarders.
fa649821 655.It Cm XAuthLocation
656Specifies the location of the
657.Xr xauth 1
658program.
659The default is
660.Pa /usr/X11R6/bin/xauth .
bf740959 661.El
662.Sh LOGIN PROCESS
663When a user successfully logs in,
664.Nm
665does the following:
666.Bl -enum -offset indent
667.It
668If the login is on a tty, and no command has been specified,
f54651ce 669prints last login time and
bf740959 670.Pa /etc/motd
671(unless prevented in the configuration file or by
672.Pa $HOME/.hushlogin ;
673see the
f54651ce 674.Sx FILES
bf740959 675section).
676.It
677If the login is on a tty, records login time.
678.It
679Checks
680.Pa /etc/nologin ;
681if it exists, prints contents and quits
682(unless root).
683.It
684Changes to run with normal user privileges.
685.It
686Sets up basic environment.
687.It
688Reads
689.Pa $HOME/.ssh/environment
690if it exists.
691.It
692Changes to user's home directory.
693.It
694If
695.Pa $HOME/.ssh/rc
696exists, runs it; else if
5f4fdfae 697.Pa /etc/sshrc
bf740959 698exists, runs
4fe2af09 699it; otherwise runs xauth.
700The
bf740959 701.Dq rc
702files are given the X11
703authentication protocol and cookie in standard input.
704.It
705Runs user's shell or command.
706.El
707.Sh AUTHORIZED_KEYS FILE FORMAT
f54651ce 708The
bf740959 709.Pa $HOME/.ssh/authorized_keys
710file lists the RSA keys that are
1d1ffb87 711permitted for RSA authentication in SSH protocols 1.3 and 1.5
d0c832f3 712Similarly, the
1d1ffb87 713.Pa $HOME/.ssh/authorized_keys2
714file lists the DSA keys that are
715permitted for DSA authentication in SSH protocol 2.0.
4fe2af09 716Each line of the file contains one
bf740959 717key (empty lines and lines starting with a
718.Ql #
719are ignored as
4fe2af09 720comments).
721Each line consists of the following fields, separated by
722spaces: options, bits, exponent, modulus, comment.
723The options field
bf740959 724is optional; its presence is determined by whether the line starts
725with a number or not (the option field never starts with a number).
726The bits, exponent, modulus and comment fields give the RSA key; the
727comment field is not used for anything (but may be convenient for the
728user to identify the key).
729.Pp
730Note that lines in this file are usually several hundred bytes long
4fe2af09 731(because of the size of the RSA key modulus).
732You don't want to type them in; instead, copy the
bf740959 733.Pa identity.pub
734file and edit it.
735.Pp
c345cf9d 736The options (if present) consist of comma-separated option
4fe2af09 737specifications.
738No spaces are permitted, except within double quotes.
bf740959 739The following option specifications are supported:
740.Bl -tag -width Ds
741.It Cm from="pattern-list"
742Specifies that in addition to RSA authentication, the canonical name
743of the remote host must be present in the comma-separated list of
4fe2af09 744patterns
745.Pf ( Ql *
746and
747.Ql ?
748serve as wildcards).
749The list may also contain
750patterns negated by prefixing them with
751.Ql ! ;
752if the canonical host name matches a negated pattern, the key is not accepted.
753The purpose
bf740959 754of this option is to optionally increase security: RSA authentication
755by itself does not trust the network or name servers or anything (but
756the key); however, if somebody somehow steals the key, the key
4fe2af09 757permits an intruder to log in from anywhere in the world.
758This additional option makes using a stolen key more difficult (name
bf740959 759servers and/or routers would have to be compromised in addition to
760just the key).
761.It Cm command="command"
762Specifies that the command is executed whenever this key is used for
4fe2af09 763authentication.
764The command supplied by the user (if any) is ignored.
bf740959 765The command is run on a pty if the connection requests a pty;
4fe2af09 766otherwise it is run without a tty.
767A quote may be included in the command by quoting it with a backslash.
768This option might be useful
769to restrict certain RSA keys to perform just a specific operation.
770An example might be a key that permits remote backups but nothing else.
d0c832f3 771Note that the client may specify TCP/IP and/or X11
772forwarding unless they are explicitly prohibited.
bf740959 773.It Cm environment="NAME=value"
774Specifies that the string is to be added to the environment when
4fe2af09 775logging in using this key.
776Environment variables set this way
777override other default environment values.
778Multiple options of this type are permitted.
bf740959 779.It Cm no-port-forwarding
780Forbids TCP/IP forwarding when this key is used for authentication.
4fe2af09 781Any port forward requests by the client will return an error.
782This might be used, e.g., in connection with the
bf740959 783.Cm command
784option.
785.It Cm no-X11-forwarding
786Forbids X11 forwarding when this key is used for authentication.
787Any X11 forward requests by the client will return an error.
788.It Cm no-agent-forwarding
789Forbids authentication agent forwarding when this key is used for
790authentication.
791.It Cm no-pty
792Prevents tty allocation (a request to allocate a pty will fail).
793.El
794.Ss Examples
7951024 33 12121.\|.\|.\|312314325 ylo@foo.bar
796.Pp
797from="*.niksula.hut.fi,!pc.niksula.hut.fi" 1024 35 23.\|.\|.\|2334 ylo@niksula
798.Pp
799command="dump /home",no-pty,no-port-forwarding 1024 33 23.\|.\|.\|2323 backup.hut.fi
800.Sh SSH_KNOWN_HOSTS FILE FORMAT
f54651ce 801The
1d1ffb87 802.Pa /etc/ssh_known_hosts ,
803.Pa /etc/ssh_known_hosts2 ,
804.Pa $HOME/.ssh/known_hosts ,
f54651ce 805and
1d1ffb87 806.Pa $HOME/.ssh/known_hosts2
4fe2af09 807files contain host public keys for all known hosts.
808The global file should
809be prepared by the administrator (optional), and the per-user file is
c345cf9d 810maintained automatically: whenever the user connects from an unknown host
4fe2af09 811its key is added to the per-user file.
bf740959 812.Pp
813Each line in these files contains the following fields: hostnames,
4fe2af09 814bits, exponent, modulus, comment.
815The fields are separated by spaces.
bf740959 816.Pp
817Hostnames is a comma-separated list of patterns ('*' and '?' act as
818wildcards); each pattern in turn is matched against the canonical host
819name (when authenticating a client) or against the user-supplied
4fe2af09 820name (when authenticating a server).
821A pattern may also be preceded by
bf740959 822.Ql !
823to indicate negation: if the host name matches a negated
824pattern, it is not accepted (by that line) even if it matched another
825pattern on the line.
826.Pp
1d1ffb87 827Bits, exponent, and modulus are taken directly from the RSA host key; they
bf740959 828can be obtained, e.g., from
5f4fdfae 829.Pa /etc/ssh_host_key.pub .
bf740959 830The optional comment field continues to the end of the line, and is not used.
831.Pp
832Lines starting with
833.Ql #
834and empty lines are ignored as comments.
835.Pp
836When performing host authentication, authentication is accepted if any
4fe2af09 837matching line has the proper key.
838It is thus permissible (but not
bf740959 839recommended) to have several lines or different host keys for the same
4fe2af09 840names.
841This will inevitably happen when short forms of host names
842from different domains are put in the file.
843It is possible
bf740959 844that the files contain conflicting information; authentication is
845accepted if valid information can be found from either file.
846.Pp
847Note that the lines in these files are typically hundreds of characters
848long, and you definitely don't want to type in the host keys by hand.
849Rather, generate them by a script
f54651ce 850or by taking
5f4fdfae 851.Pa /etc/ssh_host_key.pub
bf740959 852and adding the host names at the front.
853.Ss Examples
854closenet,closenet.hut.fi,.\|.\|.\|,130.233.208.41 1024 37 159.\|.\|.93 closenet.hut.fi
855.Sh FILES
856.Bl -tag -width Ds
5f4fdfae 857.It Pa /etc/sshd_config
bf740959 858Contains configuration data for
859.Nm sshd .
860This file should be writable by root only, but it is recommended
861(though not necessary) that it be world-readable.
5f4fdfae 862.It Pa /etc/ssh_host_key
bf740959 863Contains the private part of the host key.
864This file should only be owned by root, readable only by root, and not
865accessible to others.
866Note that
867.Nm
868does not start if this file is group/world-accessible.
5f4fdfae 869.It Pa /etc/ssh_host_key.pub
bf740959 870Contains the public part of the host key.
871This file should be world-readable but writable only by
4fe2af09 872root.
873Its contents should match the private part.
874This file is not
bf740959 875really used for anything; it is only provided for the convenience of
876the user so its contents can be copied to known hosts files.
877These two files are created using
878.Xr ssh-keygen 1 .
5f4fdfae 879.It Pa /var/run/sshd.pid
bf740959 880Contains the process ID of the
881.Nm
882listening for connections (if there are several daemons running
883concurrently for different ports, this contains the pid of the one
4fe2af09 884started last).
c345cf9d 885The content of this file is not sensitive; it can be world-readable.
bf740959 886.It Pa $HOME/.ssh/authorized_keys
887Lists the RSA keys that can be used to log into the user's account.
888This file must be readable by root (which may on some machines imply
889it being world-readable if the user's home directory resides on an NFS
4fe2af09 890volume).
891It is recommended that it not be accessible by others.
892The format of this file is described above.
1d1ffb87 893Users will place the contents of their
894.Pa identity.pub
895files into this file, as described in
896.Xr ssh-keygen 1 .
897.It Pa $HOME/.ssh/authorized_keys2
898Lists the DSA keys that can be used to log into the user's account.
899This file must be readable by root (which may on some machines imply
900it being world-readable if the user's home directory resides on an NFS
901volume).
902It is recommended that it not be accessible by others.
903The format of this file is described above.
904Users will place the contents of their
905.Pa id_dsa.pub
906files into this file, as described in
907.Xr ssh-keygen 1 .
5f4fdfae 908.It Pa "/etc/ssh_known_hosts" and "$HOME/.ssh/known_hosts"
6a17f9c2 909These files are consulted when using rhosts with RSA host
4fe2af09 910authentication to check the public key of the host.
911The key must be listed in one of these files to be accepted.
5bbb5681 912The client uses the same files
c345cf9d 913to verify that the remote host is the one it intended to connect.
4fe2af09 914These files should be writable only by root/the owner.
5f4fdfae 915.Pa /etc/ssh_known_hosts
bf740959 916should be world-readable, and
917.Pa $HOME/.ssh/known_hosts
918can but need not be world-readable.
919.It Pa /etc/nologin
f54651ce 920If this file exists,
bf740959 921.Nm
4fe2af09 922refuses to let anyone except root log in.
923The contents of the file
bf740959 924are displayed to anyone trying to log in, and non-root connections are
4fe2af09 925refused.
926The file should be world-readable.
bf740959 927.It Pa /etc/hosts.allow, /etc/hosts.deny
928If compiled with
929.Sy LIBWRAP
930support, tcp-wrappers access controls may be defined here as described in
931.Xr hosts_access 5 .
932.It Pa $HOME/.rhosts
933This file contains host-username pairs, separated by a space, one per
4fe2af09 934line.
935The given user on the corresponding host is permitted to log in
936without password.
937The same file is used by rlogind and rshd.
bf740959 938The file must
939be writable only by the user; it is recommended that it not be
940accessible by others.
941.Pp
4fe2af09 942If is also possible to use netgroups in the file.
943Either host or user
bf740959 944name may be of the form +@groupname to specify all hosts or all users
945in the group.
946.It Pa $HOME/.shosts
947For ssh,
948this file is exactly the same as for
949.Pa .rhosts .
950However, this file is
951not used by rlogin and rshd, so using this permits access using SSH only.
c345cf9d 952.It Pa /etc/hosts.equiv
bf740959 953This file is used during
954.Pa .rhosts
4fe2af09 955authentication.
956In the simplest form, this file contains host names, one per line.
957Users on
bf740959 958those hosts are permitted to log in without a password, provided they
4fe2af09 959have the same user name on both machines.
960The host name may also be
bf740959 961followed by a user name; such users are permitted to log in as
962.Em any
4fe2af09 963user on this machine (except root).
964Additionally, the syntax
bf740959 965.Dq +@group
4fe2af09 966can be used to specify netgroups.
967Negated entries start with
bf740959 968.Ql \&- .
969.Pp
970If the client host/user is successfully matched in this file, login is
971automatically permitted provided the client and server user names are the
4fe2af09 972same.
973Additionally, successful RSA host authentication is normally required.
974This file must be writable only by root; it is recommended
bf740959 975that it be world-readable.
976.Pp
977.Sy "Warning: It is almost never a good idea to use user names in"
978.Pa hosts.equiv .
979Beware that it really means that the named user(s) can log in as
980.Em anybody ,
981which includes bin, daemon, adm, and other accounts that own critical
4fe2af09 982binaries and directories.
983Using a user name practically grants the user root access.
984The only valid use for user names that I can think
bf740959 985of is in negative entries.
986.Pp
987Note that this warning also applies to rsh/rlogin.
5f4fdfae 988.It Pa /etc/shosts.equiv
bf740959 989This is processed exactly as
990.Pa /etc/hosts.equiv .
991However, this file may be useful in environments that want to run both
992rsh/rlogin and ssh.
993.It Pa $HOME/.ssh/environment
4fe2af09 994This file is read into the environment at login (if it exists).
995It can only contain empty lines, comment lines (that start with
bf740959 996.Ql # ) ,
4fe2af09 997and assignment lines of the form name=value.
998The file should be writable
bf740959 999only by the user; it need not be readable by anyone else.
1000.It Pa $HOME/.ssh/rc
1001If this file exists, it is run with /bin/sh after reading the
4fe2af09 1002environment files but before starting the user's shell or command.
1003If X11 spoofing is in use, this will receive the "proto cookie" pair in
bf740959 1004standard input (and
1005.Ev DISPLAY
4fe2af09 1006in environment).
1007This must call
bf740959 1008.Xr xauth 1
1009in that case.
1010.Pp
1011The primary purpose of this file is to run any initialization routines
1012which may be needed before the user's home directory becomes
1013accessible; AFS is a particular example of such an environment.
1014.Pp
1015This file will probably contain some initialization code followed by
1016something similar to: "if read proto cookie; then echo add $DISPLAY
1017$proto $cookie | xauth -q -; fi".
1018.Pp
1019If this file does not exist,
5f4fdfae 1020.Pa /etc/sshrc
bf740959 1021is run, and if that
1022does not exist either, xauth is used to store the cookie.
1023.Pp
1024This file should be writable only by the user, and need not be
1025readable by anyone else.
5f4fdfae 1026.It Pa /etc/sshrc
bf740959 1027Like
1028.Pa $HOME/.ssh/rc .
1029This can be used to specify
4fe2af09 1030machine-specific login-time initializations globally.
1031This file should be writable only by root, and should be world-readable.
089fbbd2 1032.El
bf740959 1033.Sh AUTHOR
bf740959 1034OpenSSH
c8d54615 1035is a derivative of the original (free) ssh 1.2.12 release by Tatu Ylonen,
4fe2af09 1036but with bugs removed and newer features re-added.
1037Rapidly after the
c8d54615 10381.2.12 release, newer versions of the original ssh bore successively
1039more restrictive licenses, and thus demand for a free version was born.
1d1ffb87 1040.Pp
c8d54615 1041This version of OpenSSH
bf740959 1042.Bl -bullet
1043.It
bcbf86ec 1044has all components of a restrictive nature (i.e., patents, see
1045.Xr crypto 3 )
bf740959 1046directly removed from the source code; any licensed or patented components
1047are chosen from
1048external libraries.
1049.It
1d1ffb87 1050has been updated to support SSH protocol 1.5 and 2, making it compatible with
1051all other SSH clients and servers.
bf740959 1052.It
f54651ce 1053contains added support for
bf740959 1054.Xr kerberos 8
1055authentication and ticket passing.
1056.It
1057supports one-time password authentication with
1058.Xr skey 1 .
1059.El
1d1ffb87 1060.Pp
1061OpenSSH has been created by Aaron Campbell, Bob Beck, Markus Friedl,
1062Niels Provos, Theo de Raadt, and Dug Song.
1063.Pp
1064The support for SSH protocol 2 was written by Markus Friedl.
bf740959 1065.Sh SEE ALSO
bf740959 1066.Xr scp 1 ,
b5e300c2 1067.Xr sftp-server 8 ,
bf740959 1068.Xr ssh 1 ,
1069.Xr ssh-add 1 ,
1070.Xr ssh-agent 1 ,
1071.Xr ssh-keygen 1 ,
bcbf86ec 1072.Xr crypto 3 ,
7368a6c8 1073.Xr rlogin 1 ,
1074.Xr rsh 1
This page took 1.025879 seconds and 5 git commands to generate.