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.15 2003/03/28 10:11:43 jmc 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 user 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. 223This prevents 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. 380Multiple 381.Cm ListenAddress 382options are permitted. Additionally, any 383.Cm Port 384options must precede this option for non port qualified addresses. 385.It Cm LoginGraceTime 386The server disconnects after this time if the user has not 387successfully logged in. 388If the value is 0, there is no time limit. 389The default is 120 seconds. 390.It Cm LogLevel 391Gives the verbosity level that is used when logging messages from 392.Nm sshd . 393The possible values are: 394QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. 395The default is INFO. 396DEBUG and DEBUG1 are equivalent. 397DEBUG2 and DEBUG3 each specify higher levels of debugging output. 398Logging with a DEBUG level violates the privacy of users and is not recommended. 399.It Cm MACs 400Specifies the available MAC (message authentication code) algorithms. 401The MAC algorithm is used in protocol version 2 402for data integrity protection. 403Multiple algorithms must be comma-separated. 404The default is 405.Dq hmac-md5,hmac-sha1,hmac-ripemd160,hmac-sha1-96,hmac-md5-96 . 406.It Cm MaxStartups 407Specifies the maximum number of concurrent unauthenticated connections to the 408.Nm sshd 409daemon. 410Additional connections will be dropped until authentication succeeds or the 411.Cm LoginGraceTime 412expires for a connection. 413The default is 10. 414.Pp 415Alternatively, random early drop can be enabled by specifying 416the three colon separated values 417.Dq start:rate:full 418(e.g., "10:30:60"). 419.Nm sshd 420will refuse connection attempts with a probability of 421.Dq rate/100 422(30%) 423if there are currently 424.Dq start 425(10) 426unauthenticated connections. 427The probability increases linearly and all connection attempts 428are refused if the number of unauthenticated connections reaches 429.Dq full 430(60). 431.It Cm PasswordAuthentication 432Specifies whether password authentication is allowed. 433The default is 434.Dq yes . 435Note that 436.Cm ChallengeResponseAuthentication 437is 438.Dq yes , 439and the PAM authentication policy for 440.Nm sshd 441includes 442.Xr pam_unix 8 , 443password authentication will be allowed through the challenge-response 444mechanism regardless of the value of 445.Cm PasswordAuthentication . 446.It Cm PermitEmptyPasswords 447When password authentication is allowed, it specifies whether the 448server allows login to accounts with empty password strings. 449The default is 450.Dq no . 451.It Cm PermitRootLogin 452Specifies whether root can login using 453.Xr ssh 1 . 454The argument must be 455.Dq yes , 456.Dq without-password , 457.Dq forced-commands-only 458or 459.Dq no . 460The default is 461.Dq no . 462Note that if 463.Cm ChallengeResponseAuthentication 464is 465.Dq yes , 466the root user may be allowed in with its password even if 467.Cm PermitRootLogin is set to 468.Dq without-password . 469.Pp 470If this option is set to 471.Dq without-password 472password authentication is disabled for root. 473.Pp 474If this option is set to 475.Dq forced-commands-only 476root login with public key authentication will be allowed, 477but only if the 478.Ar command 479option has been specified 480(which may be useful for taking remote backups even if root login is 481normally not allowed). All other authentication methods are disabled 482for root. 483.Pp 484If this option is set to 485.Dq no 486root is not allowed to login. 487.It Cm PermitUserEnvironment 488Specifies whether 489.Pa ~/.ssh/environment 490and 491.Cm environment= 492options in 493.Pa ~/.ssh/authorized_keys 494are processed by 495.Nm sshd . 496The default is 497.Dq no . 498Enabling environment processing may enable users to bypass access 499restrictions in some configurations using mechanisms such as 500.Ev LD_PRELOAD . 501.It Cm PidFile 502Specifies the file that contains the process ID of the 503.Nm sshd 504daemon. 505The default is 506.Pa /var/run/sshd.pid . 507.It Cm Port 508Specifies the port number that 509.Nm sshd 510listens on. 511The default is 22. 512Multiple options of this type are permitted. 513See also 514.Cm ListenAddress . 515.It Cm PrintLastLog 516Specifies whether 517.Nm sshd 518should print the date and time when the user last logged in. 519The default is 520.Dq yes . 521.It Cm PrintMotd 522Specifies whether 523.Nm sshd 524should print 525.Pa /etc/motd 526when a user logs in interactively. 527(On some systems it is also printed by the shell, 528.Pa /etc/profile , 529or equivalent.) 530The default is 531.Dq yes . 532.It Cm Protocol 533Specifies the protocol versions 534.Nm sshd 535supports. 536The possible values are 537.Dq 1 538and 539.Dq 2 . 540Multiple versions must be comma-separated. 541The default is 542.Dq 2,1 . 543Note that the order of the protocol list does not indicate preference, 544because the client selects among multiple protocol versions offered 545by the server. 546Specifying 547.Dq 2,1 548is identical to 549.Dq 1,2 . 550.It Cm PubkeyAuthentication 551Specifies whether public key authentication is allowed. 552The default is 553.Dq yes . 554Note that this option applies to protocol version 2 only. 555.It Cm RhostsAuthentication 556Specifies whether authentication using rhosts or 557.Pa /etc/hosts.equiv 558files is sufficient. 559Normally, this method should not be permitted because it is insecure. 560.Cm RhostsRSAAuthentication 561should be used 562instead, because it performs RSA-based host authentication in addition 563to normal rhosts or 564.Pa /etc/hosts.equiv 565authentication. 566The default is 567.Dq no . 568This option applies to protocol version 1 only. 569.It Cm RhostsRSAAuthentication 570Specifies whether rhosts or 571.Pa /etc/hosts.equiv 572authentication together 573with successful RSA host authentication is allowed. 574The default is 575.Dq no . 576This option applies to protocol version 1 only. 577.It Cm RSAAuthentication 578Specifies whether pure RSA authentication is allowed. 579The default is 580.Dq yes . 581This option applies to protocol version 1 only. 582.It Cm ServerKeyBits 583Defines the number of bits in the ephemeral protocol version 1 server key. 584The minimum value is 512, and the default is 768. 585.It Cm StrictModes 586Specifies whether 587.Nm sshd 588should check file modes and ownership of the 589user's files and home directory before accepting login. 590This is normally desirable because novices sometimes accidentally leave their 591directory or files world-writable. 592The default is 593.Dq yes . 594.It Cm Subsystem 595Configures an external subsystem (e.g., file transfer daemon). 596Arguments should be a subsystem name and a command to execute upon subsystem 597request. 598The command 599.Xr sftp-server 8 600implements the 601.Dq sftp 602file transfer subsystem. 603By default no subsystems are defined. 604Note that this option applies to protocol version 2 only. 605.It Cm SyslogFacility 606Gives the facility code that is used when logging messages from 607.Nm sshd . 608The possible values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, 609LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7. 610The default is AUTH. 611.It Cm UseLogin 612Specifies whether 613.Xr login 1 614is used for interactive login sessions. 615The default is 616.Dq no . 617Note that 618.Xr login 1 619is never used for remote command execution. 620Note also, that if this is enabled, 621.Cm X11Forwarding 622will be disabled because 623.Xr login 1 624does not know how to handle 625.Xr xauth 1 626cookies. 627If 628.Cm UsePrivilegeSeparation 629is specified, it will be disabled after authentication. 630.It Cm UsePrivilegeSeparation 631Specifies whether 632.Nm sshd 633separates privileges by creating an unprivileged child process 634to deal with incoming network traffic. 635After successful authentication, another process will be created that has 636the privilege of the authenticated user. 637The goal of privilege separation is to prevent privilege 638escalation by containing any corruption within the unprivileged processes. 639The default is 640.Dq yes . 641.It Cm VerifyReverseMapping 642Specifies whether 643.Nm sshd 644should try to verify the remote host name and check that 645the resolved host name for the remote IP address maps back to the 646very same IP address. 647The default is 648.Dq no . 649.It Cm VersionAddendum 650Specifies a string to append to the regular version string to identify 651OS- or site-specific modifications. 652The default is 653.Dq FreeBSD-20030423 . 654.It Cm X11DisplayOffset 655Specifies the first display number available for 656.Nm sshd Ns 's 657X11 forwarding. 658This prevents 659.Nm sshd 660from interfering with real X11 servers. 661The default is 10. 662.It Cm X11Forwarding 663Specifies whether X11 forwarding is permitted. 664The argument must be 665.Dq yes 666or 667.Dq no . 668The default is 669.Dq yes . 670.Pp 671When X11 forwarding is enabled, there may be additional exposure to 672the server and to client displays if the 673.Nm sshd 674proxy display is configured to listen on the wildcard address (see 675.Cm X11UseLocalhost 676below), however this is not the default. 677Additionally, the authentication spoofing and authentication data 678verification and substitution occur on the client side. 679The security risk of using X11 forwarding is that the client's X11 680display server may be exposed to attack when the ssh client requests 681forwarding (see the warnings for 682.Cm ForwardX11 683in 684.Xr ssh_config 5 ). 685A system administrator may have a stance in which they want to 686protect clients that may expose themselves to attack by unwittingly 687requesting X11 forwarding, which can warrant a 688.Dq no 689setting. 690.Pp 691Note that disabling X11 forwarding does not prevent users from 692forwarding X11 traffic, as users can always install their own forwarders. 693X11 forwarding is automatically disabled if 694.Cm UseLogin 695is enabled. 696.It Cm X11UseLocalhost 697Specifies whether 698.Nm sshd 699should bind the X11 forwarding server to the loopback address or to 700the wildcard address. 701By default, 702.Nm sshd 703binds the forwarding server to the loopback address and sets the 704hostname part of the 705.Ev DISPLAY 706environment variable to 707.Dq localhost . 708This prevents remote hosts from connecting to the proxy display. 709However, some older X11 clients may not function with this 710configuration. 711.Cm X11UseLocalhost 712may be set to 713.Dq no 714to specify that the forwarding server should be bound to the wildcard 715address. 716The argument must be 717.Dq yes 718or 719.Dq no . 720The default is 721.Dq yes . 722.It Cm XAuthLocation 723Specifies the full pathname of the 724.Xr xauth 1 725program. 726The default is 727.Pa /usr/X11R6/bin/xauth . 728.El 729.Ss Time Formats 730.Pp 731.Nm sshd 732command-line arguments and configuration file options that specify time 733may be expressed using a sequence of the form: 734.Sm off 735.Ar time Op Ar qualifier , 736.Sm on 737where 738.Ar time 739is a positive integer value and 740.Ar qualifier 741is one of the following: 742.Pp 743.Bl -tag -width Ds -compact -offset indent 744.It Cm <none> 745seconds 746.It Cm s | Cm S 747seconds 748.It Cm m | Cm M 749minutes 750.It Cm h | Cm H 751hours 752.It Cm d | Cm D 753days 754.It Cm w | Cm W 755weeks 756.El 757.Pp 758Each member of the sequence is added together to calculate 759the total time value. 760.Pp 761Time format examples: 762.Pp 763.Bl -tag -width Ds -compact -offset indent 764.It 600 765600 seconds (10 minutes) 766.It 10m 76710 minutes 768.It 1h30m 7691 hour 30 minutes (90 minutes) 770.El 771.Sh FILES 772.Bl -tag -width Ds 773.It Pa /etc/ssh/sshd_config 774Contains configuration data for 775.Nm sshd . 776This file should be writable by root only, but it is recommended 777(though not necessary) that it be world-readable. 778.El 779.Sh AUTHORS 780OpenSSH is a derivative of the original and free 781ssh 1.2.12 release by Tatu Ylonen. 782Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, 783Theo de Raadt and Dug Song 784removed many bugs, re-added newer features and 785created OpenSSH. 786Markus Friedl contributed the support for SSH 787protocol versions 1.5 and 2.0. 788Niels Provos and Markus Friedl contributed support 789for privilege separation. 790.Sh SEE ALSO 791.Xr sshd 8 792