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