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