]> andersk Git - openssh.git/blame_incremental - ssh_config.5
- jmc@cvs.openbsd.org 2006/02/26 18:01:13
[openssh.git] / ssh_config.5
... / ...
CommitLineData
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_config.5,v 1.86 2006/02/26 17:17:18 jmc Exp $
38.Dd September 25, 1999
39.Dt SSH_CONFIG 5
40.Os
41.Sh NAME
42.Nm ssh_config
43.Nd OpenSSH SSH client configuration files
44.Sh SYNOPSIS
45.Bl -tag -width Ds -compact
46.It Pa ~/.ssh/config
47.It Pa /etc/ssh/ssh_config
48.El
49.Sh DESCRIPTION
50.Xr ssh 1
51obtains configuration data from the following sources in
52the following order:
53.Pp
54.Bl -enum -offset indent -compact
55.It
56command-line options
57.It
58user's configuration file
59.Pq Pa ~/.ssh/config
60.It
61system-wide configuration file
62.Pq Pa /etc/ssh/ssh_config
63.El
64.Pp
65For each parameter, the first obtained value
66will be used.
67The configuration files contain sections separated by
68.Dq Host
69specifications, and that section is only applied for hosts that
70match one of the patterns given in the specification.
71The matched host name is the one given on the command line.
72.Pp
73Since the first obtained value for each parameter is used, more
74host-specific declarations should be given near the beginning of the
75file, and general defaults at the end.
76.Pp
77The configuration file has the following format:
78.Pp
79Empty lines and lines starting with
80.Ql #
81are comments.
82Otherwise a line is of the format
83.Dq keyword arguments .
84Configuration options may be separated by whitespace or
85optional whitespace and exactly one
86.Ql = ;
87the latter format is useful to avoid the need to quote whitespace
88when specifying configuration options using the
89.Nm ssh ,
90.Nm scp
91and
92.Nm sftp
93.Fl o
94option.
95.Pp
96The possible
97keywords and their meanings are as follows (note that
98keywords are case-insensitive and arguments are case-sensitive):
99.Bl -tag -width Ds
100.It Cm Host
101Restricts the following declarations (up to the next
102.Cm Host
103keyword) to be only for those hosts that match one of the patterns
104given after the keyword.
105A single
106.Ql *
107as a pattern can be used to provide global
108defaults for all hosts.
109The host is the
110.Ar hostname
111argument given on the command line (i.e. the name is not converted to
112a canonicalized host name before matching).
113.Pp
114See
115.Sx PATTERNS
116for more information on patterns.
117.It Cm AddressFamily
118Specifies which address family to use when connecting.
119Valid arguments are
120.Dq any ,
121.Dq inet
122(use IPv4 only), or
123.Dq inet6
124(use IPv6 only).
125.It Cm BatchMode
126If set to
127.Dq yes ,
128passphrase/password querying will be disabled.
129This option is useful in scripts and other batch jobs where no user
130is present to supply the password.
131The argument must be
132.Dq yes
133or
134.Dq no .
135The default is
136.Dq no .
137.It Cm BindAddress
138Use the specified address on the local machine as the source address of
139the connection.
140Only useful on systems with more than one address.
141Note that this option does not work if
142.Cm UsePrivilegedPort
143is set to
144.Dq yes .
145.It Cm ChallengeResponseAuthentication
146Specifies whether to use challenge-response authentication.
147The argument to this keyword must be
148.Dq yes
149or
150.Dq no .
151The default is
152.Dq yes .
153.It Cm CheckHostIP
154If this flag is set to
155.Dq yes ,
156.Xr ssh 1
157will additionally check the host IP address in the
158.Pa known_hosts
159file.
160This allows ssh to detect if a host key changed due to DNS spoofing.
161If the option is set to
162.Dq no ,
163the check will not be executed.
164The default is
165.Dq yes .
166.It Cm Cipher
167Specifies the cipher to use for encrypting the session
168in protocol version 1.
169Currently,
170.Dq blowfish ,
171.Dq 3des ,
172and
173.Dq des
174are supported.
175.Ar des
176is only supported in the
177.Xr ssh 1
178client for interoperability with legacy protocol 1 implementations
179that do not support the
180.Ar 3des
181cipher.
182Its use is strongly discouraged due to cryptographic weaknesses.
183The default is
184.Dq 3des .
185.It Cm Ciphers
186Specifies the ciphers allowed for protocol version 2
187in order of preference.
188Multiple ciphers must be comma-separated.
189The supported ciphers are
190.Dq 3des-cbc ,
191.Dq aes128-cbc ,
192.Dq aes192-cbc ,
193.Dq aes256-cbc ,
194.Dq aes128-ctr ,
195.Dq aes192-ctr ,
196.Dq aes256-ctr ,
197.Dq arcfour128 ,
198.Dq arcfour256 ,
199.Dq arcfour ,
200.Dq blowfish-cbc ,
201and
202.Dq cast128-cbc .
203The default is:
204.Bd -literal -offset 3n
205aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,
206arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,
207aes192-ctr,aes256-ctr
208.Ed
209.It Cm ClearAllForwardings
210Specifies that all local, remote, and dynamic port forwardings
211specified in the configuration files or on the command line be
212cleared.
213This option is primarily useful when used from the
214.Xr ssh 1
215command line to clear port forwardings set in
216configuration files, and is automatically set by
217.Xr scp 1
218and
219.Xr sftp 1 .
220The argument must be
221.Dq yes
222or
223.Dq no .
224The default is
225.Dq no .
226.It Cm Compression
227Specifies whether to use compression.
228The argument must be
229.Dq yes
230or
231.Dq no .
232The default is
233.Dq no .
234.It Cm CompressionLevel
235Specifies the compression level to use if compression is enabled.
236The argument must be an integer from 1 (fast) to 9 (slow, best).
237The default level is 6, which is good for most applications.
238The meaning of the values is the same as in
239.Xr gzip 1 .
240Note that this option applies to protocol version 1 only.
241.It Cm ConnectionAttempts
242Specifies the number of tries (one per second) to make before exiting.
243The argument must be an integer.
244This may be useful in scripts if the connection sometimes fails.
245The default is 1.
246.It Cm ConnectTimeout
247Specifies the timeout (in seconds) used when connecting to the
248SSH server, instead of using the default system TCP timeout.
249This value is used only when the target is down or really unreachable,
250not when it refuses the connection.
251.It Cm ControlMaster
252Enables the sharing of multiple sessions over a single network connection.
253When set to
254.Dq yes ,
255.Xr ssh 1
256will listen for connections on a control socket specified using the
257.Cm ControlPath
258argument.
259Additional sessions can connect to this socket using the same
260.Cm ControlPath
261with
262.Cm ControlMaster
263set to
264.Dq no
265(the default).
266These sessions will try to reuse the master instance's network connection
267rather than initiating new ones, but will fall back to connecting normally
268if the control socket does not exist, or is not listening.
269.Pp
270Setting this to
271.Dq ask
272will cause ssh
273to listen for control connections, but require confirmation using the
274.Ev SSH_ASKPASS
275program before they are accepted (see
276.Xr ssh-add 1
277for details).
278If the
279.Cm ControlPath
280cannot be opened,
281ssh will continue without connecting to a master instance.
282.Pp
283X11 and
284.Xr ssh-agent 1
285forwarding is supported over these multiplexed connections, however the
286display and agent forwarded will be the one belonging to the master
287connection i.e. it is not possible to forward multiple displays or agents.
288.Pp
289Two additional options allow for opportunistic multiplexing: try to use a
290master connection but fall back to creating a new one if one does not already
291exist.
292These options are:
293.Dq auto
294and
295.Dq autoask .
296The latter requires confirmation like the
297.Dq ask
298option.
299.It Cm ControlPath
300Specify the path to the control socket used for connection sharing as described
301in the
302.Cm ControlMaster
303section above or the string
304.Dq none
305to disable connection sharing.
306In the path,
307.Ql %l
308will be substituted by the local host name,
309.Ql %h
310will be substituted by the target host name,
311.Ql %p
312the port, and
313.Ql %r
314by the remote login username.
315It is recommended that any
316.Cm ControlPath
317used for opportunistic connection sharing include
318at least %h, %p, and %r.
319This ensures that shared connections are uniquely identified.
320.It Cm DynamicForward
321Specifies that a TCP port on the local machine be forwarded
322over the secure channel, and the application
323protocol is then used to determine where to connect to from the
324remote machine.
325.Pp
326The argument must be
327.Sm off
328.Oo Ar bind_address : Oc Ar port .
329.Sm on
330IPv6 addresses can be specified by enclosing addresses in square brackets or
331by using an alternative syntax:
332.Oo Ar bind_address Ns / Oc Ns Ar port .
333By default, the local port is bound in accordance with the
334.Cm GatewayPorts
335setting.
336However, an explicit
337.Ar bind_address
338may be used to bind the connection to a specific address.
339The
340.Ar bind_address
341of
342.Dq localhost
343indicates that the listening port be bound for local use only, while an
344empty address or
345.Sq *
346indicates that the port should be available from all interfaces.
347.Pp
348Currently the SOCKS4 and SOCKS5 protocols are supported, and
349.Xr ssh 1
350will act as a SOCKS server.
351Multiple forwardings may be specified, and
352additional forwardings can be given on the command line.
353Only the superuser can forward privileged ports.
354.It Cm EnableSSHKeysign
355Setting this option to
356.Dq yes
357in the global client configuration file
358.Pa /etc/ssh/ssh_config
359enables the use of the helper program
360.Xr ssh-keysign 8
361during
362.Cm HostbasedAuthentication .
363The argument must be
364.Dq yes
365or
366.Dq no .
367The default is
368.Dq no .
369This option should be placed in the non-hostspecific section.
370See
371.Xr ssh-keysign 8
372for more information.
373.It Cm EscapeChar
374Sets the escape character (default:
375.Ql ~ ) .
376The escape character can also
377be set on the command line.
378The argument should be a single character,
379.Ql ^
380followed by a letter, or
381.Dq none
382to disable the escape
383character entirely (making the connection transparent for binary
384data).
385.It Cm ForwardAgent
386Specifies whether the connection to the authentication agent (if any)
387will be forwarded to the remote machine.
388The argument must be
389.Dq yes
390or
391.Dq no .
392The default is
393.Dq no .
394.Pp
395Agent forwarding should be enabled with caution.
396Users with the ability to bypass file permissions on the remote host
397(for the agent's Unix-domain socket)
398can access the local agent through the forwarded connection.
399An attacker cannot obtain key material from the agent,
400however they can perform operations on the keys that enable them to
401authenticate using the identities loaded into the agent.
402.It Cm ForwardX11
403Specifies whether X11 connections will be automatically redirected
404over the secure channel and
405.Ev DISPLAY
406set.
407The argument must be
408.Dq yes
409or
410.Dq no .
411The default is
412.Dq no .
413.Pp
414X11 forwarding should be enabled with caution.
415Users with the ability to bypass file permissions on the remote host
416(for the user's X11 authorization database)
417can access the local X11 display through the forwarded connection.
418An attacker may then be able to perform activities such as keystroke monitoring
419if the
420.Cm ForwardX11Trusted
421option is also enabled.
422.It Cm ForwardX11Trusted
423If this option is set to
424.Dq yes ,
425remote X11 clients will have full access to the original X11 display.
426.Pp
427If this option is set to
428.Dq no ,
429remote X11 clients will be considered untrusted and prevented
430from stealing or tampering with data belonging to trusted X11
431clients.
432Furthermore, the
433.Xr xauth 1
434token used for the session will be set to expire after 20 minutes.
435Remote clients will be refused access after this time.
436.Pp
437The default is
438.Dq no .
439.Pp
440See the X11 SECURITY extension specification for full details on
441the restrictions imposed on untrusted clients.
442.It Cm GatewayPorts
443Specifies whether remote hosts are allowed to connect to local
444forwarded ports.
445By default,
446.Xr ssh 1
447binds local port forwardings to the loopback address.
448This prevents other remote hosts from connecting to forwarded ports.
449.Cm GatewayPorts
450can be used to specify that ssh
451should bind local port forwardings to the wildcard address,
452thus allowing remote hosts to connect to forwarded ports.
453The argument must be
454.Dq yes
455or
456.Dq no .
457The default is
458.Dq no .
459.It Cm GlobalKnownHostsFile
460Specifies a file to use for the global
461host key database instead of
462.Pa /etc/ssh/ssh_known_hosts .
463.It Cm GSSAPIAuthentication
464Specifies whether user authentication based on GSSAPI is allowed.
465The default is
466.Dq no .
467Note that this option applies to protocol version 2 only.
468.It Cm GSSAPIDelegateCredentials
469Forward (delegate) credentials to the server.
470The default is
471.Dq no .
472Note that this option applies to protocol version 2 only.
473.It Cm HashKnownHosts
474Indicates that
475.Xr ssh 1
476should hash host names and addresses when they are added to
477.Pa ~/.ssh/known_hosts .
478These hashed names may be used normally by
479.Xr ssh 1
480and
481.Xr sshd 8 ,
482but they do not reveal identifying information should the file's contents
483be disclosed.
484The default is
485.Dq no .
486Note that hashing of names and addresses will not be retrospectively applied
487to existing known hosts files, but these may be manually hashed using
488.Xr ssh-keygen 1 .
489.It Cm HostbasedAuthentication
490Specifies whether to try rhosts based authentication with public key
491authentication.
492The argument must be
493.Dq yes
494or
495.Dq no .
496The default is
497.Dq no .
498This option applies to protocol version 2 only and
499is similar to
500.Cm RhostsRSAAuthentication .
501.It Cm HostKeyAlgorithms
502Specifies the protocol version 2 host key algorithms
503that the client wants to use in order of preference.
504The default for this option is:
505.Dq ssh-rsa,ssh-dss .
506.It Cm HostKeyAlias
507Specifies an alias that should be used instead of the
508real host name when looking up or saving the host key
509in the host key database files.
510This option is useful for tunneling SSH connections
511or for multiple servers running on a single host.
512.It Cm HostName
513Specifies the real host name to log into.
514This can be used to specify nicknames or abbreviations for hosts.
515The default is the name given on the command line.
516Numeric IP addresses are also permitted (both on the command line and in
517.Cm HostName
518specifications).
519.It Cm IdentitiesOnly
520Specifies that
521.Xr ssh 1
522should only use the authentication identity files configured in the
523.Nm
524files,
525even if
526.Xr ssh-agent 1
527offers more identities.
528The argument to this keyword must be
529.Dq yes
530or
531.Dq no .
532This option is intended for situations where ssh-agent
533offers many different identities.
534The default is
535.Dq no .
536.It Cm IdentityFile
537Specifies a file from which the user's RSA or DSA authentication identity
538is read.
539The default is
540.Pa ~/.ssh/identity
541for protocol version 1, and
542.Pa ~/.ssh/id_rsa
543and
544.Pa ~/.ssh/id_dsa
545for protocol version 2.
546Additionally, any identities represented by the authentication agent
547will be used for authentication.
548The file name may use the tilde
549syntax to refer to a user's home directory.
550It is possible to have
551multiple identity files specified in configuration files; all these
552identities will be tried in sequence.
553.It Cm KbdInteractiveDevices
554Specifies the list of methods to use in keyboard-interactive authentication.
555Multiple method names must be comma-separated.
556The default is to use the server specified list.
557The methods available vary depending on what the server supports.
558For an OpenSSH server,
559it may be zero or more of:
560.Dq bsdauth ,
561.Dq pam ,
562and
563.Dq skey .
564.It Cm LocalCommand
565Specifies a command to execute on the local machine after successfully
566connecting to the server.
567The command string extends to the end of the line, and is executed with
568.Pa /bin/sh .
569This directive is ignored unless
570.Cm PermitLocalCommand
571has been enabled.
572.It Cm LocalForward
573Specifies that a TCP port on the local machine be forwarded over
574the secure channel to the specified host and port from the remote machine.
575The first argument must be
576.Sm off
577.Oo Ar bind_address : Oc Ar port
578.Sm on
579and the second argument must be
580.Ar host : Ns Ar hostport .
581IPv6 addresses can be specified by enclosing addresses in square brackets or
582by using an alternative syntax:
583.Oo Ar bind_address Ns / Oc Ns Ar port
584and
585.Ar host Ns / Ns Ar hostport .
586Multiple forwardings may be specified, and additional forwardings can be
587given on the command line.
588Only the superuser can forward privileged ports.
589By default, the local port is bound in accordance with the
590.Cm GatewayPorts
591setting.
592However, an explicit
593.Ar bind_address
594may be used to bind the connection to a specific address.
595The
596.Ar bind_address
597of
598.Dq localhost
599indicates that the listening port be bound for local use only, while an
600empty address or
601.Sq *
602indicates that the port should be available from all interfaces.
603.It Cm LogLevel
604Gives the verbosity level that is used when logging messages from
605.Xr ssh 1 .
606The possible values are:
607QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.
608The default is INFO.
609DEBUG and DEBUG1 are equivalent.
610DEBUG2 and DEBUG3 each specify higher levels of verbose output.
611.It Cm MACs
612Specifies the MAC (message authentication code) algorithms
613in order of preference.
614The MAC algorithm is used in protocol version 2
615for data integrity protection.
616Multiple algorithms must be comma-separated.
617The default is:
618.Dq hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 .
619.It Cm NoHostAuthenticationForLocalhost
620This option can be used if the home directory is shared across machines.
621In this case localhost will refer to a different machine on each of
622the machines and the user will get many warnings about changed host keys.
623However, this option disables host authentication for localhost.
624The argument to this keyword must be
625.Dq yes
626or
627.Dq no .
628The default is to check the host key for localhost.
629.It Cm NumberOfPasswordPrompts
630Specifies the number of password prompts before giving up.
631The argument to this keyword must be an integer.
632The default is 3.
633.It Cm PasswordAuthentication
634Specifies whether to use password authentication.
635The argument to this keyword must be
636.Dq yes
637or
638.Dq no .
639The default is
640.Dq yes .
641.It Cm PermitLocalCommand
642Allow local command execution via the
643.Ic LocalCommand
644option or using the
645.Ic !\& Ns Ar command
646escape sequence in
647.Xr ssh 1 .
648The argument must be
649.Dq yes
650or
651.Dq no .
652The default is
653.Dq no .
654.It Cm Port
655Specifies the port number to connect on the remote host.
656The default is 22.
657.It Cm PreferredAuthentications
658Specifies the order in which the client should try protocol 2
659authentication methods.
660This allows a client to prefer one method (e.g.\&
661.Cm keyboard-interactive )
662over another method (e.g.\&
663.Cm password )
664The default for this option is:
665.Dq hostbased,publickey,keyboard-interactive,password .
666.It Cm Protocol
667Specifies the protocol versions
668.Xr ssh 1
669should support in order of preference.
670The possible values are
671.Sq 1
672and
673.Sq 2 .
674Multiple versions must be comma-separated.
675The default is
676.Dq 2,1 .
677This means that ssh
678tries version 2 and falls back to version 1
679if version 2 is not available.
680.It Cm ProxyCommand
681Specifies the command to use to connect to the server.
682The command
683string extends to the end of the line, and is executed with
684.Pa /bin/sh .
685In the command string,
686.Ql %h
687will be substituted by the host name to
688connect and
689.Ql %p
690by the port.
691The command can be basically anything,
692and should read from its standard input and write to its standard output.
693It should eventually connect an
694.Xr sshd 8
695server running on some machine, or execute
696.Ic sshd -i
697somewhere.
698Host key management will be done using the
699HostName of the host being connected (defaulting to the name typed by
700the user).
701Setting the command to
702.Dq none
703disables this option entirely.
704Note that
705.Cm CheckHostIP
706is not available for connects with a proxy command.
707.Pp
708This directive is useful in conjunction with
709.Xr nc 1
710and its proxy support.
711For example, the following directive would connect via an HTTP proxy at
712192.0.2.0:
713.Bd -literal -offset 3n
714ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
715.Ed
716.It Cm PubkeyAuthentication
717Specifies whether to try public key authentication.
718The argument to this keyword must be
719.Dq yes
720or
721.Dq no .
722The default is
723.Dq yes .
724This option applies to protocol version 2 only.
725.It Cm RekeyLimit
726Specifies the maximum amount of data that may be transmitted before the
727session key is renegotiated.
728The argument is the number of bytes, with an optional suffix of
729.Sq K ,
730.Sq M ,
731or
732.Sq G
733to indicate Kilobytes, Megabytes, or Gigabytes, respectively.
734The default is between
735.Sq 1G
736and
737.Sq 4G ,
738depending on the cipher.
739This option applies to protocol version 2 only.
740.It Cm RemoteForward
741Specifies that a TCP port on the remote machine be forwarded over
742the secure channel to the specified host and port from the local machine.
743The first argument must be
744.Sm off
745.Oo Ar bind_address : Oc Ar port
746.Sm on
747and the second argument must be
748.Ar host : Ns Ar hostport .
749IPv6 addresses can be specified by enclosing addresses in square brackets
750or by using an alternative syntax:
751.Oo Ar bind_address Ns / Oc Ns Ar port
752and
753.Ar host Ns / Ns Ar hostport .
754Multiple forwardings may be specified, and additional
755forwardings can be given on the command line.
756Only the superuser can forward privileged ports.
757.Pp
758If the
759.Ar bind_address
760is not specified, the default is to only bind to loopback addresses.
761If the
762.Ar bind_address
763is
764.Ql *
765or an empty string, then the forwarding is requested to listen on all
766interfaces.
767Specifying a remote
768.Ar bind_address
769will only succeed if the server's
770.Cm GatewayPorts
771option is enabled (see
772.Xr sshd_config 5 ) .
773.It Cm RhostsRSAAuthentication
774Specifies whether to try rhosts based authentication with RSA host
775authentication.
776The argument must be
777.Dq yes
778or
779.Dq no .
780The default is
781.Dq no .
782This option applies to protocol version 1 only and requires
783.Xr ssh 1
784to be setuid root.
785.It Cm RSAAuthentication
786Specifies whether to try RSA authentication.
787The argument to this keyword must be
788.Dq yes
789or
790.Dq no .
791RSA authentication will only be
792attempted if the identity file exists, or an authentication agent is
793running.
794The default is
795.Dq yes .
796Note that this option applies to protocol version 1 only.
797.It Cm SendEnv
798Specifies what variables from the local
799.Xr environ 7
800should be sent to the server.
801Note that environment passing is only supported for protocol 2.
802The server must also support it, and the server must be configured to
803accept these environment variables.
804Refer to
805.Cm AcceptEnv
806in
807.Xr sshd_config 5
808for how to configure the server.
809Variables are specified by name, which may contain wildcard characters.
810Multiple environment variables may be separated by whitespace or spread
811across multiple
812.Cm SendEnv
813directives.
814The default is not to send any environment variables.
815.Pp
816See
817.Sx PATTERNS
818for more information on patterns.
819.It Cm ServerAliveCountMax
820Sets the number of server alive messages (see below) which may be
821sent without
822.Xr ssh 1
823receiving any messages back from the server.
824If this threshold is reached while server alive messages are being sent,
825ssh will disconnect from the server, terminating the session.
826It is important to note that the use of server alive messages is very
827different from
828.Cm TCPKeepAlive
829(below).
830The server alive messages are sent through the encrypted channel
831and therefore will not be spoofable.
832The TCP keepalive option enabled by
833.Cm TCPKeepAlive
834is spoofable.
835The server alive mechanism is valuable when the client or
836server depend on knowing when a connection has become inactive.
837.Pp
838The default value is 3.
839If, for example,
840.Cm ServerAliveInterval
841(see below) is set to 15 and
842.Cm ServerAliveCountMax
843is left at the default, if the server becomes unresponsive,
844ssh will disconnect after approximately 45 seconds.
845.It Cm ServerAliveInterval
846Sets a timeout interval in seconds after which if no data has been received
847from the server,
848.Xr ssh 1
849will send a message through the encrypted
850channel to request a response from the server.
851The default
852is 0, indicating that these messages will not be sent to the server.
853This option applies to protocol version 2 only.
854.It Cm SmartcardDevice
855Specifies which smartcard device to use.
856The argument to this keyword is the device
857.Xr ssh 1
858should use to communicate with a smartcard used for storing the user's
859private RSA key.
860By default, no device is specified and smartcard support is not activated.
861.It Cm StrictHostKeyChecking
862If this flag is set to
863.Dq yes ,
864.Xr ssh 1
865will never automatically add host keys to the
866.Pa ~/.ssh/known_hosts
867file, and refuses to connect to hosts whose host key has changed.
868This provides maximum protection against trojan horse attacks,
869though it can be annoying when the
870.Pa /etc/ssh/ssh_known_hosts
871file is poorly maintained or when connections to new hosts are
872frequently made.
873This option forces the user to manually
874add all new hosts.
875If this flag is set to
876.Dq no ,
877ssh will automatically add new host keys to the
878user known hosts files.
879If this flag is set to
880.Dq ask ,
881new host keys
882will be added to the user known host files only after the user
883has confirmed that is what they really want to do, and
884ssh will refuse to connect to hosts whose host key has changed.
885The host keys of
886known hosts will be verified automatically in all cases.
887The argument must be
888.Dq yes ,
889.Dq no ,
890or
891.Dq ask .
892The default is
893.Dq ask .
894.It Cm TCPKeepAlive
895Specifies whether the system should send TCP keepalive messages to the
896other side.
897If they are sent, death of the connection or crash of one
898of the machines will be properly noticed.
899However, this means that
900connections will die if the route is down temporarily, and some people
901find it annoying.
902.Pp
903The default is
904.Dq yes
905(to send TCP keepalive messages), and the client will notice
906if the network goes down or the remote host dies.
907This is important in scripts, and many users want it too.
908.Pp
909To disable TCP keepalive messages, the value should be set to
910.Dq no .
911.It Cm Tunnel
912Request starting
913.Xr tun 4
914device forwarding between the client and the server.
915This option also allows requesting layer 2 (ethernet)
916instead of layer 3 (point-to-point) tunneling from the server.
917The argument must be
918.Dq yes ,
919.Dq point-to-point ,
920.Dq ethernet ,
921or
922.Dq no .
923The default is
924.Dq no .
925.It Cm TunnelDevice
926Force a specified
927.Xr tun 4
928device on the client.
929Without this option, the next available device will be used.
930.It Cm UsePrivilegedPort
931Specifies whether to use a privileged port for outgoing connections.
932The argument must be
933.Dq yes
934or
935.Dq no .
936The default is
937.Dq no .
938If set to
939.Dq yes ,
940.Xr ssh 1
941must be setuid root.
942Note that this option must be set to
943.Dq yes
944for
945.Cm RhostsRSAAuthentication
946with older servers.
947.It Cm User
948Specifies the user to log in as.
949This can be useful when a different user name is used on different machines.
950This saves the trouble of
951having to remember to give the user name on the command line.
952.It Cm UserKnownHostsFile
953Specifies a file to use for the user
954host key database instead of
955.Pa ~/.ssh/known_hosts .
956.It Cm VerifyHostKeyDNS
957Specifies whether to verify the remote key using DNS and SSHFP resource
958records.
959If this option is set to
960.Dq yes ,
961the client will implicitly trust keys that match a secure fingerprint
962from DNS.
963Insecure fingerprints will be handled as if this option was set to
964.Dq ask .
965If this option is set to
966.Dq ask ,
967information on fingerprint match will be displayed, but the user will still
968need to confirm new host keys according to the
969.Cm StrictHostKeyChecking
970option.
971The argument must be
972.Dq yes ,
973.Dq no ,
974or
975.Dq ask .
976The default is
977.Dq no .
978Note that this option applies to protocol version 2 only.
979.Pp
980See also
981.Sx VERIFYING HOST KEYS
982in
983.Xr ssh 1 .
984.It Cm XAuthLocation
985Specifies the full pathname of the
986.Xr xauth 1
987program.
988The default is
989.Pa /usr/X11R6/bin/xauth .
990.El
991.Sh PATTERNS
992A
993.Em pattern
994consists of zero or more non-whitespace characters,
995.Sq *
996(a wildcard that matches zero or more characters),
997or
998.Sq ?\&
999(a wildcard that matches exactly one character).
1000For example, to specify a set of declarations for any host in the
1001.Dq .co.uk
1002set of domains,
1003the following pattern could be used:
1004.Pp
1005.Dl Host *.co.uk
1006.Pp
1007The following pattern
1008would match any host in the 192.168.0.[0-9] network range:
1009.Pp
1010.Dl Host 192.168.0.?
1011.Pp
1012A
1013.Em pattern-list
1014is a comma-separated list of patterns.
1015Patterns within pattern-lists may be negated
1016by preceding them with an exclamation mark
1017.Pq Sq !\& .
1018For example,
1019to allow a key to be used from anywhere within an organisation
1020except from the
1021.Dq dialup
1022pool,
1023the following entry (in authorized_keys) could be used:
1024.Pp
1025.Dl from=\&"!*.dialup.example.com,*.example.com\&"
1026.Sh FILES
1027.Bl -tag -width Ds
1028.It Pa ~/.ssh/config
1029This is the per-user configuration file.
1030The format of this file is described above.
1031This file is used by the SSH client.
1032Because of the potential for abuse, this file must have strict permissions:
1033read/write for the user, and not accessible by others.
1034.It Pa /etc/ssh/ssh_config
1035Systemwide configuration file.
1036This file provides defaults for those
1037values that are not specified in the user's configuration file, and
1038for those users who do not have a configuration file.
1039This file must be world-readable.
1040.El
1041.Sh SEE ALSO
1042.Xr ssh 1
1043.Sh AUTHORS
1044OpenSSH is a derivative of the original and free
1045ssh 1.2.12 release by Tatu Ylonen.
1046Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
1047Theo de Raadt and Dug Song
1048removed many bugs, re-added newer features and
1049created OpenSSH.
1050Markus Friedl contributed the support for SSH
1051protocol versions 1.5 and 2.0.
This page took 0.042885 seconds and 5 git commands to generate.