Annotation of src/usr.bin/ssh/ssh_config.5, Revision 1.6.2.2
1.1 stevesk 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: .\"
1.6.2.2 ! brad 37: .\" $OpenBSD: ssh_config.5,v 1.20 2003/09/02 18:50:06 jmc Exp $
1.1 stevesk 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 $HOME/.ssh/config
47: .It Pa /etc/ssh/ssh_config
48: .El
49: .Sh DESCRIPTION
50: .Nm ssh
51: obtains configuration data from the following sources in
52: the following order:
1.2 stevesk 53: .Bl -enum -offset indent -compact
54: .It
55: command-line options
56: .It
57: user's configuration file
58: .Pq Pa $HOME/.ssh/config
59: .It
60: system-wide configuration file
61: .Pq Pa /etc/ssh/ssh_config
62: .El
1.1 stevesk 63: .Pp
64: For each parameter, the first obtained value
65: will be used.
66: The configuration files contain sections bracketed by
67: .Dq Host
68: specifications, and that section is only applied for hosts that
69: match one of the patterns given in the specification.
70: The matched host name is the one given on the command line.
71: .Pp
72: Since the first obtained value for each parameter is used, more
73: host-specific declarations should be given near the beginning of the
74: file, and general defaults at the end.
75: .Pp
76: The configuration file has the following format:
77: .Pp
78: Empty lines and lines starting with
79: .Ql #
80: are comments.
81: .Pp
82: Otherwise a line is of the format
83: .Dq keyword arguments .
84: Configuration options may be separated by whitespace or
85: optional whitespace and exactly one
86: .Ql = ;
87: the latter format is useful to avoid the need to quote whitespace
88: when specifying configuration options using the
89: .Nm ssh ,
90: .Nm scp
91: and
92: .Nm sftp
93: .Fl o
94: option.
95: .Pp
96: The possible
97: keywords and their meanings are as follows (note that
98: keywords are case-insensitive and arguments are case-sensitive):
99: .Bl -tag -width Ds
100: .It Cm Host
101: Restricts the following declarations (up to the next
102: .Cm Host
103: keyword) to be only for those hosts that match one of the patterns
104: given after the keyword.
105: .Ql \&*
106: and
1.6.2.2 ! brad 107: .Ql \&?
1.1 stevesk 108: can be used as wildcards in the
109: patterns.
110: A single
111: .Ql \&*
112: as a pattern can be used to provide global
113: defaults for all hosts.
114: The host is the
115: .Ar hostname
116: argument given on the command line (i.e., the name is not converted to
117: a canonicalized host name before matching).
1.6.2.2 ! brad 118: .It Cm AddressFamily
! 119: Specifies which address family to use when connecting.
! 120: Valid arguments are
! 121: .Dq any ,
! 122: .Dq inet
! 123: (Use IPv4 only) or
! 124: .Dq inet6
! 125: (Use IPv6 only.)
1.1 stevesk 126: .It Cm BatchMode
127: If set to
128: .Dq yes ,
129: passphrase/password querying will be disabled.
130: This option is useful in scripts and other batch jobs where no user
131: is present to supply the password.
132: The argument must be
133: .Dq yes
134: or
135: .Dq no .
136: The default is
137: .Dq no .
138: .It Cm BindAddress
139: Specify the interface to transmit from on machines with multiple
140: interfaces or aliased addresses.
141: Note that this option does not work if
142: .Cm UsePrivilegedPort
143: is set to
144: .Dq yes .
145: .It Cm ChallengeResponseAuthentication
146: Specifies whether to use challenge response authentication.
147: The argument to this keyword must be
148: .Dq yes
149: or
150: .Dq no .
151: The default is
152: .Dq yes .
153: .It Cm CheckHostIP
154: If this flag is set to
155: .Dq yes ,
156: ssh will additionally check the host IP address in the
157: .Pa known_hosts
158: file.
159: This allows ssh to detect if a host key changed due to DNS spoofing.
160: If the option is set to
161: .Dq no ,
162: the check will not be executed.
163: The default is
164: .Dq yes .
165: .It Cm Cipher
166: Specifies the cipher to use for encrypting the session
167: in protocol version 1.
168: Currently,
169: .Dq blowfish ,
170: .Dq 3des ,
171: and
172: .Dq des
173: are supported.
174: .Ar des
175: is only supported in the
176: .Nm ssh
177: client for interoperability with legacy protocol 1 implementations
178: that do not support the
179: .Ar 3des
1.6.2.1 margarid 180: cipher.
181: Its use is strongly discouraged due to cryptographic weaknesses.
1.1 stevesk 182: The default is
183: .Dq 3des .
184: .It Cm Ciphers
185: Specifies the ciphers allowed for protocol version 2
186: in order of preference.
187: Multiple ciphers must be comma-separated.
188: The default is
189: .Pp
190: .Bd -literal
191: ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,
192: aes192-cbc,aes256-cbc''
193: .Ed
194: .It Cm ClearAllForwardings
195: Specifies that all local, remote and dynamic port forwardings
196: specified in the configuration files or on the command line be
1.6.2.1 margarid 197: cleared.
198: This option is primarily useful when used from the
1.1 stevesk 199: .Nm ssh
200: command line to clear port forwardings set in
201: configuration files, and is automatically set by
202: .Xr scp 1
203: and
204: .Xr sftp 1 .
205: The argument must be
206: .Dq yes
207: or
208: .Dq no .
209: The default is
210: .Dq no .
211: .It Cm Compression
212: Specifies whether to use compression.
213: The argument must be
214: .Dq yes
215: or
216: .Dq no .
217: The default is
218: .Dq no .
219: .It Cm CompressionLevel
220: Specifies the compression level to use if compression is enabled.
221: The argument must be an integer from 1 (fast) to 9 (slow, best).
222: The default level is 6, which is good for most applications.
223: The meaning of the values is the same as in
224: .Xr gzip 1 .
225: Note that this option applies to protocol version 1 only.
226: .It Cm ConnectionAttempts
227: Specifies the number of tries (one per second) to make before exiting.
228: The argument must be an integer.
229: This may be useful in scripts if the connection sometimes fails.
230: The default is 1.
1.6.2.2 ! brad 231: .It Cm ConnectTimeout
! 232: Specifies the timeout (in seconds) used when connecting to the ssh
! 233: server, instead of using the default system TCP timeout.
! 234: This value is used only when the target is down or really unreachable,
! 235: not when it refuses the connection.
1.1 stevesk 236: .It Cm DynamicForward
237: Specifies that a TCP/IP port on the local machine be forwarded
238: over the secure channel, and the application
239: protocol is then used to determine where to connect to from the
1.6.2.1 margarid 240: remote machine.
241: The argument must be a port number.
1.6.2.2 ! brad 242: Currently the SOCKS4 and SOCKS5 protocols are supported, and
1.1 stevesk 243: .Nm ssh
1.6.2.2 ! brad 244: will act as a SOCKS server.
1.1 stevesk 245: Multiple forwardings may be specified, and
1.6.2.1 margarid 246: additional forwardings can be given on the command line.
247: Only the superuser can forward privileged ports.
1.6.2.2 ! brad 248: .It Cm EnableSSHKeysign
! 249: Setting this option to
! 250: .Dq yes
! 251: in the global client configuration file
! 252: .Pa /etc/ssh/ssh_config
! 253: enables the use of the helper program
! 254: .Xr ssh-keysign 8
! 255: during
! 256: .Cm HostbasedAuthentication .
! 257: The argument must be
! 258: .Dq yes
! 259: or
! 260: .Dq no .
! 261: The default is
! 262: .Dq no .
! 263: See
! 264: .Xr ssh-keysign 8
! 265: for more information.
1.1 stevesk 266: .It Cm EscapeChar
267: Sets the escape character (default:
268: .Ql ~ ) .
269: The escape character can also
270: be set on the command line.
271: The argument should be a single character,
272: .Ql ^
273: followed by a letter, or
274: .Dq none
275: to disable the escape
276: character entirely (making the connection transparent for binary
277: data).
278: .It Cm ForwardAgent
279: Specifies whether the connection to the authentication agent (if any)
280: will be forwarded to the remote machine.
281: The argument must be
282: .Dq yes
283: or
284: .Dq no .
285: The default is
286: .Dq no .
1.3 stevesk 287: .Pp
1.6.2.1 margarid 288: Agent forwarding should be enabled with caution.
289: Users with the ability to bypass file permissions on the remote host
290: (for the agent's Unix-domain socket)
291: can access the local agent through the forwarded connection.
292: An attacker cannot obtain key material from the agent,
1.3 stevesk 293: however they can perform operations on the keys that enable them to
294: authenticate using the identities loaded into the agent.
1.1 stevesk 295: .It Cm ForwardX11
296: Specifies whether X11 connections will be automatically redirected
297: over the secure channel and
298: .Ev DISPLAY
299: set.
300: The argument must be
301: .Dq yes
302: or
303: .Dq no .
304: The default is
305: .Dq no .
1.3 stevesk 306: .Pp
1.6.2.1 margarid 307: X11 forwarding should be enabled with caution.
308: Users with the ability to bypass file permissions on the remote host
309: (for the user's X authorization database)
310: can access the local X11 display through the forwarded connection.
311: An attacker may then be able to perform activities such as keystroke monitoring.
1.1 stevesk 312: .It Cm GatewayPorts
313: Specifies whether remote hosts are allowed to connect to local
314: forwarded ports.
315: By default,
316: .Nm ssh
1.6.2.1 margarid 317: binds local port forwardings to the loopback address.
318: This prevents other remote hosts from connecting to forwarded ports.
1.1 stevesk 319: .Cm GatewayPorts
320: can be used to specify that
321: .Nm ssh
322: should bind local port forwardings to the wildcard address,
323: thus allowing remote hosts to connect to forwarded ports.
324: The argument must be
325: .Dq yes
326: or
327: .Dq no .
328: The default is
329: .Dq no .
330: .It Cm GlobalKnownHostsFile
331: Specifies a file to use for the global
332: host key database instead of
333: .Pa /etc/ssh/ssh_known_hosts .
1.6.2.2 ! brad 334: .It Cm GSSAPIAuthentication
! 335: Specifies whether authentication based on GSSAPI may be used, either using
! 336: the result of a successful key exchange, or using GSSAPI user
! 337: authentication.
! 338: The default is
! 339: .Dq yes .
! 340: Note that this option applies to protocol version 2 only.
! 341: .It Cm GSSAPIDelegateCredentials
! 342: Forward (delegate) credentials to the server.
! 343: The default is
! 344: .Dq no .
! 345: Note that this option applies to protocol version 2 only.
1.1 stevesk 346: .It Cm HostbasedAuthentication
347: Specifies whether to try rhosts based authentication with public key
348: authentication.
349: The argument must be
350: .Dq yes
351: or
352: .Dq no .
353: The default is
354: .Dq no .
355: This option applies to protocol version 2 only and
356: is similar to
357: .Cm RhostsRSAAuthentication .
358: .It Cm HostKeyAlgorithms
359: Specifies the protocol version 2 host key algorithms
360: that the client wants to use in order of preference.
361: The default for this option is:
362: .Dq ssh-rsa,ssh-dss .
363: .It Cm HostKeyAlias
364: Specifies an alias that should be used instead of the
365: real host name when looking up or saving the host key
366: in the host key database files.
367: This option is useful for tunneling ssh connections
368: or for multiple servers running on a single host.
369: .It Cm HostName
370: Specifies the real host name to log into.
371: This can be used to specify nicknames or abbreviations for hosts.
372: Default is the name given on the command line.
373: Numeric IP addresses are also permitted (both on the command line and in
374: .Cm HostName
375: specifications).
376: .It Cm IdentityFile
377: Specifies a file from which the user's RSA or DSA authentication identity
1.6.2.2 ! brad 378: is read.
! 379: The default is
1.1 stevesk 380: .Pa $HOME/.ssh/identity
381: for protocol version 1, and
382: .Pa $HOME/.ssh/id_rsa
383: and
384: .Pa $HOME/.ssh/id_dsa
385: for protocol version 2.
386: Additionally, any identities represented by the authentication agent
387: will be used for authentication.
388: The file name may use the tilde
389: syntax to refer to a user's home directory.
390: It is possible to have
391: multiple identity files specified in configuration files; all these
392: identities will be tried in sequence.
393: .It Cm KeepAlive
394: Specifies whether the system should send TCP keepalive messages to the
395: other side.
396: If they are sent, death of the connection or crash of one
397: of the machines will be properly noticed.
398: However, this means that
399: connections will die if the route is down temporarily, and some people
400: find it annoying.
401: .Pp
402: The default is
403: .Dq yes
404: (to send keepalives), and the client will notice
405: if the network goes down or the remote host dies.
406: This is important in scripts, and many users want it too.
407: .Pp
408: To disable keepalives, the value should be set to
409: .Dq no .
410: .It Cm LocalForward
411: Specifies that a TCP/IP port on the local machine be forwarded over
412: the secure channel to the specified host and port from the remote machine.
413: The first argument must be a port number, and the second must be
414: .Ar host:port .
415: IPv6 addresses can be specified with an alternative syntax:
416: .Ar host/port .
417: Multiple forwardings may be specified, and additional
418: forwardings can be given on the command line.
419: Only the superuser can forward privileged ports.
420: .It Cm LogLevel
421: Gives the verbosity level that is used when logging messages from
422: .Nm ssh .
423: The possible values are:
424: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3.
1.6.2.1 margarid 425: The default is INFO.
426: DEBUG and DEBUG1 are equivalent.
427: DEBUG2 and DEBUG3 each specify higher levels of verbose output.
1.1 stevesk 428: .It Cm MACs
429: Specifies the MAC (message authentication code) algorithms
430: in order of preference.
431: The MAC algorithm is used in protocol version 2
432: for data integrity protection.
433: Multiple algorithms must be comma-separated.
434: The default is
435: .Dq hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 .
436: .It Cm NoHostAuthenticationForLocalhost
437: This option can be used if the home directory is shared across machines.
438: In this case localhost will refer to a different machine on each of
439: the machines and the user will get many warnings about changed host keys.
440: However, this option disables host authentication for localhost.
441: The argument to this keyword must be
442: .Dq yes
443: or
444: .Dq no .
445: The default is to check the host key for localhost.
446: .It Cm NumberOfPasswordPrompts
447: Specifies the number of password prompts before giving up.
448: The argument to this keyword must be an integer.
449: Default is 3.
450: .It Cm PasswordAuthentication
451: Specifies whether to use password authentication.
452: The argument to this keyword must be
453: .Dq yes
454: or
455: .Dq no .
456: The default is
457: .Dq yes .
458: .It Cm Port
459: Specifies the port number to connect on the remote host.
460: Default is 22.
461: .It Cm PreferredAuthentications
462: Specifies the order in which the client should try protocol 2
1.6.2.2 ! brad 463: authentication methods.
! 464: This allows a client to prefer one method (e.g.
1.1 stevesk 465: .Cm keyboard-interactive )
466: over another method (e.g.
467: .Cm password )
468: The default for this option is:
469: .Dq hostbased,publickey,keyboard-interactive,password .
470: .It Cm Protocol
471: Specifies the protocol versions
472: .Nm ssh
473: should support in order of preference.
474: The possible values are
475: .Dq 1
476: and
477: .Dq 2 .
478: Multiple versions must be comma-separated.
479: The default is
480: .Dq 2,1 .
481: This means that
482: .Nm ssh
483: tries version 2 and falls back to version 1
484: if version 2 is not available.
485: .It Cm ProxyCommand
486: Specifies the command to use to connect to the server.
487: The command
488: string extends to the end of the line, and is executed with
489: .Pa /bin/sh .
490: In the command string,
491: .Ql %h
492: will be substituted by the host name to
493: connect and
494: .Ql %p
495: by the port.
496: The command can be basically anything,
497: and should read from its standard input and write to its standard output.
498: It should eventually connect an
499: .Xr sshd 8
500: server running on some machine, or execute
501: .Ic sshd -i
502: somewhere.
503: Host key management will be done using the
504: HostName of the host being connected (defaulting to the name typed by
505: the user).
1.6.2.1 margarid 506: Setting the command to
507: .Dq none
1.6 markus 508: disables this option entirely.
1.1 stevesk 509: Note that
510: .Cm CheckHostIP
511: is not available for connects with a proxy command.
512: .Pp
513: .It Cm PubkeyAuthentication
514: Specifies whether to try public key authentication.
515: The argument to this keyword must be
516: .Dq yes
517: or
518: .Dq no .
519: The default is
520: .Dq yes .
521: This option applies to protocol version 2 only.
522: .It Cm RemoteForward
523: Specifies that a TCP/IP port on the remote machine be forwarded over
524: the secure channel to the specified host and port from the local machine.
525: The first argument must be a port number, and the second must be
526: .Ar host:port .
527: IPv6 addresses can be specified with an alternative syntax:
528: .Ar host/port .
529: Multiple forwardings may be specified, and additional
530: forwardings can be given on the command line.
531: Only the superuser can forward privileged ports.
532: .It Cm RhostsRSAAuthentication
533: Specifies whether to try rhosts based authentication with RSA host
534: authentication.
535: The argument must be
536: .Dq yes
537: or
538: .Dq no .
539: The default is
540: .Dq no .
541: This option applies to protocol version 1 only and requires
542: .Nm ssh
543: to be setuid root.
544: .It Cm RSAAuthentication
545: Specifies whether to try RSA authentication.
546: The argument to this keyword must be
547: .Dq yes
548: or
549: .Dq no .
550: RSA authentication will only be
551: attempted if the identity file exists, or an authentication agent is
552: running.
553: The default is
554: .Dq yes .
555: Note that this option applies to protocol version 1 only.
556: .It Cm SmartcardDevice
1.6.2.2 ! brad 557: Specifies which smartcard device to use.
! 558: The argument to this keyword is the device
1.1 stevesk 559: .Nm ssh
560: should use to communicate with a smartcard used for storing the user's
1.6.2.2 ! brad 561: private RSA key.
! 562: By default, no device is specified and smartcard support is not activated.
1.1 stevesk 563: .It Cm StrictHostKeyChecking
564: If this flag is set to
565: .Dq yes ,
566: .Nm ssh
567: will never automatically add host keys to the
568: .Pa $HOME/.ssh/known_hosts
569: file, and refuses to connect to hosts whose host key has changed.
570: This provides maximum protection against trojan horse attacks,
571: however, can be annoying when the
572: .Pa /etc/ssh/ssh_known_hosts
573: file is poorly maintained, or connections to new hosts are
574: frequently made.
575: This option forces the user to manually
576: add all new hosts.
577: If this flag is set to
578: .Dq no ,
579: .Nm ssh
580: will automatically add new host keys to the
581: user known hosts files.
582: If this flag is set to
583: .Dq ask ,
584: new host keys
585: will be added to the user known host files only after the user
586: has confirmed that is what they really want to do, and
587: .Nm ssh
588: will refuse to connect to hosts whose host key has changed.
589: The host keys of
590: known hosts will be verified automatically in all cases.
591: The argument must be
592: .Dq yes ,
593: .Dq no
594: or
595: .Dq ask .
596: The default is
597: .Dq ask .
598: .It Cm UsePrivilegedPort
599: Specifies whether to use a privileged port for outgoing connections.
600: The argument must be
601: .Dq yes
602: or
603: .Dq no .
604: The default is
605: .Dq no .
1.4 stevesk 606: If set to
607: .Dq yes
608: .Nm ssh
609: must be setuid root.
1.1 stevesk 610: Note that this option must be set to
611: .Dq yes
1.6.2.2 ! brad 612: for
1.1 stevesk 613: .Cm RhostsRSAAuthentication
1.6.2.2 ! brad 614: with older servers.
1.1 stevesk 615: .It Cm User
616: Specifies the user to log in as.
617: This can be useful when a different user name is used on different machines.
618: This saves the trouble of
619: having to remember to give the user name on the command line.
620: .It Cm UserKnownHostsFile
621: Specifies a file to use for the user
622: host key database instead of
623: .Pa $HOME/.ssh/known_hosts .
1.6.2.2 ! brad 624: .It Cm VerifyHostKeyDNS
! 625: Specifies whether to verify the remote key using DNS and SSHFP resource
! 626: records.
! 627: The default is
! 628: .Dq no .
! 629: Note that this option applies to protocol version 2 only.
1.1 stevesk 630: .It Cm XAuthLocation
1.5 stevesk 631: Specifies the full pathname of the
1.1 stevesk 632: .Xr xauth 1
633: program.
634: The default is
635: .Pa /usr/X11R6/bin/xauth .
636: .El
637: .Sh FILES
638: .Bl -tag -width Ds
639: .It Pa $HOME/.ssh/config
640: This is the per-user configuration file.
641: The format of this file is described above.
642: This file is used by the
643: .Nm ssh
644: client.
645: This file does not usually contain any sensitive information,
646: but the recommended permissions are read/write for the user, and not
647: accessible by others.
648: .It Pa /etc/ssh/ssh_config
649: Systemwide configuration file.
650: This file provides defaults for those
651: values that are not specified in the user's configuration file, and
652: for those users who do not have a configuration file.
653: This file must be world-readable.
654: .El
1.6.2.2 ! brad 655: .Sh SEE ALSO
! 656: .Xr ssh 1
1.1 stevesk 657: .Sh AUTHORS
658: OpenSSH is a derivative of the original and free
659: ssh 1.2.12 release by Tatu Ylonen.
660: Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
661: Theo de Raadt and Dug Song
662: removed many bugs, re-added newer features and
663: created OpenSSH.
664: Markus Friedl contributed the support for SSH
665: protocol versions 1.5 and 2.0.