]> andersk Git - openssh.git/blob - ssh.1
Re-imported OpenBSD manpages
[openssh.git] / ssh.1
1 .\"  -*- nroff -*-
2 .\"
3 .\" ssh.1.in
4 .\"
5 .\" Author: Tatu Ylonen <ylo@cs.hut.fi>
6 .\"
7 .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
8 .\"                    All rights reserved
9 .\"
10 .\" Created: Sat Apr 22 21:55:14 1995 ylo
11 .\"
12 .\" $Id$
13 .\"
14 .Dd September 25, 1999
15 .Dt SSH 1
16 .Os
17 .Sh NAME
18 .Nm ssh
19 .Nd OpenSSH secure shell client (remote login program)
20 .Sh SYNOPSIS
21 .Nm ssh
22 .Op Fl l Ar login_name
23 .Op Ar hostname | user@hostname
24 .Op Ar command
25 .Pp
26 .Nm ssh
27 .Op Fl afgknqtvxCPX
28 .Op Fl c Ar blowfish | 3des
29 .Op Fl e Ar escape_char
30 .Op Fl i Ar identity_file
31 .Op Fl l Ar login_name
32 .Op Fl o Ar option
33 .Op Fl p Ar port
34 .Oo Fl L Xo
35 .Sm off
36 .Ar host :
37 .Ar port :
38 .Ar hostport
39 .Sm on
40 .Xc
41 .Oc
42 .Oo Fl R Xo
43 .Sm off
44 .Ar host :
45 .Ar port :
46 .Ar hostport
47 .Sm on
48 .Xc
49 .Oc
50 .Op Ar hostname | user@hostname
51 .Op Ar command
52 .Sh DESCRIPTION 
53 .Nm
54 (Secure Shell) is a program for logging into a remote machine and for
55 executing commands on a remote machine.  It is intended to replace
56 rlogin and rsh, and provide secure encrypted communications between
57 two untrusted hosts over an insecure network.  X11 connections and
58 arbitrary TCP/IP ports can also be forwarded over the secure channel.
59 .Pp
60 .Nm
61 connects and logs into the specified 
62 .Ar hostname .
63 The user must prove
64 his/her identity to the remote machine using one of several methods.
65 .Pp
66 First, if the machine the user logs in from is listed in
67 .Pa /etc/hosts.equiv
68 or
69 .Pa /etc/shosts.equiv
70 on the remote machine, and the user names are
71 the same on both sides, the user is immediately permitted to log in.
72 Second, if 
73 .Pa \&.rhosts
74 or
75 .Pa \&.shosts
76 exists in the user's home directory on the
77 remote machine and contains a line containing the name of the client
78 machine and the name of the user on that machine, the user is
79 permitted to log in.  This form of authentication alone is normally not
80 allowed by the server because it is not secure.
81 .Pp
82 The second (and primary) authentication method is the
83 .Pa rhosts
84 or
85 .Pa hosts.equiv
86 method combined with RSA-based host authentication.  It
87 means that if the login would be permitted by
88 .Pa \&.rhosts ,
89 .Pa \&.shosts ,
90 .Pa /etc/hosts.equiv ,
91 or
92 .Pa /etc/shosts.equiv ,
93 and if additionally the server can verify the client's
94 host key (see 
95 .Pa /etc/ssh_known_hosts
96 in the
97 .Sx FILES
98 section), only then login is
99 permitted.  This authentication method closes security holes due to IP
100 spoofing, DNS spoofing and routing spoofing.  [Note to the
101 administrator:
102 .Pa /etc/hosts.equiv ,
103 .Pa \&.rhosts ,
104 and the rlogin/rsh protocol in general, are inherently insecure and should be
105 disabled if security is desired.]
106 .Pp
107 As a third authentication method, 
108 .Nm
109 supports RSA based authentication.
110 The scheme is based on public-key cryptography: there are cryptosystems
111 where encryption and decryption are done using separate keys, and it
112 is not possible to derive the decryption key from the encryption key.
113 RSA is one such system.  The idea is that each user creates a public/private 
114 key pair for authentication purposes.  The
115 server knows the public key, and only the user knows the private key.
116 The file 
117 .Pa $HOME/.ssh/authorized_keys
118 lists the public keys that are permitted for logging
119 in.  When the user logs in, the
120 .Nm
121 program tells the server which key pair it would like to use for
122 authentication.  The server checks if this key is permitted, and if
123 so, sends the user (actually the
124 .Nm
125 program running on behalf of the user) a challenge, a random number,
126 encrypted by the user's public key.  The challenge can only be
127 decrypted using the proper private key.  The user's client then decrypts the
128 challenge using the private key, proving that he/she knows the private
129 key but without disclosing it to the server.
130 .Pp
131 .Nm
132 implements the RSA authentication protocol automatically.  The user
133 creates his/her RSA key pair by running
134 .Xr ssh-keygen 1 .
135 This stores the private key in 
136 .Pa \&.ssh/identity
137 and the public key in
138 .Pa \&.ssh/identity.pub
139 in the user's home directory.  The user should then
140 copy the 
141 .Pa identity.pub
142 to 
143 .Pa \&.ssh/authorized_keys
144 in his/her home directory on the remote machine (the 
145 .Pa authorized_keys
146 file corresponds to the conventional 
147 .Pa \&.rhosts
148 file, and has one key
149 per line, though the lines can be very long).  After this, the user
150 can log in without giving the password.  RSA authentication is much
151 more secure than rhosts authentication.
152 .Pp
153 The most convenient way to use RSA authentication may be with an
154 authentication agent.  See
155 .Xr ssh-agent 1
156 for more information.
157 .Pp
158 If other authentication methods fail, 
159 .Nm
160 prompts the user for a password.  The password is sent to the remote
161 host for checking; however, since all communications are encrypted,
162 the password cannot be seen by someone listening on the network.
163 .Pp
164 When the user's identity has been accepted by the server, the server
165 either executes the given command, or logs into the machine and gives
166 the user a normal shell on the remote machine.  All communication with
167 the remote command or shell will be automatically encrypted.
168 .Pp
169 If a pseudo-terminal has been allocated (normal login session), the
170 user can disconnect with
171 .Ic ~. ,
172 and suspend
173 .Nm
174 with
175 .Ic ~^Z .
176 All forwarded connections can be listed with
177 .Ic ~# 
178 and if
179 the session blocks waiting for forwarded X11 or TCP/IP
180 connections to terminate, it can be backgrounded with
181 .Ic ~&
182 (this should not be used while the user shell is active, as it can cause the
183 shell to hang).  All available escapes can be listed with
184 .Ic ~? .
185 .Pp
186 A single tilde character can be sent as
187 .Ic ~~
188 (or by following the tilde by a character other than those described above).
189 The escape character must always follow a newline to be interpreted as
190 special.  The escape character can be changed in configuration files
191 or on the command line.  
192 .Pp
193 If no pseudo tty has been allocated, the
194 session is transparent and can be used to reliably transfer binary
195 data.  On most systems, setting the escape character to
196 .Dq none
197 will also make the session transparent even if a tty is used.
198 .Pp
199 The session terminates when the command or shell in on the remote
200 machine exists and all X11 and TCP/IP connections have been closed.
201 The exit status of the remote program is returned as the exit status
202 of
203 .Nm ssh .
204 .Pp
205 If the user is using X11 (the
206 .Ev DISPLAY
207 environment variable is set), the connection to the X11 display is
208 automatically forwarded to the remote side in such a way that any X11
209 programs started from the shell (or command) will go through the
210 encrypted channel, and the connection to the real X server will be made
211 from the local machine.  The user should not manually set
212 .Ev DISPLAY .
213 Forwarding of X11 connections can be
214 configured on the command line or in configuration files.
215 .Pp
216 The
217 .Ev DISPLAY 
218 value set by
219 .Nm
220 will point to the server machine, but with a display number greater
221 than zero.  This is normal, and happens because
222 .Nm
223 creates a
224 .Dq proxy
225 X server on the server machine for forwarding the
226 connections over the encrypted channel.
227 .Pp
228 .Nm
229 will also automatically set up Xauthority data on the server machine.
230 For this purpose, it will generate a random authorization cookie,
231 store it in Xauthority on the server, and verify that any forwarded
232 connections carry this cookie and replace it by the real cookie when
233 the connection is opened.  The real authentication cookie is never
234 sent to the server machine (and no cookies are sent in the plain).
235 .Pp
236 If the user is using an authentication agent, the connection to the agent
237 is automatically forwarded to the remote side unless disabled on
238 command line or in a configuration file.
239 .Pp
240 Forwarding of arbitrary TCP/IP connections over the secure channel can
241 be specified either on command line or in a configuration file.  One
242 possible application of TCP/IP forwarding is a secure connection to an
243 electronic purse; another is going trough firewalls.
244 .Pp
245 .Nm
246 automatically maintains and checks a database containing RSA-based
247 identifications for all hosts it has ever been used with.  The
248 database is stored in 
249 .Pa \&.ssh/known_hosts
250 in the user's home directory.  Additionally, the file 
251 .Pa /etc/ssh_known_hosts
252 is automatically checked for known hosts.  Any new hosts are
253 automatically added to the user's file.  If a host's identification
254 ever changes,
255 .Nm
256 warns about this and disables password authentication to prevent a
257 trojan horse from getting the user's password.  Another purpose of
258 this mechanism is to prevent man-in-the-middle attacks which could
259 otherwise be used to circumvent the encryption.  The
260 .Cm StrictHostKeyChecking
261 option (see below) can be used to prevent logins to machines whose
262 host key is not known or has changed.
263 .Sh OPTIONS
264 .Bl -tag -width Ds
265 .It Fl a
266 Disables forwarding of the authentication agent connection. This may
267 also be specified on a per-host basis in the configuration file.
268 .It Fl c Ar blowfish|3des
269 Selects the cipher to use for encrypting the session. 
270 .Ar 3des
271 is used by default.  It is believed to be secure. 
272 .Ar 3des
273 (triple-des) is an encrypt-decrypt-encrypt triple with three different keys.
274 It is presumably more secure than the
275 .Ar des
276 cipher which is no longer supported in ssh.
277 .Ar blowfish
278 is a fast block cipher, it appears very secure and is much faster than
279 .Ar 3des .  
280 .It Fl e Ar ch|^ch|none
281 Sets the escape character for sessions with a pty (default:
282 .Ql ~ ) .
283 The escape character is only recognized at the beginning of a line.  The
284 escape character followed by a dot
285 .Pq Ql \&.
286 closes the connection, followed
287 by control-Z suspends the connection, and followed by itself sends the
288 escape character once.  Setting the character to
289 .Dq none
290 disables any escapes and makes the session fully transparent.
291 .It Fl f
292 Requests
293 .Nm
294 to go to background after authentication.  This is useful
295 if
296 .Nm
297 is going to ask for passwords or passphrases, but the user
298 wants it in the background.  This implies 
299 .Fl n .
300 The recommended way to start X11 programs at a remote site is with
301 something like
302 .Ic ssh -f host xterm .
303 .It Fl i Ar identity_file
304 Selects the file from which the identity (private key) for 
305 RSA authentication is read.  Default is 
306 .Pa \&.ssh/identity
307 in the user's home directory.  Identity files may also be specified on
308 a per-host basis in the configuration file.  It is possible to have
309 multiple
310 .Fl i
311 options (and multiple identities specified in
312 configuration files).
313 .It Fl g
314 Allows remote hosts to connect to local forwarded ports.
315 .It Fl k
316 Disables forwarding of Kerberos tickets and AFS tokens. This may
317 also be specified on a per-host basis in the configuration file.
318 .It Fl l Ar login_name
319 Specifies the user to log in as on the remote machine.  This may also
320 be specified on a per-host basis in the configuration file.
321 .It Fl n
322 Redirects stdin from
323 .Pa /dev/null
324 (actually, prevents reading from stdin).
325 This must be used when
326 .Nm
327 is run in the background.  A common trick is to use this to run X11
328 programs in a remote machine.  For example,
329 .Ic ssh -n shadows.cs.hut.fi emacs &
330 will start an emacs on shadows.cs.hut.fi, and the X11
331 connection will be automatically forwarded over an encrypted channel.
332 The
333 .Nm
334 program will be put in the background.
335 (This does not work if
336 .Nm
337 needs to ask for a password or passphrase; see also the
338 .Fl f
339 option.)
340 .It Fl o Ar option
341 Can be used to give options in the format used in the config file.
342 This is useful for specifying options for which there is no separate
343 command-line flag.  The option has the same format as a line in the
344 configuration file.
345 .It Fl p Ar port
346 Port to connect to on the remote host.  This can be specified on a
347 per-host basis in the configuration file.
348 .It Fl P
349 Use a non-privileged port for outgoing connections.
350 This can be used if your firewall does
351 not permit connections from privileged ports.
352 Note that this option turns of
353 .Cm RhostsAuthentication
354 and
355 .Cm RhostsRSAAuthentication .
356 .It Fl q
357 Quiet mode.  Causes all warning and diagnostic messages to be
358 suppressed.  Only fatal errors are displayed.
359 .It Fl t
360 Force pseudo-tty allocation.  This can be used to execute arbitary
361 screen-based programs on a remote machine, which can be very useful
362 e.g. when implementing menu services.
363 .It Fl v
364 Verbose mode.  Causes
365 .Nm
366 to print debugging messages about its progress.  This is helpful in
367 debugging connection, authentication, and configuration problems.
368 The verbose mode is also used to display
369 .Xr skey 1
370 challenges, if the user entered "s/key" as password.
371 .It Fl x
372 Disables X11 forwarding.  This can also be specified on a per-host
373 basis in a configuration file.
374 .It Fl X
375 Enables X11 forwarding.
376 .It Fl C
377 Requests compression of all data (including stdin, stdout, stderr, and
378 data for forwarded X11 and TCP/IP connections).  The compression
379 algorithm is the same used by gzip, and the
380 .Dq level
381 can be controlled by the
382 .Cm CompressionLevel
383 option (see below).  Compression is desirable on modem lines and other
384 slow connections, but will only slow down things on fast networks.
385 The default value can be set on a host-by-host basis in the
386 configuration files; see the
387 .Cm Compress
388 option below.
389 .It Fl L Ar port:host:hostport
390 Specifies that the given port on the local (client) host is to be
391 forwarded to the given host and port on the remote side.  This works
392 by allocating a socket to listen to
393 .Ar port
394 on the local side, and whenever a connection is made to this port, the
395 connection is forwarded over the secure channel, and a connection is
396 made to
397 .Ar host:hostport
398 from the remote machine.  Port forwardings can also be specified in the
399 configuration file.  Only root can forward privileged ports.
400 .It Fl R Ar port:host:hostport
401 Specifies that the given port on the remote (server) host is to be
402 forwarded to the given host and port on the local side.  This works
403 by allocating a socket to listen to
404 .Ar port
405 on the remote side, and whenever a connection is made to this port, the
406 connection is forwarded over the secure channel, and a connection is
407 made to
408 .Ar host:hostport
409 from the local machine.  Port forwardings can also be specified in the
410 configuration file.  Privileged ports can be forwarded only when
411 logging in as root on the remote machine.
412 .El
413 .Sh CONFIGURATION FILES
414 .Nm
415 obtains configuration data from the following sources (in this order):
416 command line options, user's configuration file
417 .Pq Pa $HOME/.ssh/config ,
418 and system-wide configuration file
419 .Pq Pa /etc/ssh_config .
420 For each parameter, the first obtained value
421 will be used.  The configuration files contain sections bracketed by
422 "Host" specifications, and that section is only applied for hosts that
423 match one of the patterns given in the specification.  The matched
424 host name is the one given on the command line.
425 .Pp
426 Since the first obtained value for each parameter is used, more
427 host-specific declarations should be given near the beginning of the
428 file, and general defaults at the end.
429 .Pp
430 The configuration file has the following format:
431 .Pp
432 Empty lines and lines starting with
433 .Ql #
434 are comments.
435 .Pp
436 Otherwise a line is of the format
437 .Dq keyword arguments .
438 The possible
439 keywords and their meanings are as follows (note that the
440 configuration files are case-sensitive):
441 .Bl -tag -width Ds
442 .It Cm Host
443 Restricts the following declarations (up to the next
444 .Cm Host
445 keyword) to be only for those hosts that match one of the patterns
446 given after the keyword.
447 .Ql \&*
448 and
449 .Ql ?
450 can be used as wildcards in the
451 patterns.  A single
452 .Ql \&*
453 as a pattern can be used to provide global
454 defaults for all hosts.  The host is the
455 .Ar hostname
456 argument given on the command line (i.e., the name is not converted to
457 a canonicalized host name before matching).
458 .It Cm AFSTokenPassing
459 Specifies whether to pass AFS tokens to remote host. The argument to 
460 this keyword must be
461 .Dq yes
462 or
463 .Dq no .
464 .It Cm BatchMode
465 If set to
466 .Dq yes ,
467 passphrase/password querying will be disabled.  This
468 option is useful in scripts and other batch jobs where you have no
469 user to supply the password.  The argument must be
470 .Dq yes
471 or
472 .Dq no .
473 .It Cm Cipher
474 Specifies the cipher to use for encrypting the session.  Currently,
475 .Dq blowfish ,
476 and
477 .Dq 3des
478 are supported.  The default is
479 .Dq 3des .
480 .It Cm Compression
481 Specifies whether to use compression.  The argument must be
482 .Dq yes
483 or
484 .Dq no .
485 .It Cm CompressionLevel
486 Specifies the compression level to use if compression is enable.  The
487 argument must be an integer from 1 (fast) to 9 (slow, best).  The
488 default level is 6, which is good for most applications.  The meaning
489 of the values is the same as in GNU GZIP.
490 .It Cm ConnectionAttempts
491 Specifies the number of tries (one per second) to make before falling
492 back to rsh or exiting.  The argument must be an integer.  This may be
493 useful in scripts if the connection sometimes fails.
494 .It Cm EscapeChar
495 Sets the escape character (default:
496 .Ql ~ ) .
497 The escape character can also
498 be set on the command line.  The argument should be a single
499 character,
500 .Ql ^
501 followed by a letter, or
502 .Dq none
503 to disable the escape
504 character entirely (making the connection transparent for binary
505 data).
506 .It Cm FallBackToRsh 
507 Specifies that if connecting via
508 .Nm
509 fails due to a connection refused error (there is no
510 .Xr sshd 8
511 listening on the remote host), 
512 .Xr rsh 1
513 should automatically be used instead (after a suitable warning about
514 the session being unencrypted).  The argument must be
515 .Dq yes
516 or
517 .Dq no .
518 .It Cm ForwardAgent
519 Specifies whether the connection to the authentication agent (if any)
520 will be forwarded to the remote machine.  The argument must be
521 .Dq yes
522 or
523 .Dq no .
524 .It Cm ForwardX11
525 Specifies whether X11 connections will be automatically redirected
526 over the secure channel and 
527 .Ev DISPLAY
528 set.  The argument must be 
529 .Dq yes
530 or
531 .Dq no .
532 .It Cm GatewayPorts
533 Specifies whether remote hosts are allowed to connect to local
534 forwarded ports.
535 The argument must be
536 .Dq yes
537 or
538 .Dq no .
539 The default is
540 .Dq no .
541 .It Cm GlobalKnownHostsFile
542 Specifies a file to use instead of 
543 .Pa /etc/ssh_known_hosts .
544 .It Cm HostName
545 Specifies the real host name to log into.  This can be used to specify
546 nicnames or abbreviations for hosts.  Default is the name given on the
547 command line.  Numeric IP addresses are also permitted (both on the
548 command line and in
549 .Cm HostName
550 specifications).
551 .It Cm IdentityFile
552 Specifies the file from which the user's RSA authentication identity
553 is read (default
554 .Pa .ssh/identity
555 in the user's home directory).
556 Additionally, any identities represented by the authentication agent
557 will be used for authentication.  The file name may use the tilde
558 syntax to refer to a user's home directory.  It is possible to have
559 multiple identity files specified in configuration files; all these
560 identities will be tried in sequence.
561 .It Cm KeepAlive
562 Specifies whether the system should send keepalive messages to the
563 other side.  If they are sent, death of the connection or crash of one
564 of the machines will be properly noticed.  However, this means that
565 connections will die if the route is down temporarily, and some people
566 find it annoying.  
567 .Pp
568 The default is
569 .Dq yes
570 (to send keepalives), and the client will notice
571 if the network goes down or the remote host dies.  This is important
572 in scripts, and many users want it too.
573 .Pp
574 To disable keepalives, the value should be set to
575 .Dq no
576 in both the server and the client configuration files.
577 .It Cm KerberosAuthentication
578 Specifies whether Kerberos authentication will be used. The argument to 
579 this keyword must be
580 .Dq yes
581 or
582 .Dq no .
583 .It Cm KerberosTgtPassing
584 Specifies whether a Kerberos TGT will be forwarded to the server. This
585 will only work if the Kerberos server is actually an AFS kaserver. The
586 argument to this keyword must be
587 .Dq yes
588 or
589 .Dq no .
590 .It Cm LocalForward
591 Specifies that a TCP/IP port on the local machine be forwarded over
592 the secure channel to given host:port from the remote machine.  The
593 first argument must be a port number, and the second must be
594 host:port.  Multiple forwardings may be specified, and additional
595 forwardings can be given on the command line.  Only the root can
596 forward privileged ports.
597 .It Cm PasswordAuthentication
598 Specifies whether to use password authentication.  The argument to
599 this keyword must be
600 .Dq yes
601 or
602 .Dq no .
603 .It Cm NumberOfPasswordPrompts
604 Specifies the number of password prompts before giving up. The
605 argument to this keyword must be an integer. Default is 3.
606 .It Cm Port
607 Specifies the port number to connect on the remote host.  Default is
608 22.
609 .It Cm ProxyCommand
610 Specifies the command to use to connect to the server.  The command
611 string extends to the end of the line, and is executed with /bin/sh.
612 In the command string, %h will be substituted by the host name to
613 connect and %p by the port.  The command can be basically anything,
614 and should read from its stdin and write to its stdout.  It should
615 eventually connect an
616 .Xr sshd 8
617 server running on some machine, or execute
618 .Ic sshd -i
619 somewhere.  Host key management will be done using the
620 HostName of the host being connected (defaulting to the name typed by
621 the user).
622 .Pp
623 .It Cm RemoteForward
624 Specifies that a TCP/IP port on the remote machine be forwarded over
625 the secure channel to given host:port from the local machine.  The
626 first argument must be a port number, and the second must be
627 host:port.  Multiple forwardings may be specified, and additional
628 forwardings can be given on the command line.  Only the root can
629 forward privileged ports.
630 .It Cm RhostsAuthentication
631 Specifies whether to try rhosts based authentication.  Note that this
632 declaration only affects the client side and has no effect whatsoever
633 on security.  Disabling rhosts authentication may reduce
634 authentication time on slow connections when rhosts authentication is
635 not used.  Most servers do not permit RhostsAuthentication because it
636 is not secure (see RhostsRSAAuthentication).  The argument to this
637 keyword must be
638 .Dq yes
639 or
640 .Dq no .
641 .It Cm RhostsRSAAuthentication
642 Specifies whether to try rhosts based authentication with RSA host
643 authentication.  This is the primary authentication method for most
644 sites.  The argument must be
645 .Dq yes
646 or
647 .Dq no .
648 .It Cm RSAAuthentication
649 Specifies whether to try RSA authentication.  The argument to this
650 keyword must be
651 .Dq yes
652 or
653 .Dq no .
654 RSA authentication will only be
655 attempted if the identity file exists, or an authentication agent is
656 running.
657 .It Cm CheckHostIP
658 If this flag is set to
659 .Dq yes ,
660 ssh will additionally check the host ip address in the
661 .Pa known_hosts
662 file. This allows ssh to detect if a host key changed due to DNS spoofing.
663 If the option is set to
664 .Dq no ,
665 the check will not be executed.
666 .It Cm StrictHostKeyChecking
667 If this flag is set to
668 .Dq yes , 
669 .Nm
670 ssh will never automatically add host keys to the
671 .Pa $HOME/.ssh/known_hosts
672 file, and refuses to connect hosts whose host key has changed.  This
673 provides maximum protection against trojan horse attacks.  However, it
674 can be somewhat annoying if you don't have good
675 .Pa /etc/ssh_known_hosts
676 files installed and frequently
677 connect new hosts.  Basically this option forces the user to manually
678 add any new hosts.  Normally this option is disabled, and new hosts
679 will automatically be added to the known host files.  The host keys of
680 known hosts will be verified automatically in either case.  The
681 argument must be
682 .Dq yes
683 or
684 .Dq no .
685 .It Cm User
686 Specifies the user to log in as.  This can be useful if you have a
687 different user name in different machines.  This saves the trouble of
688 having to remember to give the user name on the command line.
689 .It Cm UserKnownHostsFile
690 Specifies a file to use instead of
691 .Pa $HOME/.ssh/known_hosts .
692 .It Cm UsePrivilegedPort
693 Specifies whether to use a privileged port for outgoing connections.
694 The argument must be
695 .Dq yes
696 or
697 .Dq no .
698 The default is
699 .Dq yes .
700 Note that setting this option to
701 .Dq no
702 turns of
703 .Cm RhostsAuthentication
704 and
705 .Cm RhostsRSAAuthentication .
706 .It Cm UseRsh
707 Specifies that rlogin/rsh should be used for this host.  It is
708 possible that the host does not at all support the
709 .Nm
710 protocol.  This causes
711 .Nm
712 to immediately exec 
713 .Xr rsh 1 .
714 All other options (except
715 .Cm HostName )
716 are ignored if this has been specified.  The argument must be
717 .Dq yes
718 or
719 .Dq no .
720 .Sh ENVIRONMENT
721 .Nm
722 will normally set the following environment variables:
723 .Bl -tag -width Ds
724 .It Ev DISPLAY
725 The
726 .Ev DISPLAY
727 variable indicates the location of the X11 server.  It is
728 automatically set by 
729 .Nm
730 to point to a value of the form
731 .Dq hostname:n
732 where hostname indicates
733 the host where the shell runs, and n is an integer >= 1.  Ssh uses
734 this special value to forward X11 connections over the secure
735 channel.  The user should normally not set DISPLAY explicitly, as that
736 will render the X11 connection insecure (and will require the user to
737 manually copy any required authorization cookies).
738 .It Ev HOME
739 Set to the path of the user's home directory.
740 .It Ev LOGNAME
741 Synonym for
742 .Ev USER ;
743 set for compatibility with systems that use this variable.
744 .It Ev MAIL
745 Set to point the user's mailbox.
746 .It Ev  PATH
747 Set to the default
748 .Ev PATH ,
749 as specified when compiling
750 .Nm ssh .
751 .It Ev SSH_AUTH_SOCK
752 indicates the path of a unix-domain socket used to communicate with the
753 agent.
754 .It Ev SSH_CLIENT
755 Identifies the client end of the connection.  The variable contains
756 three space-separated values: client ip-address, client port number,
757 and server port number.
758 .It Ev SSH_TTY
759 This is set to the name of the tty (path to the device) associated
760 with the current shell or command.  If the current session has no tty,
761 this variable is not set.
762 .It Ev TZ
763 The timezone variable is set to indicate the present timezone if it
764 was set when the daemon was started (e.i., the daemon passes the value
765 on to new connections).
766 .It Ev USER
767 Set to the name of the user logging in.
768 .El
769 .Pp
770 Additionally, 
771 .Nm
772 reads 
773 .Pa $HOME/.ssh/environment , 
774 and adds lines of the format
775 .Dq VARNAME=value
776 to the environment.
777 .Sh FILES
778 .Bl -tag -width $HOME/.ssh/known_hosts
779 .It Pa $HOME/.ssh/known_hosts
780 Records host keys for all hosts the user has logged into (that are not
781 in
782 .Pa /etc/ssh_known_hosts ) .
783 See
784 .Xr sshd 8 .
785 .It Pa $HOME/.ssh/random_seed
786 Used for seeding the random number generator.  This file contains
787 sensitive data and should read/write for the user and not accessible
788 for others.  This file is created the first time the program is run
789 and updated automatically.  The user should never need to read or
790 modify this file.
791 .It Pa $HOME/.ssh/identity
792 Contains the RSA authentication identity of the user.  This file
793 contains sensitive data and should be readable by the user but not
794 accessible by others (read/write/execute).
795 Note that
796 .Nm
797 ignores this file if it is accessible by others.
798 It is possible to specify a passphrase when
799 generating the key; the passphrase will be used to encrypt the
800 sensitive part of this file using 3DES.
801 .It Pa $HOME/.ssh/identity.pub 
802 Contains the public key for authentication (public part of the
803 identity file in human-readable form).  The contents of this file
804 should be added to
805 .Pa $HOME/.ssh/authorized_keys
806 on all machines
807 where you wish to log in using RSA authentication.  This file is not
808 sensitive and can (but need not) be readable by anyone.  This file is
809 never used automatically and is not necessary; it is only provided for
810 the convenience of the user.
811 .It Pa $HOME/.ssh/config
812 This is the per-user configuration file.  The format of this file is
813 described above.  This file is used by the
814 .Nm
815 client.  This file does not usually contain any sensitive information,
816 but the recommended permissions are read/write for the user, and not
817 accessible by others.
818 .It Pa $HOME/.ssh/authorized_keys
819 Lists the RSA keys that can be used for logging in as this user.  The
820 format of this file is described in the
821 .Xr sshd 8
822 manual page.  In the simplest form the format is the same as the .pub
823 identity files (that is, each line contains the number of bits in
824 modulus, public exponent, modulus, and comment fields, separated by
825 spaces).  This file is not highly sensitive, but the recommended
826 permissions are read/write for the user, and not accessible by others.
827 .It Pa /etc/ssh_known_hosts
828 Systemwide list of known host keys.  This file should be prepared by the
829 system administrator to contain the public host keys of all machines in the
830 organization.  This file should be world-readable.  This file contains
831 public keys, one per line, in the following format (fields separated
832 by spaces): system name, number of bits in modulus, public exponent,
833 modulus, and optional comment field.  When different names are used
834 for the same machine, all such names should be listed, separated by
835 commas.  The format is described on the
836 .Xr sshd 8
837 manual page.
838 .Pp
839 The canonical system name (as returned by name servers) is used by
840 .Xr sshd 8
841 to verify the client host when logging in; other names are needed because
842 .Nm
843 does not convert the user-supplied name to a canonical name before
844 checking the key, because someone with access to the name servers
845 would then be able to fool host authentication.
846 .It Pa /etc/ssh_config
847 Systemwide configuration file.  This file provides defaults for those
848 values that are not specified in the user's configuration file, and
849 for those users who do not have a configuration file.  This file must
850 be world-readable.
851 .It Pa $HOME/.rhosts
852 This file is used in
853 .Pa \&.rhosts
854 authentication to list the
855 host/user pairs that are permitted to log in.  (Note that this file is
856 also used by rlogin and rsh, which makes using this file insecure.)
857 Each line of the file contains a host name (in the canonical form
858 returned by name servers), and then a user name on that host,
859 separated by a space.  One some machines this file may need to be
860 world-readable if the user's home directory is on a NFS partition,
861 because
862 .Xr sshd 8
863 reads it as root.  Additionally, this file must be owned by the user,
864 and must not have write permissions for anyone else.  The recommended
865 permission for most machines is read/write for the user, and not
866 accessible by others.
867 .Pp
868 Note that by default
869 .Xr sshd 8
870 will be installed so that it requires successful RSA host
871 authentication before permitting \s+2.\s0rhosts authentication.  If your
872 server machine does not have the client's host key in
873 .Pa /etc/ssh_known_hosts ,
874 you can store it in
875 .Pa $HOME/.ssh/known_hosts .
876 The easiest way to do this is to
877 connect back to the client from the server machine using ssh; this
878 will automatically add the host key inxi
879 .Pa $HOME/.ssh/known_hosts .
880 .It Pa $HOME/.shosts
881 This file is used exactly the same way as
882 .Pa \&.rhosts .
883 The purpose for
884 having this file is to be able to use rhosts authentication with
885 .Nm
886 without permitting login with
887 .Xr rlogin 1
888 or
889 .Xr rsh 1 .
890 .It Pa /etc/hosts.equiv
891 This file is used during
892 .Pa \&.rhosts authentication.  It contains
893 canonical hosts names, one per line (the full format is described on
894 the
895 .Xr sshd 8
896 manual page).  If the client host is found in this file, login is
897 automatically permitted provided client and server user names are the
898 same.  Additionally, successful RSA host authentication is normally
899 required.  This file should only be writable by root.
900 .It Pa /etc/shosts.equiv
901 This file is processed exactly as 
902 .Pa /etc/hosts.equiv .
903 This file may be useful to permit logins using
904 .Nm
905 but not using rsh/rlogin.
906 .It Pa /etc/sshrc
907 Commands in this file are executed by
908 .Nm
909 when the user logs in just before the user's shell (or command) is started.
910 See the
911 .Xr sshd 8
912 manual page for more information.
913 .It Pa $HOME/.ssh/rc
914 Commands in this file are executed by
915 .Nm
916 when the user logs in just before the user's shell (or command) is
917 started.
918 See the 
919 .Xr sshd 8
920 manual page for more information.
921 .It Pa libcrypto.so.X.1
922 A version of this library which includes support for the RSA algorithm
923 is required for proper operation.
924 .Sh AUTHOR
925 Tatu Ylonen <ylo@cs.hut.fi>
926 .Pp
927 Issues can be found from the SSH WWW home page:
928 .Pp
929 .Dl http://www.cs.hut.fi/ssh
930 .Pp
931 OpenSSH
932 is a derivative of the original (free) ssh 1.2.12 release, but with bugs
933 removed and newer features re-added.   Rapidly after the 1.2.12 release,
934 newer versions bore successively more restrictive licenses.  This version
935 of OpenSSH
936 .Bl -bullet
937 .It
938 has all components of a restrictive nature (ie. patents, see
939 .Xr ssl 8 )
940 directly removed from the source code; any licensed or patented components
941 are chosen from
942 external libraries.
943 .It
944 has been updated to support ssh protocol 1.5.
945 .It
946 contains added support for 
947 .Xr kerberos 8
948 authentication and ticket passing.
949 .It
950 supports one-time password authentication with
951 .Xr skey 1 .
952 .El
953 .Pp
954 The libraries described in
955 .Xr ssl 8
956 are required for proper operation.
957 .Sh SEE ALSO
958 .Xr rlogin 1 ,
959 .Xr rsh 1 ,
960 .Xr scp 1 ,
961 .Xr ssh-add 1 ,
962 .Xr ssh-agent 1 ,
963 .Xr ssh-keygen 1 ,
964 .Xr telnet 1 ,
965 .Xr sshd 8 ,
966 .Xr ssl 8
This page took 0.105796 seconds and 5 git commands to generate.