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: sshd_config.5,v 1.13 2002/09/16 20:12:11 stevesk Exp $ 38.\" $FreeBSD$ 39.Dd September 25, 1999 40.Dt SSHD_CONFIG 5 41.Os 42.Sh NAME 43.Nm sshd_config 44.Nd OpenSSH SSH daemon configuration file 45.Sh SYNOPSIS 46.Bl -tag -width Ds -compact 47.It Pa /etc/ssh/sshd_config 48.El 49.Sh DESCRIPTION 50.Nm sshd 51reads configuration data from 52.Pa /etc/ssh/sshd_config 53(or the file specified with 54.Fl f 55on the command line). 56The file contains keyword-argument pairs, one per line. 57Lines starting with 58.Ql # 59and empty lines are interpreted as comments. 60.Pp 61The possible 62keywords and their meanings are as follows (note that 63keywords are case-insensitive and arguments are case-sensitive): 64.Bl -tag -width Ds 65.It Cm AFSTokenPassing 66Specifies whether an AFS token may be forwarded to the server. 67Default is 68.Dq no . 69.It Cm AllowGroups 70This keyword can be followed by a list of group name patterns, separated 71by spaces. 72If specified, login is allowed only for users whose primary 73group or supplementary group list matches one of the patterns. 74.Ql \&* 75and 76.Ql ? 77can be used as 78wildcards in the patterns. 79Only group names are valid; a numerical group ID is not recognized. 80By default, login is allowed for all groups. 81.Pp 82.It Cm AllowTcpForwarding 83Specifies whether TCP forwarding is permitted. 84The default is 85.Dq yes . 86Note that disabling TCP forwarding does not improve security unless 87users are also denied shell access, as they can always install their 88own forwarders. 89.Pp 90.It Cm AllowUsers 91This keyword can be followed by a list of user name patterns, separated 92by spaces. 93If specified, login is allowed only for users names that 94match one of the patterns. 95.Ql \&* 96and 97.Ql ? 98can be used as 99wildcards in the patterns. 100Only user names are valid; a numerical user ID is not recognized. 101By default, login is allowed for all users. 102If the pattern takes the form USER@HOST then USER and HOST 103are separately checked, restricting logins to particular 104users from particular hosts. 105.Pp 106.It Cm AuthorizedKeysFile 107Specifies the file that contains the public keys that can be used 108for user authentication. 109.Cm AuthorizedKeysFile 110may contain tokens of the form %T which are substituted during connection 111set-up. The following tokens are defined: %% is replaced by a literal '%', 112%h is replaced by the home directory of the user being authenticated and 113%u is replaced by the username of that user. 114After expansion, 115.Cm AuthorizedKeysFile 116is taken to be an absolute path or one relative to the user's home 117directory. 118The default is 119.Dq .ssh/authorized_keys . 120.It Cm Banner 121In some jurisdictions, sending a warning message before authentication 122may be relevant for getting legal protection. 123The contents of the specified file are sent to the remote user before 124authentication is allowed. 125This option is only available for protocol version 2. 126By default, no banner is displayed. 127.Pp 128.It Cm ChallengeResponseAuthentication 129Specifies whether challenge-response authentication is allowed. 130Specifically, in 131.Fx , 132this controls the use of PAM (see 133.Xr pam 3 ) 134for authentication. 135Note that this affects the effectiveness of the 136.Cm PasswordAuthentication 137and 138.Cm PermitRootLogin 139variables. 140The default is 141.Dq yes . 142.It Cm Ciphers 143Specifies the ciphers allowed for protocol version 2. 144Multiple ciphers must be comma-separated. 145The default is 146.Pp 147.Bd -literal 148 ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour, 149 aes192-cbc,aes256-cbc'' 150.Ed 151.It Cm ClientAliveInterval 152Sets a timeout interval in seconds after which if no data has been received 153from the client, 154.Nm sshd 155will send a message through the encrypted 156channel to request a response from the client. 157The default 158is 0, indicating that these messages will not be sent to the client. 159This option applies to protocol version 2 only. 160.It Cm ClientAliveCountMax 161Sets the number of client alive messages (see above) which may be 162sent without 163.Nm sshd 164receiving any messages back from the client. If this threshold is 165reached while client alive messages are being sent, 166.Nm sshd 167will disconnect the client, terminating the session. It is important 168to note that the use of client alive messages is very different from 169.Cm KeepAlive 170(below). The client alive messages are sent through the 171encrypted channel and therefore will not be spoofable. The TCP keepalive 172option enabled by 173.Cm KeepAlive 174is spoofable. The client alive mechanism is valuable when the client or 175server depend on knowing when a connection has become inactive. 176.Pp 177The default value is 3. If 178.Cm ClientAliveInterval 179(above) is set to 15, and 180.Cm ClientAliveCountMax 181is left at the default, unresponsive ssh clients 182will be disconnected after approximately 45 seconds. 183.It Cm Compression 184Specifies whether compression is allowed. 185The argument must be 186.Dq yes 187or 188.Dq no . 189The default is 190.Dq yes . 191.It Cm DenyGroups 192This keyword can be followed by a list of group name patterns, separated 193by spaces. 194Login is disallowed for users whose primary group or supplementary 195group list matches one of the patterns. 196.Ql \&* 197and 198.Ql ? 199can be used as 200wildcards in the patterns. 201Only group names are valid; a numerical group ID is not recognized. 202By default, login is allowed for all groups. 203.Pp 204.It Cm DenyUsers 205This keyword can be followed by a list of user name patterns, separated 206by spaces. 207Login is disallowed for user names that match one of the patterns. 208.Ql \&* 209and 210.Ql ? 211can be used as wildcards in the patterns. 212Only user names are valid; a numerical user ID is not recognized. 213By default, login is allowed for all users. 214If the pattern takes the form USER@HOST then USER and HOST 215are separately checked, restricting logins to particular 216users from particular hosts. 217.It Cm GatewayPorts 218Specifies whether remote hosts are allowed to connect to ports 219forwarded for the client. 220By default, 221.Nm sshd 222binds remote port forwardings to the loopback address. This 223prevents other remote hosts from connecting to forwarded ports. 224.Cm GatewayPorts 225can be used to specify that 226.Nm sshd 227should bind remote port forwardings to the wildcard address, 228thus allowing remote hosts to connect to forwarded ports. 229The argument must be 230.Dq yes 231or 232.Dq no . 233The default is 234.Dq no . 235.It Cm HostbasedAuthentication 236Specifies whether rhosts or /etc/hosts.equiv authentication together 237with successful public key client host authentication is allowed 238(hostbased authentication). 239This option is similar to 240.Cm RhostsRSAAuthentication 241and applies to protocol version 2 only. 242The default is 243.Dq no . 244.It Cm HostKey 245Specifies a file containing a private host key 246used by SSH. 247The default is 248.Pa /etc/ssh/ssh_host_key 249for protocol version 1, and 250.Pa /etc/ssh/ssh_host_dsa_key 251for protocol version 2. 252Note that 253.Nm sshd 254will refuse to use a file if it is group/world-accessible. 255It is possible to have multiple host key files. 256.Dq rsa1 257keys are used for version 1 and 258.Dq dsa 259or 260.Dq rsa 261are used for version 2 of the SSH protocol. 262.It Cm IgnoreRhosts 263Specifies that 264.Pa .rhosts 265and 266.Pa .shosts 267files will not be used in 268.Cm RhostsAuthentication , 269.Cm RhostsRSAAuthentication 270or 271.Cm HostbasedAuthentication . 272.Pp 273.Pa /etc/hosts.equiv 274and 275.Pa /etc/ssh/shosts.equiv 276are still used. 277The default is 278.Dq yes . 279.It Cm IgnoreUserKnownHosts 280Specifies whether 281.Nm sshd 282should ignore the user's 283.Pa $HOME/.ssh/known_hosts 284during 285.Cm RhostsRSAAuthentication 286or 287.Cm HostbasedAuthentication . 288The default is 289.Dq no . 290.It Cm KeepAlive 291Specifies whether the system should send TCP keepalive messages to the 292other side. 293If they are sent, death of the connection or crash of one 294of the machines will be properly noticed. 295However, this means that 296connections will die if the route is down temporarily, and some people 297find it annoying. 298On the other hand, if keepalives are not sent, 299sessions may hang indefinitely on the server, leaving 300.Dq ghost 301users and consuming server resources. 302.Pp 303The default is 304.Dq yes 305(to send keepalives), and the server will notice 306if the network goes down or the client host crashes. 307This avoids infinitely hanging sessions. 308.Pp 309To disable keepalives, the value should be set to 310.Dq no . 311.It Cm KerberosAuthentication 312Specifies whether Kerberos authentication is allowed. 313This can be in the form of a Kerberos ticket, or if 314.Cm PasswordAuthentication 315is yes, the password provided by the user will be validated through 316the Kerberos KDC. 317To use this option, the server needs a 318Kerberos servtab which allows the verification of the KDC's identity. 319Default is 320.Dq no . 321.It Cm KerberosOrLocalPasswd 322If set then if password authentication through Kerberos fails then 323the password will be validated via any additional local mechanism 324such as 325.Pa /etc/passwd . 326Default is 327.Dq yes . 328.It Cm KerberosTgtPassing 329Specifies whether a Kerberos TGT may be forwarded to the server. 330Default is 331.Dq no , 332as this only works when the Kerberos KDC is actually an AFS kaserver. 333.It Cm KerberosTicketCleanup 334Specifies whether to automatically destroy the user's ticket cache 335file on logout. 336Default is 337.Dq yes . 338.It Cm KeyRegenerationInterval 339In protocol version 1, the ephemeral server key is automatically regenerated 340after this many seconds (if it has been used). 341The purpose of regeneration is to prevent 342decrypting captured sessions by later breaking into the machine and 343stealing the keys. 344The key is never stored anywhere. 345If the value is 0, the key is never regenerated. 346The default is 3600 (seconds). 347.It Cm ListenAddress 348Specifies the local addresses 349.Nm sshd 350should listen on. 351The following forms may be used: 352.Pp 353.Bl -item -offset indent -compact 354.It 355.Cm ListenAddress 356.Sm off 357.Ar host No | Ar IPv4_addr No | Ar IPv6_addr 358.Sm on 359.It 360.Cm ListenAddress 361.Sm off 362.Ar host No | Ar IPv4_addr No : Ar port 363.Sm on 364.It 365.Cm ListenAddress 366.Sm off 367.Oo 368.Ar host No | Ar IPv6_addr Oc : Ar port 369.Sm on 370.El 371.Pp 372If 373.Ar port 374is not specified, 375.Nm sshd 376will listen on the address and all prior 377.Cm Port 378options specified. The default is to listen on all local 379addresses. Multiple 380.Cm ListenAddress 381options are permitted. Additionally, any 382.Cm Port 383options must precede this option for non port qualified addresses. 384.It Cm LoginGraceTime 385The server disconnects after this time if the user has not 386successfully logged in. 387If the value is 0, there is no time limit. 388The default is 120 seconds. 389.It Cm LogLevel 390Gives the verbosity level that is used when logging messages from 391.Nm sshd . 392The possible values are: 393QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. 394The default is INFO. DEBUG and DEBUG1 are equivalent. DEBUG2 395and DEBUG3 each specify higher levels of debugging output. 396Logging with a DEBUG level violates the privacy of users 397and is not recommended. 398.It Cm MACs 399Specifies the available MAC (message authentication code) algorithms. 400The MAC algorithm is used in protocol version 2 401for data integrity protection. 402Multiple algorithms must be comma-separated. 403The default is 404.Dq hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 . 405.It Cm MaxStartups 406Specifies the maximum number of concurrent unauthenticated connections to the 407.Nm sshd 408daemon. 409Additional connections will be dropped until authentication succeeds or the 410.Cm LoginGraceTime 411expires for a connection. 412The default is 10. 413.Pp 414Alternatively, random early drop can be enabled by specifying 415the three colon separated values 416.Dq start:rate:full 417(e.g., "10:30:60"). 418.Nm sshd 419will refuse connection attempts with a probability of 420.Dq rate/100 421(30%) 422if there are currently 423.Dq start 424(10) 425unauthenticated connections. 426The probability increases linearly and all connection attempts 427are refused if the number of unauthenticated connections reaches 428.Dq full 429(60). 430.It Cm PasswordAuthentication 431Specifies whether password authentication is allowed. 432The default is 433.Dq yes . 434Note that 435.Cm ChallengeResponseAuthentication 436is 437.Dq yes , 438and the PAM authentication policy for 439.Nm sshd 440includes 441.Xr pam_unix 8 , 442password authentication will be allowed through the challenge-response 443mechanism regardless of the value of 444.Cm PasswordAuthentication . 445.It Cm PermitEmptyPasswords 446When password authentication is allowed, it specifies whether the 447server allows login to accounts with empty password strings. 448The default is 449.Dq no . 450.It Cm PermitRootLogin 451Specifies whether root can login using 452.Xr ssh 1 . 453The argument must be 454.Dq yes , 455.Dq without-password , 456.Dq forced-commands-only 457or 458.Dq no . 459The default is 460.Dq no . 461Note that if 462.Cm ChallengeResponseAuthentication 463is 464.Dq yes , 465the root user may be allowed in with its password even if 466.Cm PermitRootLogin is set to 467.Dq without-password . 468.Pp 469If this option is set to 470.Dq without-password 471password authentication is disabled for root. 472.Pp 473If this option is set to 474.Dq forced-commands-only 475root login with public key authentication will be allowed, 476but only if the 477.Ar command 478option has been specified 479(which may be useful for taking remote backups even if root login is 480normally not allowed). All other authentication methods are disabled 481for root. 482.Pp 483If this option is set to 484.Dq no 485root is not allowed to login. 486.It Cm PermitUserEnvironment 487Specifies whether 488.Pa ~/.ssh/environment 489and 490.Cm environment= 491options in 492.Pa ~/.ssh/authorized_keys 493are processed by 494.Nm sshd . 495The default is 496.Dq no . 497Enabling environment processing may enable users to bypass access 498restrictions in some configurations using mechanisms such as 499.Ev LD_PRELOAD . 500.It Cm PidFile 501Specifies the file that contains the process ID of the 502.Nm sshd 503daemon. 504The default is 505.Pa /var/run/sshd.pid . 506.It Cm Port 507Specifies the port number that 508.Nm sshd 509listens on. 510The default is 22. 511Multiple options of this type are permitted. 512See also 513.Cm ListenAddress . 514.It Cm PrintLastLog 515Specifies whether 516.Nm sshd 517should print the date and time when the user last logged in. 518The default is 519.Dq yes . 520.It Cm PrintMotd 521Specifies whether 522.Nm sshd 523should print 524.Pa /etc/motd 525when a user logs in interactively. 526(On some systems it is also printed by the shell, 527.Pa /etc/profile , 528or equivalent.) 529The default is 530.Dq yes . 531.It Cm Protocol 532Specifies the protocol versions 533.Nm sshd 534supports. 535The possible values are 536.Dq 1 537and 538.Dq 2 . 539Multiple versions must be comma-separated. 540The default is 541.Dq 2,1 . 542Note that the order of the protocol list does not indicate preference, 543because the client selects among multiple protocol versions offered 544by the server. 545Specifying 546.Dq 2,1 547is identical to 548.Dq 1,2 . 549.It Cm PubkeyAuthentication 550Specifies whether public key authentication is allowed. 551The default is 552.Dq yes . 553Note that this option applies to protocol version 2 only. 554.It Cm RhostsAuthentication 555Specifies whether authentication using rhosts or 556.Pa /etc/hosts.equiv 557files is sufficient. 558Normally, this method should not be permitted because it is insecure. 559.Cm RhostsRSAAuthentication 560should be used 561instead, because it performs RSA-based host authentication in addition 562to normal rhosts or 563.Pa /etc/hosts.equiv 564authentication. 565The default is 566.Dq no . 567This option applies to protocol version 1 only. 568.It Cm RhostsRSAAuthentication 569Specifies whether rhosts or 570.Pa /etc/hosts.equiv 571authentication together 572with successful RSA host authentication is allowed. 573The default is 574.Dq no . 575This option applies to protocol version 1 only. 576.It Cm RSAAuthentication 577Specifies whether pure RSA authentication is allowed. 578The default is 579.Dq yes . 580This option applies to protocol version 1 only. 581.It Cm ServerKeyBits 582Defines the number of bits in the ephemeral protocol version 1 server key. 583The minimum value is 512, and the default is 768. 584.It Cm StrictModes 585Specifies whether 586.Nm sshd 587should check file modes and ownership of the 588user's files and home directory before accepting login. 589This is normally desirable because novices sometimes accidentally leave their 590directory or files world-writable. 591The default is 592.Dq yes . 593.It Cm Subsystem 594Configures an external subsystem (e.g., file transfer daemon). 595Arguments should be a subsystem name and a command to execute upon subsystem 596request. 597The command 598.Xr sftp-server 8 599implements the 600.Dq sftp 601file transfer subsystem. 602By default no subsystems are defined. 603Note that this option applies to protocol version 2 only. 604.It Cm SyslogFacility 605Gives the facility code that is used when logging messages from 606.Nm sshd . 607The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, 608LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. 609The default is AUTH. 610.It Cm UseLogin 611Specifies whether 612.Xr login 1 613is used for interactive login sessions. 614The default is 615.Dq no . 616Note that 617.Xr login 1 618is never used for remote command execution. 619Note also, that if this is enabled, 620.Cm X11Forwarding 621will be disabled because 622.Xr login 1 623does not know how to handle 624.Xr xauth 1 625cookies. If 626.Cm UsePrivilegeSeparation 627is specified, it will be disabled after authentication. 628.It Cm UsePrivilegeSeparation 629Specifies whether 630.Nm sshd 631separates privileges by creating an unprivileged child process 632to deal with incoming network traffic. After successful authentication, 633another process will be created that has the privilege of the authenticated 634user. The goal of privilege separation is to prevent privilege 635escalation by containing any corruption within the unprivileged processes. 636The default is 637.Dq yes . 638.It Cm VerifyReverseMapping 639Specifies whether 640.Nm sshd 641should try to verify the remote host name and check that 642the resolved host name for the remote IP address maps back to the 643very same IP address. 644The default is 645.Dq no . 646.It Cm VersionAddendum 647Specifies a string to append to the regular version string to identify 648OS- or site-specific modifications. 649The default is 650.Dq FreeBSD-20030201 . 651.It Cm X11DisplayOffset 652Specifies the first display number available for 653.Nm sshd Ns 's 654X11 forwarding. 655This prevents 656.Nm sshd 657from interfering with real X11 servers. 658The default is 10. 659.It Cm X11Forwarding 660Specifies whether X11 forwarding is permitted. 661The argument must be 662.Dq yes 663or 664.Dq no . 665The default is 666.Dq yes . 667.Pp 668When X11 forwarding is enabled, there may be additional exposure to 669the server and to client displays if the 670.Nm sshd 671proxy display is configured to listen on the wildcard address (see 672.Cm X11UseLocalhost 673below), however this is not the default. 674Additionally, the authentication spoofing and authentication data 675verification and substitution occur on the client side. 676The security risk of using X11 forwarding is that the client's X11 677display server may be exposed to attack when the ssh client requests 678forwarding (see the warnings for 679.Cm ForwardX11 680in 681.Xr ssh_config 5 ). 682A system administrator may have a stance in which they want to 683protect clients that may expose themselves to attack by unwittingly 684requesting X11 forwarding, which can warrant a 685.Dq no 686setting. 687.Pp 688Note that disabling X11 forwarding does not prevent users from 689forwarding X11 traffic, as users can always install their own forwarders. 690X11 forwarding is automatically disabled if 691.Cm UseLogin 692is enabled. 693.It Cm X11UseLocalhost 694Specifies whether 695.Nm sshd 696should bind the X11 forwarding server to the loopback address or to 697the wildcard address. By default, 698.Nm sshd 699binds the forwarding server to the loopback address and sets the 700hostname part of the 701.Ev DISPLAY 702environment variable to 703.Dq localhost . 704This prevents remote hosts from connecting to the proxy display. 705However, some older X11 clients may not function with this 706configuration. 707.Cm X11UseLocalhost 708may be set to 709.Dq no 710to specify that the forwarding server should be bound to the wildcard 711address. 712The argument must be 713.Dq yes 714or 715.Dq no . 716The default is 717.Dq yes . 718.It Cm XAuthLocation 719Specifies the full pathname of the 720.Xr xauth 1 721program. 722The default is 723.Pa /usr/X11R6/bin/xauth . 724.El 725.Ss Time Formats 726.Pp 727.Nm sshd 728command-line arguments and configuration file options that specify time 729may be expressed using a sequence of the form: 730.Sm off 731.Ar time Op Ar qualifier , 732.Sm on 733where 734.Ar time 735is a positive integer value and 736.Ar qualifier 737is one of the following: 738.Pp 739.Bl -tag -width Ds -compact -offset indent 740.It Cm <none> 741seconds 742.It Cm s | Cm S 743seconds 744.It Cm m | Cm M 745minutes 746.It Cm h | Cm H 747hours 748.It Cm d | Cm D 749days 750.It Cm w | Cm W 751weeks 752.El 753.Pp 754Each member of the sequence is added together to calculate 755the total time value. 756.Pp 757Time format examples: 758.Pp 759.Bl -tag -width Ds -compact -offset indent 760.It 600 761600 seconds (10 minutes) 762.It 10m 76310 minutes 764.It 1h30m 7651 hour 30 minutes (90 minutes) 766.El 767.Sh FILES 768.Bl -tag -width Ds 769.It Pa /etc/ssh/sshd_config 770Contains configuration data for 771.Nm sshd . 772This file should be writable by root only, but it is recommended 773(though not necessary) that it be world-readable. 774.El 775.Sh AUTHORS 776OpenSSH is a derivative of the original and free 777ssh 1.2.12 release by Tatu Ylonen. 778Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, 779Theo de Raadt and Dug Song 780removed many bugs, re-added newer features and 781created OpenSSH. 782Markus Friedl contributed the support for SSH 783protocol versions 1.5 and 2.0. 784Niels Provos and Markus Friedl contributed support 785for privilege separation. 786.Sh SEE ALSO 787.Xr sshd 8 788