1.\" 2.\" Author: Tatu Ylonen <ylo@cs.hut.fi> 3.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4.\" All rights reserved 5.\" 6.\" As far as I am concerned, the code I have written for this software 7.\" can be used freely for any purpose. Any derived versions of this 8.\" software must be clearly marked as such, and if the derived work is 9.\" incompatible with the protocol description in the RFC file, it must be 10.\" called by a name other than "ssh" or "Secure Shell". 11.\" 12.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. 13.\" Copyright (c) 1999 Aaron Campbell. All rights reserved. 14.\" Copyright (c) 1999 Theo de Raadt. All rights reserved. 15.\" 16.\" Redistribution and use in source and binary forms, with or without 17.\" modification, are permitted provided that the following conditions 18.\" are met: 19.\" 1. Redistributions of source code must retain the above copyright 20.\" notice, this list of conditions and the following disclaimer. 21.\" 2. Redistributions in binary form must reproduce the above copyright 22.\" notice, this list of conditions and the following disclaimer in the 23.\" documentation and/or other materials provided with the distribution. 24.\" 25.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 26.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 27.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 28.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 29.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 31.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 32.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 34.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35.\" 36.\" $OpenBSD: ssh_config.5,v 1.215 2015/08/14 15:32:41 jmc Exp $ 37.\" $FreeBSD$ 38.Dd $Mdocdate: August 14 2015 $ 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.Nm ~/.ssh/config 46.Nm /etc/ssh/ssh_config 47.Sh DESCRIPTION 48.Xr ssh 1 49obtains configuration data from the following sources in 50the following order: 51.Pp 52.Bl -enum -offset indent -compact 53.It 54command-line options 55.It 56user's configuration file 57.Pq Pa ~/.ssh/config 58.It 59system-wide configuration file 60.Pq Pa /etc/ssh/ssh_config 61.El 62.Pp 63For each parameter, the first obtained value 64will be used. 65The configuration files contain sections separated by 66.Dq Host 67specifications, and that section is only applied for hosts that 68match one of the patterns given in the specification. 69The matched host name is usually the one given on the command line 70(see the 71.Cm CanonicalizeHostname 72option for exceptions.) 73.Pp 74Since the first obtained value for each parameter is used, more 75host-specific declarations should be given near the beginning of the 76file, and general defaults at the end. 77.Pp 78The configuration file has the following format: 79.Pp 80Empty lines and lines starting with 81.Ql # 82are comments. 83Otherwise a line is of the format 84.Dq keyword arguments . 85Configuration options may be separated by whitespace or 86optional whitespace and exactly one 87.Ql = ; 88the latter format is useful to avoid the need to quote whitespace 89when specifying configuration options using the 90.Nm ssh , 91.Nm scp , 92and 93.Nm sftp 94.Fl o 95option. 96Arguments may optionally be enclosed in double quotes 97.Pq \&" 98in order to represent arguments containing spaces. 99.Pp 100The possible 101keywords and their meanings are as follows (note that 102keywords are case-insensitive and arguments are case-sensitive): 103.Bl -tag -width Ds 104.It Cm Host 105Restricts the following declarations (up to the next 106.Cm Host 107or 108.Cm Match 109keyword) to be only for those hosts that match one of the patterns 110given after the keyword. 111If more than one pattern is provided, they should be separated by whitespace. 112A single 113.Ql * 114as a pattern can be used to provide global 115defaults for all hosts. 116The host is usually the 117.Ar hostname 118argument given on the command line 119(see the 120.Cm CanonicalizeHostname 121option for exceptions.) 122.Pp 123A pattern entry may be negated by prefixing it with an exclamation mark 124.Pq Sq !\& . 125If a negated entry is matched, then the 126.Cm Host 127entry is ignored, regardless of whether any other patterns on the line 128match. 129Negated matches are therefore useful to provide exceptions for wildcard 130matches. 131.Pp 132See 133.Sx PATTERNS 134for more information on patterns. 135.It Cm Match 136Restricts the following declarations (up to the next 137.Cm Host 138or 139.Cm Match 140keyword) to be used only when the conditions following the 141.Cm Match 142keyword are satisfied. 143Match conditions are specified using one or more critera 144or the single token 145.Cm all 146which always matches. 147The available criteria keywords are: 148.Cm canonical , 149.Cm exec , 150.Cm host , 151.Cm originalhost , 152.Cm user , 153and 154.Cm localuser . 155The 156.Cm all 157criteria must appear alone or immediately after 158.Cm canonical . 159Other criteria may be combined arbitrarily. 160All criteria but 161.Cm all 162and 163.Cm canonical 164require an argument. 165Criteria may be negated by prepending an exclamation mark 166.Pq Sq !\& . 167.Pp 168The 169.Cm canonical 170keyword matches only when the configuration file is being re-parsed 171after hostname canonicalization (see the 172.Cm CanonicalizeHostname 173option.) 174This may be useful to specify conditions that work with canonical host 175names only. 176The 177.Cm exec 178keyword executes the specified command under the user's shell. 179If the command returns a zero exit status then the condition is considered true. 180Commands containing whitespace characters must be quoted. 181The following character sequences in the command will be expanded prior to 182execution: 183.Ql %L 184will be substituted by the first component of the local host name, 185.Ql %l 186will be substituted by the local host name (including any domain name), 187.Ql %h 188will be substituted by the target host name, 189.Ql %n 190will be substituted by the original target host name 191specified on the command-line, 192.Ql %p 193the destination port, 194.Ql %r 195by the remote login username, and 196.Ql %u 197by the username of the user running 198.Xr ssh 1 . 199.Pp 200The other keywords' criteria must be single entries or comma-separated 201lists and may use the wildcard and negation operators described in the 202.Sx PATTERNS 203section. 204The criteria for the 205.Cm host 206keyword are matched against the target hostname, after any substitution 207by the 208.Cm Hostname 209or 210.Cm CanonicalizeHostname 211options. 212The 213.Cm originalhost 214keyword matches against the hostname as it was specified on the command-line. 215The 216.Cm user 217keyword matches against the target username on the remote host. 218The 219.Cm localuser 220keyword matches against the name of the local user running 221.Xr ssh 1 222(this keyword may be useful in system-wide 223.Nm 224files). 225.It Cm AddressFamily 226Specifies which address family to use when connecting. 227Valid arguments are 228.Dq any , 229.Dq inet 230(use IPv4 only), or 231.Dq inet6 232(use IPv6 only). 233.It Cm BatchMode 234If set to 235.Dq yes , 236passphrase/password querying will be disabled. 237This option is useful in scripts and other batch jobs where no user 238is present to supply the password. 239The argument must be 240.Dq yes 241or 242.Dq no . 243The default is 244.Dq no . 245.It Cm BindAddress 246Use the specified address on the local machine as the source address of 247the connection. 248Only useful on systems with more than one address. 249Note that this option does not work if 250.Cm UsePrivilegedPort 251is set to 252.Dq yes . 253.It Cm CanonicalDomains 254When 255.Cm CanonicalizeHostname 256is enabled, this option specifies the list of domain suffixes in which to 257search for the specified destination host. 258.It Cm CanonicalizeFallbackLocal 259Specifies whether to fail with an error when hostname canonicalization fails. 260The default, 261.Dq yes , 262will attempt to look up the unqualified hostname using the system resolver's 263search rules. 264A value of 265.Dq no 266will cause 267.Xr ssh 1 268to fail instantly if 269.Cm CanonicalizeHostname 270is enabled and the target hostname cannot be found in any of the domains 271specified by 272.Cm CanonicalDomains . 273.It Cm CanonicalizeHostname 274Controls whether explicit hostname canonicalization is performed. 275The default, 276.Dq no , 277is not to perform any name rewriting and let the system resolver handle all 278hostname lookups. 279If set to 280.Dq yes 281then, for connections that do not use a 282.Cm ProxyCommand , 283.Xr ssh 1 284will attempt to canonicalize the hostname specified on the command line 285using the 286.Cm CanonicalDomains 287suffixes and 288.Cm CanonicalizePermittedCNAMEs 289rules. 290If 291.Cm CanonicalizeHostname 292is set to 293.Dq always , 294then canonicalization is applied to proxied connections too. 295.Pp 296If this option is enabled, then the configuration files are processed 297again using the new target name to pick up any new configuration in matching 298.Cm Host 299and 300.Cm Match 301stanzas. 302.It Cm CanonicalizeMaxDots 303Specifies the maximum number of dot characters in a hostname before 304canonicalization is disabled. 305The default, 306.Dq 1 , 307allows a single dot (i.e. hostname.subdomain). 308.It Cm CanonicalizePermittedCNAMEs 309Specifies rules to determine whether CNAMEs should be followed when 310canonicalizing hostnames. 311The rules consist of one or more arguments of 312.Ar source_domain_list : Ns Ar target_domain_list , 313where 314.Ar source_domain_list 315is a pattern-list of domains that may follow CNAMEs in canonicalization, 316and 317.Ar target_domain_list 318is a pattern-list of domains that they may resolve to. 319.Pp 320For example, 321.Dq *.a.example.com:*.b.example.com,*.c.example.com 322will allow hostnames matching 323.Dq *.a.example.com 324to be canonicalized to names in the 325.Dq *.b.example.com 326or 327.Dq *.c.example.com 328domains. 329.It Cm ChallengeResponseAuthentication 330Specifies whether to use challenge-response authentication. 331The argument to this keyword must be 332.Dq yes 333or 334.Dq no . 335The default is 336.Dq yes . 337.It Cm CheckHostIP 338If this flag is set to 339.Dq yes , 340.Xr ssh 1 341will additionally check the host IP address in the 342.Pa known_hosts 343file. 344This allows ssh to detect if a host key changed due to DNS spoofing 345and will add addresses of destination hosts to 346.Pa ~/.ssh/known_hosts 347in the process, regardless of the setting of 348.Cm StrictHostKeyChecking . 349If the option is set to 350.Dq no , 351the check will not be executed. 352The default is 353.Dq no . 354.It Cm Cipher 355Specifies the cipher to use for encrypting the session 356in protocol version 1. 357Currently, 358.Dq blowfish , 359.Dq 3des , 360and 361.Dq des 362are supported. 363.Ar des 364is only supported in the 365.Xr ssh 1 366client for interoperability with legacy protocol 1 implementations 367that do not support the 368.Ar 3des 369cipher. 370Its use is strongly discouraged due to cryptographic weaknesses. 371The default is 372.Dq 3des . 373.It Cm Ciphers 374Specifies the ciphers allowed for protocol version 2 375in order of preference. 376Multiple ciphers must be comma-separated. 377If the specified value begins with a 378.Sq + 379character, then the specified ciphers will be appended to the default set 380instead of replacing them. 381.Pp 382The supported ciphers are: 383.Pp 384.Bl -item -compact -offset indent 385.It 3863des-cbc 387.It 388aes128-cbc 389.It 390aes192-cbc 391.It 392aes256-cbc 393.It 394aes128-ctr 395.It 396aes192-ctr 397.It 398aes256-ctr 399.It 400aes128-gcm@openssh.com 401.It 402aes256-gcm@openssh.com 403.It 404arcfour 405.It 406arcfour128 407.It 408arcfour256 409.It 410blowfish-cbc 411.It 412cast128-cbc 413.It 414chacha20-poly1305@openssh.com 415.El 416.Pp 417The default is: 418.Bd -literal -offset indent 419chacha20-poly1305@openssh.com, 420aes128-ctr,aes192-ctr,aes256-ctr, 421aes128-gcm@openssh.com,aes256-gcm@openssh.com, 422arcfour256,arcfour128, 423aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc, 424aes192-cbc,aes256-cbc,arcfour 425.Ed 426.Pp 427The list of available ciphers may also be obtained using the 428.Fl Q 429option of 430.Xr ssh 1 431with an argument of 432.Dq cipher . 433.It Cm ClearAllForwardings 434Specifies that all local, remote, and dynamic port forwardings 435specified in the configuration files or on the command line be 436cleared. 437This option is primarily useful when used from the 438.Xr ssh 1 439command line to clear port forwardings set in 440configuration files, and is automatically set by 441.Xr scp 1 442and 443.Xr sftp 1 . 444The argument must be 445.Dq yes 446or 447.Dq no . 448The default is 449.Dq no . 450.It Cm Compression 451Specifies whether to use compression. 452The argument must be 453.Dq yes 454or 455.Dq no . 456The default is 457.Dq no . 458.It Cm CompressionLevel 459Specifies the compression level to use if compression is enabled. 460The argument must be an integer from 1 (fast) to 9 (slow, best). 461The default level is 6, which is good for most applications. 462The meaning of the values is the same as in 463.Xr gzip 1 . 464Note that this option applies to protocol version 1 only. 465.It Cm ConnectionAttempts 466Specifies the number of tries (one per second) to make before exiting. 467The argument must be an integer. 468This may be useful in scripts if the connection sometimes fails. 469The default is 1. 470.It Cm ConnectTimeout 471Specifies the timeout (in seconds) used when connecting to the 472SSH server, instead of using the default system TCP timeout. 473This value is used only when the target is down or really unreachable, 474not when it refuses the connection. 475.It Cm ControlMaster 476Enables the sharing of multiple sessions over a single network connection. 477When set to 478.Dq yes , 479.Xr ssh 1 480will listen for connections on a control socket specified using the 481.Cm ControlPath 482argument. 483Additional sessions can connect to this socket using the same 484.Cm ControlPath 485with 486.Cm ControlMaster 487set to 488.Dq no 489(the default). 490These sessions will try to reuse the master instance's network connection 491rather than initiating new ones, but will fall back to connecting normally 492if the control socket does not exist, or is not listening. 493.Pp 494Setting this to 495.Dq ask 496will cause ssh 497to listen for control connections, but require confirmation using 498.Xr ssh-askpass 1 . 499If the 500.Cm ControlPath 501cannot be opened, 502ssh will continue without connecting to a master instance. 503.Pp 504X11 and 505.Xr ssh-agent 1 506forwarding is supported over these multiplexed connections, however the 507display and agent forwarded will be the one belonging to the master 508connection i.e. it is not possible to forward multiple displays or agents. 509.Pp 510Two additional options allow for opportunistic multiplexing: try to use a 511master connection but fall back to creating a new one if one does not already 512exist. 513These options are: 514.Dq auto 515and 516.Dq autoask . 517The latter requires confirmation like the 518.Dq ask 519option. 520.It Cm ControlPath 521Specify the path to the control socket used for connection sharing as described 522in the 523.Cm ControlMaster 524section above or the string 525.Dq none 526to disable connection sharing. 527In the path, 528.Ql %L 529will be substituted by the first component of the local host name, 530.Ql %l 531will be substituted by the local host name (including any domain name), 532.Ql %h 533will be substituted by the target host name, 534.Ql %n 535will be substituted by the original target host name 536specified on the command line, 537.Ql %p 538the destination port, 539.Ql %r 540by the remote login username, 541.Ql %u 542by the username of the user running 543.Xr ssh 1 , and 544.Ql \&%C 545by a hash of the concatenation: %l%h%p%r. 546It is recommended that any 547.Cm ControlPath 548used for opportunistic connection sharing include 549at least %h, %p, and %r (or alternatively %C) and be placed in a directory 550that is not writable by other users. 551This ensures that shared connections are uniquely identified. 552.It Cm ControlPersist 553When used in conjunction with 554.Cm ControlMaster , 555specifies that the master connection should remain open 556in the background (waiting for future client connections) 557after the initial client connection has been closed. 558If set to 559.Dq no , 560then the master connection will not be placed into the background, 561and will close as soon as the initial client connection is closed. 562If set to 563.Dq yes 564or 565.Dq 0 , 566then the master connection will remain in the background indefinitely 567(until killed or closed via a mechanism such as the 568.Xr ssh 1 569.Dq Fl O No exit 570option). 571If set to a time in seconds, or a time in any of the formats documented in 572.Xr sshd_config 5 , 573then the backgrounded master connection will automatically terminate 574after it has remained idle (with no client connections) for the 575specified time. 576.It Cm DynamicForward 577Specifies that a TCP port on the local machine be forwarded 578over the secure channel, and the application 579protocol is then used to determine where to connect to from the 580remote machine. 581.Pp 582The argument must be 583.Sm off 584.Oo Ar bind_address : Oc Ar port . 585.Sm on 586IPv6 addresses can be specified by enclosing addresses in square brackets. 587By default, the local port is bound in accordance with the 588.Cm GatewayPorts 589setting. 590However, an explicit 591.Ar bind_address 592may be used to bind the connection to a specific address. 593The 594.Ar bind_address 595of 596.Dq localhost 597indicates that the listening port be bound for local use only, while an 598empty address or 599.Sq * 600indicates that the port should be available from all interfaces. 601.Pp 602Currently the SOCKS4 and SOCKS5 protocols are supported, and 603.Xr ssh 1 604will act as a SOCKS server. 605Multiple forwardings may be specified, and 606additional forwardings can be given on the command line. 607Only the superuser can forward privileged ports. 608.It Cm EnableSSHKeysign 609Setting this option to 610.Dq yes 611in the global client configuration file 612.Pa /etc/ssh/ssh_config 613enables the use of the helper program 614.Xr ssh-keysign 8 615during 616.Cm HostbasedAuthentication . 617The argument must be 618.Dq yes 619or 620.Dq no . 621The default is 622.Dq no . 623This option should be placed in the non-hostspecific section. 624See 625.Xr ssh-keysign 8 626for more information. 627.It Cm EscapeChar 628Sets the escape character (default: 629.Ql ~ ) . 630The escape character can also 631be set on the command line. 632The argument should be a single character, 633.Ql ^ 634followed by a letter, or 635.Dq none 636to disable the escape 637character entirely (making the connection transparent for binary 638data). 639.It Cm ExitOnForwardFailure 640Specifies whether 641.Xr ssh 1 642should terminate the connection if it cannot set up all requested 643dynamic, tunnel, local, and remote port forwardings. 644The argument must be 645.Dq yes 646or 647.Dq no . 648The default is 649.Dq no . 650.It Cm FingerprintHash 651Specifies the hash algorithm used when displaying key fingerprints. 652Valid options are: 653.Dq md5 654and 655.Dq sha256 . 656The default is 657.Dq sha256 . 658.It Cm ForwardAgent 659Specifies whether the connection to the authentication agent (if any) 660will be forwarded to the remote machine. 661The argument must be 662.Dq yes 663or 664.Dq no . 665The default is 666.Dq no . 667.Pp 668Agent forwarding should be enabled with caution. 669Users with the ability to bypass file permissions on the remote host 670(for the agent's Unix-domain socket) 671can access the local agent through the forwarded connection. 672An attacker cannot obtain key material from the agent, 673however they can perform operations on the keys that enable them to 674authenticate using the identities loaded into the agent. 675.It Cm ForwardX11 676Specifies whether X11 connections will be automatically redirected 677over the secure channel and 678.Ev DISPLAY 679set. 680The argument must be 681.Dq yes 682or 683.Dq no . 684The default is 685.Dq no . 686.Pp 687X11 forwarding should be enabled with caution. 688Users with the ability to bypass file permissions on the remote host 689(for the user's X11 authorization database) 690can access the local X11 display through the forwarded connection. 691An attacker may then be able to perform activities such as keystroke monitoring 692if the 693.Cm ForwardX11Trusted 694option is also enabled. 695.It Cm ForwardX11Timeout 696Specify a timeout for untrusted X11 forwarding 697using the format described in the 698TIME FORMATS section of 699.Xr sshd_config 5 . 700X11 connections received by 701.Xr ssh 1 702after this time will be refused. 703The default is to disable untrusted X11 forwarding after twenty minutes has 704elapsed. 705.It Cm ForwardX11Trusted 706If this option is set to 707.Dq yes , 708remote X11 clients will have full access to the original X11 display. 709.Pp 710If this option is set to 711.Dq no , 712remote X11 clients will be considered untrusted and prevented 713from stealing or tampering with data belonging to trusted X11 714clients. 715Furthermore, the 716.Xr xauth 1 717token used for the session will be set to expire after 20 minutes. 718Remote clients will be refused access after this time. 719.Pp 720The default is 721.Dq no . 722.Pp 723See the X11 SECURITY extension specification for full details on 724the restrictions imposed on untrusted clients. 725.It Cm GatewayPorts 726Specifies whether remote hosts are allowed to connect to local 727forwarded ports. 728By default, 729.Xr ssh 1 730binds local port forwardings to the loopback address. 731This prevents other remote hosts from connecting to forwarded ports. 732.Cm GatewayPorts 733can be used to specify that ssh 734should bind local port forwardings to the wildcard address, 735thus allowing remote hosts to connect to forwarded ports. 736The argument must be 737.Dq yes 738or 739.Dq no . 740The default is 741.Dq no . 742.It Cm GlobalKnownHostsFile 743Specifies one or more files to use for the global 744host key database, separated by whitespace. 745The default is 746.Pa /etc/ssh/ssh_known_hosts , 747.Pa /etc/ssh/ssh_known_hosts2 . 748.It Cm GSSAPIAuthentication 749Specifies whether user authentication based on GSSAPI is allowed. 750The default is 751.Dq no . 752Note that this option applies to protocol version 2 only. 753.It Cm GSSAPIDelegateCredentials 754Forward (delegate) credentials to the server. 755The default is 756.Dq no . 757Note that this option applies to protocol version 2 only. 758.It Cm HashKnownHosts 759Indicates that 760.Xr ssh 1 761should hash host names and addresses when they are added to 762.Pa ~/.ssh/known_hosts . 763These hashed names may be used normally by 764.Xr ssh 1 765and 766.Xr sshd 8 , 767but they do not reveal identifying information should the file's contents 768be disclosed. 769The default is 770.Dq no . 771Note that existing names and addresses in known hosts files 772will not be converted automatically, 773but may be manually hashed using 774.Xr ssh-keygen 1 . 775.It Cm HostbasedAuthentication 776Specifies whether to try rhosts based authentication with public key 777authentication. 778The argument must be 779.Dq yes 780or 781.Dq no . 782The default is 783.Dq no . 784This option applies to protocol version 2 only and 785is similar to 786.Cm RhostsRSAAuthentication . 787.It Cm HostbasedKeyTypes 788Specifies the key types that will be used for hostbased authentication 789as a comma-separated pattern list. 790Alternately if the specified value begins with a 791.Sq + 792character, then the specified key types will be appended to the default set 793instead of replacing them. 794The default for this option is: 795.Bd -literal -offset 3n 796ecdsa-sha2-nistp256-cert-v01@openssh.com, 797ecdsa-sha2-nistp384-cert-v01@openssh.com, 798ecdsa-sha2-nistp521-cert-v01@openssh.com, 799ssh-ed25519-cert-v01@openssh.com, 800ssh-rsa-cert-v01@openssh.com, 801ssh-dss-cert-v01@openssh.com, 802ecdsa-sha2-nistp256,ecdsa-sha2-nistp384, 803ecdsa-sha2-nistp521,ssh-ed25519, 804ssh-rsa,ssh-dss 805.Ed 806.Pp 807The 808.Fl Q 809option of 810.Xr ssh 1 811may be used to list supported key types. 812.It Cm HostKeyAlgorithms 813Specifies the protocol version 2 host key algorithms 814that the client wants to use in order of preference. 815Alternately if the specified value begins with a 816.Sq + 817character, then the specified key types will be appended to the default set 818instead of replacing them. 819The default for this option is: 820.Bd -literal -offset 3n 821ecdsa-sha2-nistp256-cert-v01@openssh.com, 822ecdsa-sha2-nistp384-cert-v01@openssh.com, 823ecdsa-sha2-nistp521-cert-v01@openssh.com, 824ssh-ed25519-cert-v01@openssh.com, 825ssh-rsa-cert-v01@openssh.com, 826ssh-dss-cert-v01@openssh.com, 827ecdsa-sha2-nistp256,ecdsa-sha2-nistp384, 828ecdsa-sha2-nistp521,ssh-ed25519, 829ssh-rsa,ssh-dss 830.Ed 831.Pp 832If hostkeys are known for the destination host then this default is modified 833to prefer their algorithms. 834.Pp 835The list of available key types may also be obtained using the 836.Fl Q 837option of 838.Xr ssh 1 839with an argument of 840.Dq key . 841.It Cm HostKeyAlias 842Specifies an alias that should be used instead of the 843real host name when looking up or saving the host key 844in the host key database files. 845This option is useful for tunneling SSH connections 846or for multiple servers running on a single host. 847.It Cm HostName 848Specifies the real host name to log into. 849This can be used to specify nicknames or abbreviations for hosts. 850If the hostname contains the character sequence 851.Ql %h , 852then this will be replaced with the host name specified on the command line 853(this is useful for manipulating unqualified names). 854The character sequence 855.Ql %% 856will be replaced by a single 857.Ql % 858character, which may be used when specifying IPv6 link-local addresses. 859.Pp 860The default is the name given on the command line. 861Numeric IP addresses are also permitted (both on the command line and in 862.Cm HostName 863specifications). 864.It Cm IdentitiesOnly 865Specifies that 866.Xr ssh 1 867should only use the authentication identity files configured in the 868.Nm 869files, 870even if 871.Xr ssh-agent 1 872or a 873.Cm PKCS11Provider 874offers more identities. 875The argument to this keyword must be 876.Dq yes 877or 878.Dq no . 879This option is intended for situations where ssh-agent 880offers many different identities. 881The default is 882.Dq no . 883.It Cm IdentityFile 884Specifies a file from which the user's DSA, ECDSA, Ed25519 or RSA authentication 885identity is read. 886The default is 887.Pa ~/.ssh/identity 888for protocol version 1, and 889.Pa ~/.ssh/id_dsa , 890.Pa ~/.ssh/id_ecdsa , 891.Pa ~/.ssh/id_ed25519 892and 893.Pa ~/.ssh/id_rsa 894for protocol version 2. 895Additionally, any identities represented by the authentication agent 896will be used for authentication unless 897.Cm IdentitiesOnly 898is set. 899.Xr ssh 1 900will try to load certificate information from the filename obtained by 901appending 902.Pa -cert.pub 903to the path of a specified 904.Cm IdentityFile . 905.Pp 906The file name may use the tilde 907syntax to refer to a user's home directory or one of the following 908escape characters: 909.Ql %d 910(local user's home directory), 911.Ql %u 912(local user name), 913.Ql %l 914(local host name), 915.Ql %h 916(remote host name) or 917.Ql %r 918(remote user name). 919.Pp 920It is possible to have 921multiple identity files specified in configuration files; all these 922identities will be tried in sequence. 923Multiple 924.Cm IdentityFile 925directives will add to the list of identities tried (this behaviour 926differs from that of other configuration directives). 927.Pp 928.Cm IdentityFile 929may be used in conjunction with 930.Cm IdentitiesOnly 931to select which identities in an agent are offered during authentication. 932.It Cm IgnoreUnknown 933Specifies a pattern-list of unknown options to be ignored if they are 934encountered in configuration parsing. 935This may be used to suppress errors if 936.Nm 937contains options that are unrecognised by 938.Xr ssh 1 . 939It is recommended that 940.Cm IgnoreUnknown 941be listed early in the configuration file as it will not be applied 942to unknown options that appear before it. 943.It Cm IPQoS 944Specifies the IPv4 type-of-service or DSCP class for connections. 945Accepted values are 946.Dq af11 , 947.Dq af12 , 948.Dq af13 , 949.Dq af21 , 950.Dq af22 , 951.Dq af23 , 952.Dq af31 , 953.Dq af32 , 954.Dq af33 , 955.Dq af41 , 956.Dq af42 , 957.Dq af43 , 958.Dq cs0 , 959.Dq cs1 , 960.Dq cs2 , 961.Dq cs3 , 962.Dq cs4 , 963.Dq cs5 , 964.Dq cs6 , 965.Dq cs7 , 966.Dq ef , 967.Dq lowdelay , 968.Dq throughput , 969.Dq reliability , 970or a numeric value. 971This option may take one or two arguments, separated by whitespace. 972If one argument is specified, it is used as the packet class unconditionally. 973If two values are specified, the first is automatically selected for 974interactive sessions and the second for non-interactive sessions. 975The default is 976.Dq lowdelay 977for interactive sessions and 978.Dq throughput 979for non-interactive sessions. 980.It Cm KbdInteractiveAuthentication 981Specifies whether to use keyboard-interactive authentication. 982The argument to this keyword must be 983.Dq yes 984or 985.Dq no . 986The default is 987.Dq yes . 988.It Cm KbdInteractiveDevices 989Specifies the list of methods to use in keyboard-interactive authentication. 990Multiple method names must be comma-separated. 991The default is to use the server specified list. 992The methods available vary depending on what the server supports. 993For an OpenSSH server, 994it may be zero or more of: 995.Dq bsdauth , 996.Dq pam , 997and 998.Dq skey . 999.It Cm KexAlgorithms 1000Specifies the available KEX (Key Exchange) algorithms. 1001Multiple algorithms must be comma-separated. 1002Alternately if the specified value begins with a 1003.Sq + 1004character, then the specified methods will be appended to the default set 1005instead of replacing them. 1006The default is: 1007.Bd -literal -offset indent 1008curve25519-sha256@libssh.org, 1009ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, 1010diffie-hellman-group-exchange-sha256, 1011diffie-hellman-group-exchange-sha1, 1012diffie-hellman-group14-sha1 1013.Ed 1014.Pp 1015The list of available key exchange algorithms may also be obtained using the 1016.Fl Q 1017option of 1018.Xr ssh 1 1019with an argument of 1020.Dq kex . 1021.It Cm LocalCommand 1022Specifies a command to execute on the local machine after successfully 1023connecting to the server. 1024The command string extends to the end of the line, and is executed with 1025the user's shell. 1026The following escape character substitutions will be performed: 1027.Ql %d 1028(local user's home directory), 1029.Ql %h 1030(remote host name), 1031.Ql %l 1032(local host name), 1033.Ql %n 1034(host name as provided on the command line), 1035.Ql %p 1036(remote port), 1037.Ql %r 1038(remote user name) or 1039.Ql %u 1040(local user name) or 1041.Ql \&%C 1042by a hash of the concatenation: %l%h%p%r. 1043.Pp 1044The command is run synchronously and does not have access to the 1045session of the 1046.Xr ssh 1 1047that spawned it. 1048It should not be used for interactive commands. 1049.Pp 1050This directive is ignored unless 1051.Cm PermitLocalCommand 1052has been enabled. 1053.It Cm LocalForward 1054Specifies that a TCP port on the local machine be forwarded over 1055the secure channel to the specified host and port from the remote machine. 1056The first argument must be 1057.Sm off 1058.Oo Ar bind_address : Oc Ar port 1059.Sm on 1060and the second argument must be 1061.Ar host : Ns Ar hostport . 1062IPv6 addresses can be specified by enclosing addresses in square brackets. 1063Multiple forwardings may be specified, and additional forwardings can be 1064given on the command line. 1065Only the superuser can forward privileged ports. 1066By default, the local port is bound in accordance with the 1067.Cm GatewayPorts 1068setting. 1069However, an explicit 1070.Ar bind_address 1071may be used to bind the connection to a specific address. 1072The 1073.Ar bind_address 1074of 1075.Dq localhost 1076indicates that the listening port be bound for local use only, while an 1077empty address or 1078.Sq * 1079indicates that the port should be available from all interfaces. 1080.It Cm LogLevel 1081Gives the verbosity level that is used when logging messages from 1082.Xr ssh 1 . 1083The possible values are: 1084QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3. 1085The default is INFO. 1086DEBUG and DEBUG1 are equivalent. 1087DEBUG2 and DEBUG3 each specify higher levels of verbose output. 1088.It Cm MACs 1089Specifies the MAC (message authentication code) algorithms 1090in order of preference. 1091The MAC algorithm is used in protocol version 2 1092for data integrity protection. 1093Multiple algorithms must be comma-separated. 1094If the specified value begins with a 1095.Sq + 1096character, then the specified algorithms will be appended to the default set 1097instead of replacing them. 1098.Pp 1099The algorithms that contain 1100.Dq -etm 1101calculate the MAC after encryption (encrypt-then-mac). 1102These are considered safer and their use recommended. 1103.Pp 1104The default is: 1105.Bd -literal -offset indent 1106umac-64-etm@openssh.com,umac-128-etm@openssh.com, 1107hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, 1108umac-64@openssh.com,umac-128@openssh.com, 1109hmac-sha2-256,hmac-sha2-512, 1110hmac-md5-etm@openssh.com,hmac-sha1-etm@openssh.com, 1111hmac-ripemd160-etm@openssh.com, 1112hmac-sha1-96-etm@openssh.com,hmac-md5-96-etm@openssh.com, 1113hmac-md5,hmac-sha1,hmac-ripemd160, 1114hmac-sha1-96,hmac-md5-96 1115.Ed 1116.Pp 1117The list of available MAC algorithms may also be obtained using the 1118.Fl Q 1119option of 1120.Xr ssh 1 1121with an argument of 1122.Dq mac . 1123.It Cm NoHostAuthenticationForLocalhost 1124This option can be used if the home directory is shared across machines. 1125In this case localhost will refer to a different machine on each of 1126the machines and the user will get many warnings about changed host keys. 1127However, this option disables host authentication for localhost. 1128The argument to this keyword must be 1129.Dq yes 1130or 1131.Dq no . 1132The default is to check the host key for localhost. 1133.It Cm NumberOfPasswordPrompts 1134Specifies the number of password prompts before giving up. 1135The argument to this keyword must be an integer. 1136The default is 3. 1137.It Cm PasswordAuthentication 1138Specifies whether to use password authentication. 1139The argument to this keyword must be 1140.Dq yes 1141or 1142.Dq no . 1143The default is 1144.Dq yes . 1145.It Cm PermitLocalCommand 1146Allow local command execution via the 1147.Ic LocalCommand 1148option or using the 1149.Ic !\& Ns Ar command 1150escape sequence in 1151.Xr ssh 1 . 1152The argument must be 1153.Dq yes 1154or 1155.Dq no . 1156The default is 1157.Dq no . 1158.It Cm PKCS11Provider 1159Specifies which PKCS#11 provider to use. 1160The argument to this keyword is the PKCS#11 shared library 1161.Xr ssh 1 1162should use to communicate with a PKCS#11 token providing the user's 1163private RSA key. 1164.It Cm Port 1165Specifies the port number to connect on the remote host. 1166The default is 22. 1167.It Cm PreferredAuthentications 1168Specifies the order in which the client should try protocol 2 1169authentication methods. 1170This allows a client to prefer one method (e.g.\& 1171.Cm keyboard-interactive ) 1172over another method (e.g.\& 1173.Cm password ) . 1174The default is: 1175.Bd -literal -offset indent 1176gssapi-with-mic,hostbased,publickey, 1177keyboard-interactive,password 1178.Ed 1179.It Cm Protocol 1180Specifies the protocol versions 1181.Xr ssh 1 1182should support in order of preference. 1183The possible values are 1184.Sq 1 1185and 1186.Sq 2 . 1187Multiple versions must be comma-separated. 1188When this option is set to 1189.Dq 2,1 1190.Nm ssh 1191will try version 2 and fall back to version 1 1192if version 2 is not available. 1193The default is 1194.Sq 2 . 1195.It Cm ProxyCommand 1196Specifies the command to use to connect to the server. 1197The command 1198string extends to the end of the line, and is executed 1199using the user's shell 1200.Ql exec 1201directive to avoid a lingering shell process. 1202.Pp 1203In the command string, any occurrence of 1204.Ql %h 1205will be substituted by the host name to 1206connect, 1207.Ql %p 1208by the port, and 1209.Ql %r 1210by the remote user name. 1211The command can be basically anything, 1212and should read from its standard input and write to its standard output. 1213It should eventually connect an 1214.Xr sshd 8 1215server running on some machine, or execute 1216.Ic sshd -i 1217somewhere. 1218Host key management will be done using the 1219HostName of the host being connected (defaulting to the name typed by 1220the user). 1221Setting the command to 1222.Dq none 1223disables this option entirely. 1224Note that 1225.Cm CheckHostIP 1226is not available for connects with a proxy command. 1227.Pp 1228This directive is useful in conjunction with 1229.Xr nc 1 1230and its proxy support. 1231For example, the following directive would connect via an HTTP proxy at 1232192.0.2.0: 1233.Bd -literal -offset 3n 1234ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p 1235.Ed 1236.It Cm ProxyUseFdpass 1237Specifies that 1238.Cm ProxyCommand 1239will pass a connected file descriptor back to 1240.Xr ssh 1 1241instead of continuing to execute and pass data. 1242The default is 1243.Dq no . 1244.It Cm PubkeyAcceptedKeyTypes 1245Specifies the key types that will be used for public key authentication 1246as a comma-separated pattern list. 1247Alternately if the specified value begins with a 1248.Sq + 1249character, then the key types after it will be appended to the default 1250instead of replacing it. 1251The default for this option is: 1252.Bd -literal -offset 3n 1253ecdsa-sha2-nistp256-cert-v01@openssh.com, 1254ecdsa-sha2-nistp384-cert-v01@openssh.com, 1255ecdsa-sha2-nistp521-cert-v01@openssh.com, 1256ssh-ed25519-cert-v01@openssh.com, 1257ssh-rsa-cert-v01@openssh.com, 1258ssh-dss-cert-v01@openssh.com, 1259ecdsa-sha2-nistp256,ecdsa-sha2-nistp384, 1260ecdsa-sha2-nistp521,ssh-ed25519, 1261ssh-rsa,ssh-dss 1262.Ed 1263.Pp 1264The 1265.Fl Q 1266option of 1267.Xr ssh 1 1268may be used to list supported key types. 1269.It Cm PubkeyAuthentication 1270Specifies whether to try public key authentication. 1271The argument to this keyword must be 1272.Dq yes 1273or 1274.Dq no . 1275The default is 1276.Dq yes . 1277This option applies to protocol version 2 only. 1278.It Cm RekeyLimit 1279Specifies the maximum amount of data that may be transmitted before the 1280session key is renegotiated, optionally followed a maximum amount of 1281time that may pass before the session key is renegotiated. 1282The first argument is specified in bytes and may have a suffix of 1283.Sq K , 1284.Sq M , 1285or 1286.Sq G 1287to indicate Kilobytes, Megabytes, or Gigabytes, respectively. 1288The default is between 1289.Sq 1G 1290and 1291.Sq 4G , 1292depending on the cipher. 1293The optional second value is specified in seconds and may use any of the 1294units documented in the 1295TIME FORMATS section of 1296.Xr sshd_config 5 . 1297The default value for 1298.Cm RekeyLimit 1299is 1300.Dq default none , 1301which means that rekeying is performed after the cipher's default amount 1302of data has been sent or received and no time based rekeying is done. 1303This option applies to protocol version 2 only. 1304.It Cm RemoteForward 1305Specifies that a TCP port on the remote machine be forwarded over 1306the secure channel to the specified host and port from the local machine. 1307The first argument must be 1308.Sm off 1309.Oo Ar bind_address : Oc Ar port 1310.Sm on 1311and the second argument must be 1312.Ar host : Ns Ar hostport . 1313IPv6 addresses can be specified by enclosing addresses in square brackets. 1314Multiple forwardings may be specified, and additional 1315forwardings can be given on the command line. 1316Privileged ports can be forwarded only when 1317logging in as root on the remote machine. 1318.Pp 1319If the 1320.Ar port 1321argument is 1322.Ql 0 , 1323the listen port will be dynamically allocated on the server and reported 1324to the client at run time. 1325.Pp 1326If the 1327.Ar bind_address 1328is not specified, the default is to only bind to loopback addresses. 1329If the 1330.Ar bind_address 1331is 1332.Ql * 1333or an empty string, then the forwarding is requested to listen on all 1334interfaces. 1335Specifying a remote 1336.Ar bind_address 1337will only succeed if the server's 1338.Cm GatewayPorts 1339option is enabled (see 1340.Xr sshd_config 5 ) . 1341.It Cm RequestTTY 1342Specifies whether to request a pseudo-tty for the session. 1343The argument may be one of: 1344.Dq no 1345(never request a TTY), 1346.Dq yes 1347(always request a TTY when standard input is a TTY), 1348.Dq force 1349(always request a TTY) or 1350.Dq auto 1351(request a TTY when opening a login session). 1352This option mirrors the 1353.Fl t 1354and 1355.Fl T 1356flags for 1357.Xr ssh 1 . 1358.It Cm RevokedHostKeys 1359Specifies revoked host public keys. 1360Keys listed in this file will be refused for host authentication. 1361Note that if this file does not exist or is not readable, 1362then host authentication will be refused for all hosts. 1363Keys may be specified as a text file, listing one public key per line, or as 1364an OpenSSH Key Revocation List (KRL) as generated by 1365.Xr ssh-keygen 1 . 1366For more information on KRLs, see the KEY REVOCATION LISTS section in 1367.Xr ssh-keygen 1 . 1368.It Cm RhostsRSAAuthentication 1369Specifies whether to try rhosts based authentication with RSA host 1370authentication. 1371The argument must be 1372.Dq yes 1373or 1374.Dq no . 1375The default is 1376.Dq no . 1377This option applies to protocol version 1 only and requires 1378.Xr ssh 1 1379to be setuid root. 1380.It Cm RSAAuthentication 1381Specifies whether to try RSA authentication. 1382The argument to this keyword must be 1383.Dq yes 1384or 1385.Dq no . 1386RSA authentication will only be 1387attempted if the identity file exists, or an authentication agent is 1388running. 1389The default is 1390.Dq yes . 1391Note that this option applies to protocol version 1 only. 1392.It Cm SendEnv 1393Specifies what variables from the local 1394.Xr environ 7 1395should be sent to the server. 1396Note that environment passing is only supported for protocol 2. 1397The server must also support it, and the server must be configured to 1398accept these environment variables. 1399Note that the 1400.Ev TERM 1401environment variable is always sent whenever a 1402pseudo-terminal is requested as it is required by the protocol. 1403Refer to 1404.Cm AcceptEnv 1405in 1406.Xr sshd_config 5 1407for how to configure the server. 1408Variables are specified by name, which may contain wildcard characters. 1409Multiple environment variables may be separated by whitespace or spread 1410across multiple 1411.Cm SendEnv 1412directives. 1413The default is not to send any environment variables. 1414.Pp 1415See 1416.Sx PATTERNS 1417for more information on patterns. 1418.It Cm ServerAliveCountMax 1419Sets the number of server alive messages (see below) which may be 1420sent without 1421.Xr ssh 1 1422receiving any messages back from the server. 1423If this threshold is reached while server alive messages are being sent, 1424ssh will disconnect from the server, terminating the session. 1425It is important to note that the use of server alive messages is very 1426different from 1427.Cm TCPKeepAlive 1428(below). 1429The server alive messages are sent through the encrypted channel 1430and therefore will not be spoofable. 1431The TCP keepalive option enabled by 1432.Cm TCPKeepAlive 1433is spoofable. 1434The server alive mechanism is valuable when the client or 1435server depend on knowing when a connection has become inactive. 1436.Pp 1437The default value is 3. 1438If, for example, 1439.Cm ServerAliveInterval 1440(see below) is set to 15 and 1441.Cm ServerAliveCountMax 1442is left at the default, if the server becomes unresponsive, 1443ssh will disconnect after approximately 45 seconds. 1444This option applies to protocol version 2 only. 1445.It Cm ServerAliveInterval 1446Sets a timeout interval in seconds after which if no data has been received 1447from the server, 1448.Xr ssh 1 1449will send a message through the encrypted 1450channel to request a response from the server. 1451The default 1452is 0, indicating that these messages will not be sent to the server. 1453This option applies to protocol version 2 only. 1454.It Cm StreamLocalBindMask 1455Sets the octal file creation mode mask 1456.Pq umask 1457used when creating a Unix-domain socket file for local or remote 1458port forwarding. 1459This option is only used for port forwarding to a Unix-domain socket file. 1460.Pp 1461The default value is 0177, which creates a Unix-domain socket file that is 1462readable and writable only by the owner. 1463Note that not all operating systems honor the file mode on Unix-domain 1464socket files. 1465.It Cm StreamLocalBindUnlink 1466Specifies whether to remove an existing Unix-domain socket file for local 1467or remote port forwarding before creating a new one. 1468If the socket file already exists and 1469.Cm StreamLocalBindUnlink 1470is not enabled, 1471.Nm ssh 1472will be unable to forward the port to the Unix-domain socket file. 1473This option is only used for port forwarding to a Unix-domain socket file. 1474.Pp 1475The argument must be 1476.Dq yes 1477or 1478.Dq no . 1479The default is 1480.Dq no . 1481.It Cm StrictHostKeyChecking 1482If this flag is set to 1483.Dq yes , 1484.Xr ssh 1 1485will never automatically add host keys to the 1486.Pa ~/.ssh/known_hosts 1487file, and refuses to connect to hosts whose host key has changed. 1488This provides maximum protection against trojan horse attacks, 1489though it can be annoying when the 1490.Pa /etc/ssh/ssh_known_hosts 1491file is poorly maintained or when connections to new hosts are 1492frequently made. 1493This option forces the user to manually 1494add all new hosts. 1495If this flag is set to 1496.Dq no , 1497ssh will automatically add new host keys to the 1498user known hosts files. 1499If this flag is set to 1500.Dq ask , 1501new host keys 1502will be added to the user known host files only after the user 1503has confirmed that is what they really want to do, and 1504ssh will refuse to connect to hosts whose host key has changed. 1505The host keys of 1506known hosts will be verified automatically in all cases. 1507The argument must be 1508.Dq yes , 1509.Dq no , 1510or 1511.Dq ask . 1512The default is 1513.Dq ask . 1514.It Cm TCPKeepAlive 1515Specifies whether the system should send TCP keepalive messages to the 1516other side. 1517If they are sent, death of the connection or crash of one 1518of the machines will be properly noticed. 1519However, this means that 1520connections will die if the route is down temporarily, and some people 1521find it annoying. 1522.Pp 1523The default is 1524.Dq yes 1525(to send TCP keepalive messages), and the client will notice 1526if the network goes down or the remote host dies. 1527This is important in scripts, and many users want it too. 1528.Pp 1529To disable TCP keepalive messages, the value should be set to 1530.Dq no . 1531.It Cm Tunnel 1532Request 1533.Xr tun 4 1534device forwarding between the client and the server. 1535The argument must be 1536.Dq yes , 1537.Dq point-to-point 1538(layer 3), 1539.Dq ethernet 1540(layer 2), 1541or 1542.Dq no . 1543Specifying 1544.Dq yes 1545requests the default tunnel mode, which is 1546.Dq point-to-point . 1547The default is 1548.Dq no . 1549.It Cm TunnelDevice 1550Specifies the 1551.Xr tun 4 1552devices to open on the client 1553.Pq Ar local_tun 1554and the server 1555.Pq Ar remote_tun . 1556.Pp 1557The argument must be 1558.Sm off 1559.Ar local_tun Op : Ar remote_tun . 1560.Sm on 1561The devices may be specified by numerical ID or the keyword 1562.Dq any , 1563which uses the next available tunnel device. 1564If 1565.Ar remote_tun 1566is not specified, it defaults to 1567.Dq any . 1568The default is 1569.Dq any:any . 1570.It Cm UpdateHostKeys 1571Specifies whether 1572.Xr ssh 1 1573should accept notifications of additional hostkeys from the server sent 1574after authentication has completed and add them to 1575.Cm UserKnownHostsFile . 1576The argument must be 1577.Dq yes , 1578.Dq no 1579(the default) or 1580.Dq ask . 1581Enabling this option allows learning alternate hostkeys for a server 1582and supports graceful key rotation by allowing a server to send replacement 1583public keys before old ones are removed. 1584Additional hostkeys are only accepted if the key used to authenticate the 1585host was already trusted or explicity accepted by the user. 1586If 1587.Cm UpdateHostKeys 1588is set to 1589.Dq ask , 1590then the user is asked to confirm the modifications to the known_hosts file. 1591Confirmation is currently incompatible with 1592.Cm ControlPersist , 1593and will be disabled if it is enabled. 1594.Pp 1595Presently, only 1596.Xr sshd 8 1597from OpenSSH 6.8 and greater support the 1598.Dq hostkeys@openssh.com 1599protocol extension used to inform the client of all the server's hostkeys. 1600.It Cm UsePrivilegedPort 1601Specifies whether to use a privileged port for outgoing connections. 1602The argument must be 1603.Dq yes 1604or 1605.Dq no . 1606The default is 1607.Dq no . 1608If set to 1609.Dq yes , 1610.Xr ssh 1 1611must be setuid root. 1612Note that this option must be set to 1613.Dq yes 1614for 1615.Cm RhostsRSAAuthentication 1616with older servers. 1617.It Cm User 1618Specifies the user to log in as. 1619This can be useful when a different user name is used on different machines. 1620This saves the trouble of 1621having to remember to give the user name on the command line. 1622.It Cm UserKnownHostsFile 1623Specifies one or more files to use for the user 1624host key database, separated by whitespace. 1625The default is 1626.Pa ~/.ssh/known_hosts , 1627.Pa ~/.ssh/known_hosts2 . 1628.It Cm VerifyHostKeyDNS 1629Specifies whether to verify the remote key using DNS and SSHFP resource 1630records. 1631If this option is set to 1632.Dq yes , 1633the client will implicitly trust keys that match a secure fingerprint 1634from DNS. 1635Insecure fingerprints will be handled as if this option was set to 1636.Dq ask . 1637If this option is set to 1638.Dq ask , 1639information on fingerprint match will be displayed, but the user will still 1640need to confirm new host keys according to the 1641.Cm StrictHostKeyChecking 1642option. 1643The argument must be 1644.Dq yes , 1645.Dq no , 1646or 1647.Dq ask . 1648The default is 1649.Dq yes 1650if compiled with LDNS and 1651.Dq no 1652otherwise. 1653Note that this option applies to protocol version 2 only. 1654.Pp 1655See also VERIFYING HOST KEYS in 1656.Xr ssh 1 . 1657.It Cm VersionAddendum 1658Specifies a string to append to the regular version string to identify 1659OS- or site-specific modifications. 1660The default is 1661.Dq FreeBSD-20160121 . 1662The value 1663.Dq none 1664may be used to disable this. 1665.It Cm VisualHostKey 1666If this flag is set to 1667.Dq yes , 1668an ASCII art representation of the remote host key fingerprint is 1669printed in addition to the fingerprint string at login and 1670for unknown host keys. 1671If this flag is set to 1672.Dq no , 1673no fingerprint strings are printed at login and 1674only the fingerprint string will be printed for unknown host keys. 1675The default is 1676.Dq no . 1677.It Cm XAuthLocation 1678Specifies the full pathname of the 1679.Xr xauth 1 1680program. 1681The default is 1682.Pa /usr/local/bin/xauth . 1683.El 1684.Sh PATTERNS 1685A 1686.Em pattern 1687consists of zero or more non-whitespace characters, 1688.Sq * 1689(a wildcard that matches zero or more characters), 1690or 1691.Sq ?\& 1692(a wildcard that matches exactly one character). 1693For example, to specify a set of declarations for any host in the 1694.Dq .co.uk 1695set of domains, 1696the following pattern could be used: 1697.Pp 1698.Dl Host *.co.uk 1699.Pp 1700The following pattern 1701would match any host in the 192.168.0.[0-9] network range: 1702.Pp 1703.Dl Host 192.168.0.? 1704.Pp 1705A 1706.Em pattern-list 1707is a comma-separated list of patterns. 1708Patterns within pattern-lists may be negated 1709by preceding them with an exclamation mark 1710.Pq Sq !\& . 1711For example, 1712to allow a key to be used from anywhere within an organization 1713except from the 1714.Dq dialup 1715pool, 1716the following entry (in authorized_keys) could be used: 1717.Pp 1718.Dl from=\&"!*.dialup.example.com,*.example.com\&" 1719.Sh FILES 1720.Bl -tag -width Ds 1721.It Pa ~/.ssh/config 1722This is the per-user configuration file. 1723The format of this file is described above. 1724This file is used by the SSH client. 1725Because of the potential for abuse, this file must have strict permissions: 1726read/write for the user, and not accessible by others. 1727.It Pa /etc/ssh/ssh_config 1728Systemwide configuration file. 1729This file provides defaults for those 1730values that are not specified in the user's configuration file, and 1731for those users who do not have a configuration file. 1732This file must be world-readable. 1733.El 1734.Sh SEE ALSO 1735.Xr ssh 1 1736.Sh AUTHORS 1737OpenSSH is a derivative of the original and free 1738ssh 1.2.12 release by Tatu Ylonen. 1739Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, 1740Theo de Raadt and Dug Song 1741removed many bugs, re-added newer features and 1742created OpenSSH. 1743Markus Friedl contributed the support for SSH 1744protocol versions 1.5 and 2.0. 1745