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.1,v 1.357 2015/05/06 05:45:17 dtucker Exp $ 37.Dd $Mdocdate: May 6 2015 $ 38.Dt SSH 1 39.Os 40.Sh NAME 41.Nm ssh 42.Nd OpenSSH SSH client (remote login program) 43.Sh SYNOPSIS 44.Nm ssh 45.Bk -words 46.Op Fl 1246AaCfGgKkMNnqsTtVvXxYy 47.Op Fl b Ar bind_address 48.Op Fl c Ar cipher_spec 49.Op Fl D Oo Ar bind_address : Oc Ns Ar port 50.Op Fl E Ar log_file 51.Op Fl e Ar escape_char 52.Op Fl F Ar configfile 53.Op Fl I Ar pkcs11 54.Op Fl i Ar identity_file 55.Op Fl L Oo Ar bind_address : Oc Ns Ar port : Ns Ar host : Ns Ar hostport 56.Op Fl l Ar login_name 57.Op Fl m Ar mac_spec 58.Op Fl O Ar ctl_cmd 59.Op Fl o Ar option 60.Op Fl p Ar port 61.Op Fl Q Cm cipher | cipher-auth | mac | kex | key | protocol-version 62.Op Fl R Oo Ar bind_address : Oc Ns Ar port : Ns Ar host : Ns Ar hostport 63.Op Fl S Ar ctl_path 64.Op Fl W Ar host : Ns Ar port 65.Op Fl w Ar local_tun Ns Op : Ns Ar remote_tun 66.Oo Ar user Ns @ Oc Ns Ar hostname 67.Op Ar command 68.Ek 69.Sh DESCRIPTION 70.Nm 71(SSH client) is a program for logging into a remote machine and for 72executing commands on a remote machine. 73It is intended to replace rlogin and rsh, 74and provide secure encrypted communications between 75two untrusted hosts over an insecure network. 76X11 connections, arbitrary TCP ports and 77.Ux Ns -domain 78sockets can also be forwarded over the secure channel. 79.Pp 80.Nm 81connects and logs into the specified 82.Ar hostname 83(with optional 84.Ar user 85name). 86The user must prove 87his/her identity to the remote machine using one of several methods 88depending on the protocol version used (see below). 89.Pp 90If 91.Ar command 92is specified, 93it is executed on the remote host instead of a login shell. 94.Pp 95The options are as follows: 96.Bl -tag -width Ds 97.It Fl 1 98Forces 99.Nm 100to try protocol version 1 only. 101.It Fl 2 102Forces 103.Nm 104to try protocol version 2 only. 105.It Fl 4 106Forces 107.Nm 108to use IPv4 addresses only. 109.It Fl 6 110Forces 111.Nm 112to use IPv6 addresses only. 113.It Fl A 114Enables forwarding of the authentication agent connection. 115This can also be specified on a per-host basis in a configuration file. 116.Pp 117Agent forwarding should be enabled with caution. 118Users with the ability to bypass file permissions on the remote host 119(for the agent's 120.Ux Ns -domain 121socket) can access the local agent through the forwarded connection. 122An attacker cannot obtain key material from the agent, 123however they can perform operations on the keys that enable them to 124authenticate using the identities loaded into the agent. 125.It Fl a 126Disables forwarding of the authentication agent connection. 127.It Fl b Ar bind_address 128Use 129.Ar bind_address 130on the local machine as the source address 131of the connection. 132Only useful on systems with more than one address. 133.It Fl C 134Requests compression of all data (including stdin, stdout, stderr, and 135data for forwarded X11, TCP and 136.Ux Ns -domain 137connections). 138The compression algorithm is the same used by 139.Xr gzip 1 , 140and the 141.Dq level 142can be controlled by the 143.Cm CompressionLevel 144option for protocol version 1. 145Compression is desirable on modem lines and other 146slow connections, but will only slow down things on fast networks. 147The default value can be set on a host-by-host basis in the 148configuration files; see the 149.Cm Compression 150option. 151.It Fl c Ar cipher_spec 152Selects the cipher specification for encrypting the session. 153.Pp 154Protocol version 1 allows specification of a single cipher. 155The supported values are 156.Dq 3des , 157.Dq blowfish , 158and 159.Dq des . 160For protocol version 2, 161.Ar cipher_spec 162is a comma-separated list of ciphers 163listed in order of preference. 164See the 165.Cm Ciphers 166keyword in 167.Xr ssh_config 5 168for more information. 169.It Fl D Xo 170.Sm off 171.Oo Ar bind_address : Oc 172.Ar port 173.Sm on 174.Xc 175Specifies a local 176.Dq dynamic 177application-level port forwarding. 178This works by allocating a socket to listen to 179.Ar port 180on the local side, optionally bound to the specified 181.Ar bind_address . 182Whenever a connection is made to this port, the 183connection is forwarded over the secure channel, and the application 184protocol is then used to determine where to connect to from the 185remote machine. 186Currently the SOCKS4 and SOCKS5 protocols are supported, and 187.Nm 188will act as a SOCKS server. 189Only root can forward privileged ports. 190Dynamic port forwardings can also be specified in the configuration file. 191.Pp 192IPv6 addresses can be specified by enclosing the address in square brackets. 193Only the superuser can forward privileged ports. 194By default, the local port is bound in accordance with the 195.Cm GatewayPorts 196setting. 197However, an explicit 198.Ar bind_address 199may be used to bind the connection to a specific address. 200The 201.Ar bind_address 202of 203.Dq localhost 204indicates that the listening port be bound for local use only, while an 205empty address or 206.Sq * 207indicates that the port should be available from all interfaces. 208.It Fl E Ar log_file 209Append debug logs to 210.Ar log_file 211instead of standard error. 212.It Fl e Ar escape_char 213Sets the escape character for sessions with a pty (default: 214.Ql ~ ) . 215The escape character is only recognized at the beginning of a line. 216The escape character followed by a dot 217.Pq Ql \&. 218closes the connection; 219followed by control-Z suspends the connection; 220and followed by itself sends the escape character once. 221Setting the character to 222.Dq none 223disables any escapes and makes the session fully transparent. 224.It Fl F Ar configfile 225Specifies an alternative per-user configuration file. 226If a configuration file is given on the command line, 227the system-wide configuration file 228.Pq Pa /etc/ssh/ssh_config 229will be ignored. 230The default for the per-user configuration file is 231.Pa ~/.ssh/config . 232.It Fl f 233Requests 234.Nm 235to go to background just before command execution. 236This is useful if 237.Nm 238is going to ask for passwords or passphrases, but the user 239wants it in the background. 240This implies 241.Fl n . 242The recommended way to start X11 programs at a remote site is with 243something like 244.Ic ssh -f host xterm . 245.Pp 246If the 247.Cm ExitOnForwardFailure 248configuration option is set to 249.Dq yes , 250then a client started with 251.Fl f 252will wait for all remote port forwards to be successfully established 253before placing itself in the background. 254.It Fl G 255Causes 256.Nm 257to print its configuration after evaluating 258.Cm Host 259and 260.Cm Match 261blocks and exit. 262.It Fl g 263Allows remote hosts to connect to local forwarded ports. 264If used on a multiplexed connection, then this option must be specified 265on the master process. 266.It Fl I Ar pkcs11 267Specify the PKCS#11 shared library 268.Nm 269should use to communicate with a PKCS#11 token providing the user's 270private RSA key. 271.It Fl i Ar identity_file 272Selects a file from which the identity (private key) for 273public key authentication is read. 274The default is 275.Pa ~/.ssh/identity 276for protocol version 1, and 277.Pa ~/.ssh/id_dsa , 278.Pa ~/.ssh/id_ecdsa , 279.Pa ~/.ssh/id_ed25519 280and 281.Pa ~/.ssh/id_rsa 282for protocol version 2. 283Identity files may also be specified on 284a per-host basis in the configuration file. 285It is possible to have multiple 286.Fl i 287options (and multiple identities specified in 288configuration files). 289.Nm 290will also try to load certificate information from the filename obtained 291by appending 292.Pa -cert.pub 293to identity filenames. 294.It Fl K 295Enables GSSAPI-based authentication and forwarding (delegation) of GSSAPI 296credentials to the server. 297.It Fl k 298Disables forwarding (delegation) of GSSAPI credentials to the server. 299.It Fl L Xo 300.Sm off 301.Oo Ar bind_address : Oc 302.Ar port : host : hostport 303.Sm on 304.Xc 305Specifies that the given port on the local (client) host is to be 306forwarded to the given host and port on the remote side. 307This works by allocating a socket to listen to 308.Ar port 309on the local side, optionally bound to the specified 310.Ar bind_address . 311Whenever a connection is made to this port, the 312connection is forwarded over the secure channel, and a connection is 313made to 314.Ar host 315port 316.Ar hostport 317from the remote machine. 318Port forwardings can also be specified in the configuration file. 319IPv6 addresses can be specified by enclosing the address in square brackets. 320Only the superuser can forward privileged ports. 321By default, the local port is bound in accordance with the 322.Cm GatewayPorts 323setting. 324However, an explicit 325.Ar bind_address 326may be used to bind the connection to a specific address. 327The 328.Ar bind_address 329of 330.Dq localhost 331indicates that the listening port be bound for local use only, while an 332empty address or 333.Sq * 334indicates that the port should be available from all interfaces. 335.It Fl l Ar login_name 336Specifies the user to log in as on the remote machine. 337This also may be specified on a per-host basis in the configuration file. 338.It Fl M 339Places the 340.Nm 341client into 342.Dq master 343mode for connection sharing. 344Multiple 345.Fl M 346options places 347.Nm 348into 349.Dq master 350mode with confirmation required before slave connections are accepted. 351Refer to the description of 352.Cm ControlMaster 353in 354.Xr ssh_config 5 355for details. 356.It Fl m Ar mac_spec 357Additionally, for protocol version 2 a comma-separated list of MAC 358(message authentication code) algorithms can 359be specified in order of preference. 360See the 361.Cm MACs 362keyword for more information. 363.It Fl N 364Do not execute a remote command. 365This is useful for just forwarding ports 366(protocol version 2 only). 367.It Fl n 368Redirects stdin from 369.Pa /dev/null 370(actually, prevents reading from stdin). 371This must be used when 372.Nm 373is run in the background. 374A common trick is to use this to run X11 programs on a remote machine. 375For example, 376.Ic ssh -n shadows.cs.hut.fi emacs & 377will start an emacs on shadows.cs.hut.fi, and the X11 378connection will be automatically forwarded over an encrypted channel. 379The 380.Nm 381program will be put in the background. 382(This does not work if 383.Nm 384needs to ask for a password or passphrase; see also the 385.Fl f 386option.) 387.It Fl O Ar ctl_cmd 388Control an active connection multiplexing master process. 389When the 390.Fl O 391option is specified, the 392.Ar ctl_cmd 393argument is interpreted and passed to the master process. 394Valid commands are: 395.Dq check 396(check that the master process is running), 397.Dq forward 398(request forwardings without command execution), 399.Dq cancel 400(cancel forwardings), 401.Dq exit 402(request the master to exit), and 403.Dq stop 404(request the master to stop accepting further multiplexing requests). 405.It Fl o Ar option 406Can be used to give options in the format used in the configuration file. 407This is useful for specifying options for which there is no separate 408command-line flag. 409For full details of the options listed below, and their possible values, see 410.Xr ssh_config 5 . 411.Pp 412.Bl -tag -width Ds -offset indent -compact 413.It AddressFamily 414.It BatchMode 415.It BindAddress 416.It CanonicalDomains 417.It CanonicalizeFallbackLocal 418.It CanonicalizeHostname 419.It CanonicalizeMaxDots 420.It CanonicalizePermittedCNAMEs 421.It ChallengeResponseAuthentication 422.It CheckHostIP 423.It Cipher 424.It Ciphers 425.It ClearAllForwardings 426.It Compression 427.It CompressionLevel 428.It ConnectionAttempts 429.It ConnectTimeout 430.It ControlMaster 431.It ControlPath 432.It ControlPersist 433.It DynamicForward 434.It EscapeChar 435.It ExitOnForwardFailure 436.It FingerprintHash 437.It ForwardAgent 438.It ForwardX11 439.It ForwardX11Timeout 440.It ForwardX11Trusted 441.It GatewayPorts 442.It GlobalKnownHostsFile 443.It GSSAPIAuthentication 444.It GSSAPIDelegateCredentials 445.It HashKnownHosts 446.It Host 447.It HostbasedAuthentication 448.It HostbasedKeyTypes 449.It HostKeyAlgorithms 450.It HostKeyAlias 451.It HostName 452.It IdentityFile 453.It IdentitiesOnly 454.It IPQoS 455.It KbdInteractiveAuthentication 456.It KbdInteractiveDevices 457.It KexAlgorithms 458.It LocalCommand 459.It LocalForward 460.It LogLevel 461.It MACs 462.It Match 463.It NoHostAuthenticationForLocalhost 464.It NumberOfPasswordPrompts 465.It PasswordAuthentication 466.It PermitLocalCommand 467.It PKCS11Provider 468.It Port 469.It PreferredAuthentications 470.It Protocol 471.It ProxyCommand 472.It ProxyUseFdpass 473.It PubkeyAuthentication 474.It RekeyLimit 475.It RemoteForward 476.It RequestTTY 477.It RhostsRSAAuthentication 478.It RSAAuthentication 479.It SendEnv 480.It ServerAliveInterval 481.It ServerAliveCountMax 482.It StreamLocalBindMask 483.It StreamLocalBindUnlink 484.It StrictHostKeyChecking 485.It TCPKeepAlive 486.It Tunnel 487.It TunnelDevice 488.It UpdateHostKeys 489.It UsePrivilegedPort 490.It User 491.It UserKnownHostsFile 492.It VerifyHostKeyDNS 493.It VisualHostKey 494.It XAuthLocation 495.El 496.It Fl p Ar port 497Port to connect to on the remote host. 498This can be specified on a 499per-host basis in the configuration file. 500.It Fl Q Cm cipher | cipher-auth | mac | kex | key | protocol-version 501Queries 502.Nm 503for the algorithms supported for the specified version 2. 504The available features are: 505.Ar cipher 506(supported symmetric ciphers), 507.Ar cipher-auth 508(supported symmetric ciphers that support authenticated encryption), 509.Ar mac 510(supported message integrity codes), 511.Ar kex 512(key exchange algorithms), 513.Ar key 514(key types) and 515.Ar protocol-version 516(supported SSH protocol versions). 517.It Fl q 518Quiet mode. 519Causes most warning and diagnostic messages to be suppressed. 520.It Fl R Xo 521.Sm off 522.Oo Ar bind_address : Oc 523.Ar port : host : hostport 524.Sm on 525.Xc 526Specifies that the given port on the remote (server) host is to be 527forwarded to the given host and port on the local side. 528This works by allocating a socket to listen to 529.Ar port 530on the remote side, and whenever a connection is made to this port, the 531connection is forwarded over the secure channel, and a connection is 532made to 533.Ar host 534port 535.Ar hostport 536from the local machine. 537.Pp 538Port forwardings can also be specified in the configuration file. 539Privileged ports can be forwarded only when 540logging in as root on the remote machine. 541IPv6 addresses can be specified by enclosing the address in square brackets. 542.Pp 543By default, the listening socket on the server will be bound to the loopback 544interface only. 545This may be overridden by specifying a 546.Ar bind_address . 547An empty 548.Ar bind_address , 549or the address 550.Ql * , 551indicates that the remote socket should listen on all interfaces. 552Specifying a remote 553.Ar bind_address 554will only succeed if the server's 555.Cm GatewayPorts 556option is enabled (see 557.Xr sshd_config 5 ) . 558.Pp 559If the 560.Ar port 561argument is 562.Ql 0 , 563the listen port will be dynamically allocated on the server and reported 564to the client at run time. 565When used together with 566.Ic -O forward 567the allocated port will be printed to the standard output. 568.It Fl S Ar ctl_path 569Specifies the location of a control socket for connection sharing, 570or the string 571.Dq none 572to disable connection sharing. 573Refer to the description of 574.Cm ControlPath 575and 576.Cm ControlMaster 577in 578.Xr ssh_config 5 579for details. 580.It Fl s 581May be used to request invocation of a subsystem on the remote system. 582Subsystems are a feature of the SSH2 protocol which facilitate the use 583of SSH as a secure transport for other applications (eg.\& 584.Xr sftp 1 ) . 585The subsystem is specified as the remote command. 586.It Fl T 587Disable pseudo-terminal allocation. 588.It Fl t 589Force pseudo-terminal allocation. 590This can be used to execute arbitrary 591screen-based programs on a remote machine, which can be very useful, 592e.g. when implementing menu services. 593Multiple 594.Fl t 595options force tty allocation, even if 596.Nm 597has no local tty. 598.It Fl V 599Display the version number and exit. 600.It Fl v 601Verbose mode. 602Causes 603.Nm 604to print debugging messages about its progress. 605This is helpful in 606debugging connection, authentication, and configuration problems. 607Multiple 608.Fl v 609options increase the verbosity. 610The maximum is 3. 611.It Fl W Ar host : Ns Ar port 612Requests that standard input and output on the client be forwarded to 613.Ar host 614on 615.Ar port 616over the secure channel. 617Implies 618.Fl N , 619.Fl T , 620.Cm ExitOnForwardFailure 621and 622.Cm ClearAllForwardings . 623Works with Protocol version 2 only. 624.It Fl w Xo 625.Ar local_tun Ns Op : Ns Ar remote_tun 626.Xc 627Requests 628tunnel 629device forwarding with the specified 630.Xr tun 4 631devices between the client 632.Pq Ar local_tun 633and the server 634.Pq Ar remote_tun . 635.Pp 636The devices may be specified by numerical ID or the keyword 637.Dq any , 638which uses the next available tunnel device. 639If 640.Ar remote_tun 641is not specified, it defaults to 642.Dq any . 643See also the 644.Cm Tunnel 645and 646.Cm TunnelDevice 647directives in 648.Xr ssh_config 5 . 649If the 650.Cm Tunnel 651directive is unset, it is set to the default tunnel mode, which is 652.Dq point-to-point . 653.It Fl X 654Enables X11 forwarding. 655This can also be specified on a per-host basis in a configuration file. 656.Pp 657X11 forwarding should be enabled with caution. 658Users with the ability to bypass file permissions on the remote host 659(for the user's X authorization database) 660can access the local X11 display through the forwarded connection. 661An attacker may then be able to perform activities such as keystroke monitoring. 662.Pp 663For this reason, X11 forwarding is subjected to X11 SECURITY extension 664restrictions by default. 665Please refer to the 666.Nm 667.Fl Y 668option and the 669.Cm ForwardX11Trusted 670directive in 671.Xr ssh_config 5 672for more information. 673.It Fl x 674Disables X11 forwarding. 675.It Fl Y 676Enables trusted X11 forwarding. 677Trusted X11 forwardings are not subjected to the X11 SECURITY extension 678controls. 679.It Fl y 680Send log information using the 681.Xr syslog 3 682system module. 683By default this information is sent to stderr. 684.El 685.Pp 686.Nm 687may additionally obtain configuration data from 688a per-user configuration file and a system-wide configuration file. 689The file format and configuration options are described in 690.Xr ssh_config 5 . 691.Sh AUTHENTICATION 692The OpenSSH SSH client supports SSH protocols 1 and 2. 693The default is to use protocol 2 only, 694though this can be changed via the 695.Cm Protocol 696option in 697.Xr ssh_config 5 698or the 699.Fl 1 700and 701.Fl 2 702options (see above). 703Both protocols support similar authentication methods, 704but protocol 2 is the default since 705it provides additional mechanisms for confidentiality 706(the traffic is encrypted using AES, 3DES, Blowfish, CAST128, or Arcfour) 707and integrity (hmac-md5, hmac-sha1, 708hmac-sha2-256, hmac-sha2-512, 709umac-64, umac-128, hmac-ripemd160). 710Protocol 1 lacks a strong mechanism for ensuring the 711integrity of the connection. 712.Pp 713The methods available for authentication are: 714GSSAPI-based authentication, 715host-based authentication, 716public key authentication, 717challenge-response authentication, 718and password authentication. 719Authentication methods are tried in the order specified above, 720though protocol 2 has a configuration option to change the default order: 721.Cm PreferredAuthentications . 722.Pp 723Host-based authentication works as follows: 724If the machine the user logs in from is listed in 725.Pa /etc/hosts.equiv 726or 727.Pa /etc/shosts.equiv 728on the remote machine, and the user names are 729the same on both sides, or if the files 730.Pa ~/.rhosts 731or 732.Pa ~/.shosts 733exist in the user's home directory on the 734remote machine and contain a line containing the name of the client 735machine and the name of the user on that machine, the user is 736considered for login. 737Additionally, the server 738.Em must 739be able to verify the client's 740host key (see the description of 741.Pa /etc/ssh/ssh_known_hosts 742and 743.Pa ~/.ssh/known_hosts , 744below) 745for login to be permitted. 746This authentication method closes security holes due to IP 747spoofing, DNS spoofing, and routing spoofing. 748[Note to the administrator: 749.Pa /etc/hosts.equiv , 750.Pa ~/.rhosts , 751and the rlogin/rsh protocol in general, are inherently insecure and should be 752disabled if security is desired.] 753.Pp 754Public key authentication works as follows: 755The scheme is based on public-key cryptography, 756using cryptosystems 757where encryption and decryption are done using separate keys, 758and it is unfeasible to derive the decryption key from the encryption key. 759The idea is that each user creates a public/private 760key pair for authentication purposes. 761The server knows the public key, and only the user knows the private key. 762.Nm 763implements public key authentication protocol automatically, 764using one of the DSA, ECDSA, Ed25519 or RSA algorithms. 765Protocol 1 is restricted to using only RSA keys, 766but protocol 2 may use any. 767The HISTORY section of 768.Xr ssl 8 769contains a brief discussion of the DSA and RSA algorithms. 770.Pp 771The file 772.Pa ~/.ssh/authorized_keys 773lists the public keys that are permitted for logging in. 774When the user logs in, the 775.Nm 776program tells the server which key pair it would like to use for 777authentication. 778The client proves that it has access to the private key 779and the server checks that the corresponding public key 780is authorized to accept the account. 781.Pp 782The user creates his/her key pair by running 783.Xr ssh-keygen 1 . 784This stores the private key in 785.Pa ~/.ssh/identity 786(protocol 1), 787.Pa ~/.ssh/id_dsa 788(protocol 2 DSA), 789.Pa ~/.ssh/id_ecdsa 790(protocol 2 ECDSA), 791.Pa ~/.ssh/id_ed25519 792(protocol 2 Ed25519), 793or 794.Pa ~/.ssh/id_rsa 795(protocol 2 RSA) 796and stores the public key in 797.Pa ~/.ssh/identity.pub 798(protocol 1), 799.Pa ~/.ssh/id_dsa.pub 800(protocol 2 DSA), 801.Pa ~/.ssh/id_ecdsa.pub 802(protocol 2 ECDSA), 803.Pa ~/.ssh/id_ed25519.pub 804(protocol 2 Ed25519), 805or 806.Pa ~/.ssh/id_rsa.pub 807(protocol 2 RSA) 808in the user's home directory. 809The user should then copy the public key 810to 811.Pa ~/.ssh/authorized_keys 812in his/her home directory on the remote machine. 813The 814.Pa authorized_keys 815file corresponds to the conventional 816.Pa ~/.rhosts 817file, and has one key 818per line, though the lines can be very long. 819After this, the user can log in without giving the password. 820.Pp 821A variation on public key authentication 822is available in the form of certificate authentication: 823instead of a set of public/private keys, 824signed certificates are used. 825This has the advantage that a single trusted certification authority 826can be used in place of many public/private keys. 827See the CERTIFICATES section of 828.Xr ssh-keygen 1 829for more information. 830.Pp 831The most convenient way to use public key or certificate authentication 832may be with an authentication agent. 833See 834.Xr ssh-agent 1 835for more information. 836.Pp 837Challenge-response authentication works as follows: 838The server sends an arbitrary 839.Qq challenge 840text, and prompts for a response. 841Protocol 2 allows multiple challenges and responses; 842protocol 1 is restricted to just one challenge/response. 843Examples of challenge-response authentication include 844.Bx 845Authentication (see 846.Xr login.conf 5 ) 847and PAM (some 848.Pf non- Ox 849systems). 850.Pp 851Finally, if other authentication methods fail, 852.Nm 853prompts the user for a password. 854The password is sent to the remote 855host for checking; however, since all communications are encrypted, 856the password cannot be seen by someone listening on the network. 857.Pp 858.Nm 859automatically maintains and checks a database containing 860identification for all hosts it has ever been used with. 861Host keys are stored in 862.Pa ~/.ssh/known_hosts 863in the user's home directory. 864Additionally, the file 865.Pa /etc/ssh/ssh_known_hosts 866is automatically checked for known hosts. 867Any new hosts are automatically added to the user's file. 868If a host's identification ever changes, 869.Nm 870warns about this and disables password authentication to prevent 871server spoofing or man-in-the-middle attacks, 872which could otherwise be used to circumvent the encryption. 873The 874.Cm StrictHostKeyChecking 875option can be used to control logins to machines whose 876host key is not known or has changed. 877.Pp 878When the user's identity has been accepted by the server, the server 879either executes the given command in a non-interactive session or, 880if no command has been specified, logs into the machine and gives 881the user a normal shell as an interactive session. 882All communication with 883the remote command or shell will be automatically encrypted. 884.Pp 885If an interactive session is requested 886.Nm 887by default will only request a pseudo-terminal (pty) for interactive 888sessions when the client has one. 889The flags 890.Fl T 891and 892.Fl t 893can be used to override this behaviour. 894.Pp 895If a pseudo-terminal has been allocated the 896user may use the escape characters noted below. 897.Pp 898If no pseudo-terminal has been allocated, 899the session is transparent and can be used to reliably transfer binary data. 900On most systems, setting the escape character to 901.Dq none 902will also make the session transparent even if a tty is used. 903.Pp 904The session terminates when the command or shell on the remote 905machine exits and all X11 and TCP connections have been closed. 906.Sh ESCAPE CHARACTERS 907When a pseudo-terminal has been requested, 908.Nm 909supports a number of functions through the use of an escape character. 910.Pp 911A single tilde character can be sent as 912.Ic ~~ 913or by following the tilde by a character other than those described below. 914The escape character must always follow a newline to be interpreted as 915special. 916The escape character can be changed in configuration files using the 917.Cm EscapeChar 918configuration directive or on the command line by the 919.Fl e 920option. 921.Pp 922The supported escapes (assuming the default 923.Ql ~ ) 924are: 925.Bl -tag -width Ds 926.It Cm ~. 927Disconnect. 928.It Cm ~^Z 929Background 930.Nm . 931.It Cm ~# 932List forwarded connections. 933.It Cm ~& 934Background 935.Nm 936at logout when waiting for forwarded connection / X11 sessions to terminate. 937.It Cm ~? 938Display a list of escape characters. 939.It Cm ~B 940Send a BREAK to the remote system 941(only useful for SSH protocol version 2 and if the peer supports it). 942.It Cm ~C 943Open command line. 944Currently this allows the addition of port forwardings using the 945.Fl L , 946.Fl R 947and 948.Fl D 949options (see above). 950It also allows the cancellation of existing port-forwardings 951with 952.Sm off 953.Fl KL Oo Ar bind_address : Oc Ar port 954.Sm on 955for local, 956.Sm off 957.Fl KR Oo Ar bind_address : Oc Ar port 958.Sm on 959for remote and 960.Sm off 961.Fl KD Oo Ar bind_address : Oc Ar port 962.Sm on 963for dynamic port-forwardings. 964.Ic !\& Ns Ar command 965allows the user to execute a local command if the 966.Ic PermitLocalCommand 967option is enabled in 968.Xr ssh_config 5 . 969Basic help is available, using the 970.Fl h 971option. 972.It Cm ~R 973Request rekeying of the connection 974(only useful for SSH protocol version 2 and if the peer supports it). 975.It Cm ~V 976Decrease the verbosity 977.Pq Ic LogLevel 978when errors are being written to stderr. 979.It Cm ~v 980Increase the verbosity 981.Pq Ic LogLevel 982when errors are being written to stderr. 983.El 984.Sh TCP FORWARDING 985Forwarding of arbitrary TCP connections over the secure channel can 986be specified either on the command line or in a configuration file. 987One possible application of TCP forwarding is a secure connection to a 988mail server; another is going through firewalls. 989.Pp 990In the example below, we look at encrypting communication between 991an IRC client and server, even though the IRC server does not directly 992support encrypted communications. 993This works as follows: 994the user connects to the remote host using 995.Nm , 996specifying a port to be used to forward connections 997to the remote server. 998After that it is possible to start the service which is to be encrypted 999on the client machine, 1000connecting to the same local port, 1001and 1002.Nm 1003will encrypt and forward the connection. 1004.Pp 1005The following example tunnels an IRC session from client machine 1006.Dq 127.0.0.1 1007(localhost) 1008to remote server 1009.Dq server.example.com : 1010.Bd -literal -offset 4n 1011$ ssh -f -L 1234:localhost:6667 server.example.com sleep 10 1012$ irc -c '#users' -p 1234 pinky 127.0.0.1 1013.Ed 1014.Pp 1015This tunnels a connection to IRC server 1016.Dq server.example.com , 1017joining channel 1018.Dq #users , 1019nickname 1020.Dq pinky , 1021using port 1234. 1022It doesn't matter which port is used, 1023as long as it's greater than 1023 1024(remember, only root can open sockets on privileged ports) 1025and doesn't conflict with any ports already in use. 1026The connection is forwarded to port 6667 on the remote server, 1027since that's the standard port for IRC services. 1028.Pp 1029The 1030.Fl f 1031option backgrounds 1032.Nm 1033and the remote command 1034.Dq sleep 10 1035is specified to allow an amount of time 1036(10 seconds, in the example) 1037to start the service which is to be tunnelled. 1038If no connections are made within the time specified, 1039.Nm 1040will exit. 1041.Sh X11 FORWARDING 1042If the 1043.Cm ForwardX11 1044variable is set to 1045.Dq yes 1046(or see the description of the 1047.Fl X , 1048.Fl x , 1049and 1050.Fl Y 1051options above) 1052and the user is using X11 (the 1053.Ev DISPLAY 1054environment variable is set), the connection to the X11 display is 1055automatically forwarded to the remote side in such a way that any X11 1056programs started from the shell (or command) will go through the 1057encrypted channel, and the connection to the real X server will be made 1058from the local machine. 1059The user should not manually set 1060.Ev DISPLAY . 1061Forwarding of X11 connections can be 1062configured on the command line or in configuration files. 1063.Pp 1064The 1065.Ev DISPLAY 1066value set by 1067.Nm 1068will point to the server machine, but with a display number greater than zero. 1069This is normal, and happens because 1070.Nm 1071creates a 1072.Dq proxy 1073X server on the server machine for forwarding the 1074connections over the encrypted channel. 1075.Pp 1076.Nm 1077will also automatically set up Xauthority data on the server machine. 1078For this purpose, it will generate a random authorization cookie, 1079store it in Xauthority on the server, and verify that any forwarded 1080connections carry this cookie and replace it by the real cookie when 1081the connection is opened. 1082The real authentication cookie is never 1083sent to the server machine (and no cookies are sent in the plain). 1084.Pp 1085If the 1086.Cm ForwardAgent 1087variable is set to 1088.Dq yes 1089(or see the description of the 1090.Fl A 1091and 1092.Fl a 1093options above) and 1094the user is using an authentication agent, the connection to the agent 1095is automatically forwarded to the remote side. 1096.Sh VERIFYING HOST KEYS 1097When connecting to a server for the first time, 1098a fingerprint of the server's public key is presented to the user 1099(unless the option 1100.Cm StrictHostKeyChecking 1101has been disabled). 1102Fingerprints can be determined using 1103.Xr ssh-keygen 1 : 1104.Pp 1105.Dl $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key 1106.Pp 1107If the fingerprint is already known, it can be matched 1108and the key can be accepted or rejected. 1109Because of the difficulty of comparing host keys 1110just by looking at fingerprint strings, 1111there is also support to compare host keys visually, 1112using 1113.Em random art . 1114By setting the 1115.Cm VisualHostKey 1116option to 1117.Dq yes , 1118a small ASCII graphic gets displayed on every login to a server, no matter 1119if the session itself is interactive or not. 1120By learning the pattern a known server produces, a user can easily 1121find out that the host key has changed when a completely different pattern 1122is displayed. 1123Because these patterns are not unambiguous however, a pattern that looks 1124similar to the pattern remembered only gives a good probability that the 1125host key is the same, not guaranteed proof. 1126.Pp 1127To get a listing of the fingerprints along with their random art for 1128all known hosts, the following command line can be used: 1129.Pp 1130.Dl $ ssh-keygen -lv -f ~/.ssh/known_hosts 1131.Pp 1132If the fingerprint is unknown, 1133an alternative method of verification is available: 1134SSH fingerprints verified by DNS. 1135An additional resource record (RR), 1136SSHFP, 1137is added to a zonefile 1138and the connecting client is able to match the fingerprint 1139with that of the key presented. 1140.Pp 1141In this example, we are connecting a client to a server, 1142.Dq host.example.com . 1143The SSHFP resource records should first be added to the zonefile for 1144host.example.com: 1145.Bd -literal -offset indent 1146$ ssh-keygen -r host.example.com. 1147.Ed 1148.Pp 1149The output lines will have to be added to the zonefile. 1150To check that the zone is answering fingerprint queries: 1151.Pp 1152.Dl $ dig -t SSHFP host.example.com 1153.Pp 1154Finally the client connects: 1155.Bd -literal -offset indent 1156$ ssh -o "VerifyHostKeyDNS ask" host.example.com 1157[...] 1158Matching host key fingerprint found in DNS. 1159Are you sure you want to continue connecting (yes/no)? 1160.Ed 1161.Pp 1162See the 1163.Cm VerifyHostKeyDNS 1164option in 1165.Xr ssh_config 5 1166for more information. 1167.Sh SSH-BASED VIRTUAL PRIVATE NETWORKS 1168.Nm 1169contains support for Virtual Private Network (VPN) tunnelling 1170using the 1171.Xr tun 4 1172network pseudo-device, 1173allowing two networks to be joined securely. 1174The 1175.Xr sshd_config 5 1176configuration option 1177.Cm PermitTunnel 1178controls whether the server supports this, 1179and at what level (layer 2 or 3 traffic). 1180.Pp 1181The following example would connect client network 10.0.50.0/24 1182with remote network 10.0.99.0/24 using a point-to-point connection 1183from 10.1.1.1 to 10.1.1.2, 1184provided that the SSH server running on the gateway to the remote network, 1185at 192.168.1.15, allows it. 1186.Pp 1187On the client: 1188.Bd -literal -offset indent 1189# ssh -f -w 0:1 192.168.1.15 true 1190# ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 1191# route add 10.0.99.0/24 10.1.1.2 1192.Ed 1193.Pp 1194On the server: 1195.Bd -literal -offset indent 1196# ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 1197# route add 10.0.50.0/24 10.1.1.1 1198.Ed 1199.Pp 1200Client access may be more finely tuned via the 1201.Pa /root/.ssh/authorized_keys 1202file (see below) and the 1203.Cm PermitRootLogin 1204server option. 1205The following entry would permit connections on 1206.Xr tun 4 1207device 1 from user 1208.Dq jane 1209and on tun device 2 from user 1210.Dq john , 1211if 1212.Cm PermitRootLogin 1213is set to 1214.Dq forced-commands-only : 1215.Bd -literal -offset 2n 1216tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane 1217tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john 1218.Ed 1219.Pp 1220Since an SSH-based setup entails a fair amount of overhead, 1221it may be more suited to temporary setups, 1222such as for wireless VPNs. 1223More permanent VPNs are better provided by tools such as 1224.Xr ipsecctl 8 1225and 1226.Xr isakmpd 8 . 1227.Sh ENVIRONMENT 1228.Nm 1229will normally set the following environment variables: 1230.Bl -tag -width "SSH_ORIGINAL_COMMAND" 1231.It Ev DISPLAY 1232The 1233.Ev DISPLAY 1234variable indicates the location of the X11 server. 1235It is automatically set by 1236.Nm 1237to point to a value of the form 1238.Dq hostname:n , 1239where 1240.Dq hostname 1241indicates the host where the shell runs, and 1242.Sq n 1243is an integer \*(Ge 1. 1244.Nm 1245uses this special value to forward X11 connections over the secure 1246channel. 1247The user should normally not set 1248.Ev DISPLAY 1249explicitly, as that 1250will render the X11 connection insecure (and will require the user to 1251manually copy any required authorization cookies). 1252.It Ev HOME 1253Set to the path of the user's home directory. 1254.It Ev LOGNAME 1255Synonym for 1256.Ev USER ; 1257set for compatibility with systems that use this variable. 1258.It Ev MAIL 1259Set to the path of the user's mailbox. 1260.It Ev PATH 1261Set to the default 1262.Ev PATH , 1263as specified when compiling 1264.Nm . 1265.It Ev SSH_ASKPASS 1266If 1267.Nm 1268needs a passphrase, it will read the passphrase from the current 1269terminal if it was run from a terminal. 1270If 1271.Nm 1272does not have a terminal associated with it but 1273.Ev DISPLAY 1274and 1275.Ev SSH_ASKPASS 1276are set, it will execute the program specified by 1277.Ev SSH_ASKPASS 1278and open an X11 window to read the passphrase. 1279This is particularly useful when calling 1280.Nm 1281from a 1282.Pa .xsession 1283or related script. 1284(Note that on some machines it 1285may be necessary to redirect the input from 1286.Pa /dev/null 1287to make this work.) 1288.It Ev SSH_AUTH_SOCK 1289Identifies the path of a 1290.Ux Ns -domain 1291socket used to communicate with the agent. 1292.It Ev SSH_CONNECTION 1293Identifies the client and server ends of the connection. 1294The variable contains 1295four space-separated values: client IP address, client port number, 1296server IP address, and server port number. 1297.It Ev SSH_ORIGINAL_COMMAND 1298This variable contains the original command line if a forced command 1299is executed. 1300It can be used to extract the original arguments. 1301.It Ev SSH_TTY 1302This is set to the name of the tty (path to the device) associated 1303with the current shell or command. 1304If the current session has no tty, 1305this variable is not set. 1306.It Ev TZ 1307This variable is set to indicate the present time zone if it 1308was set when the daemon was started (i.e. the daemon passes the value 1309on to new connections). 1310.It Ev USER 1311Set to the name of the user logging in. 1312.El 1313.Pp 1314Additionally, 1315.Nm 1316reads 1317.Pa ~/.ssh/environment , 1318and adds lines of the format 1319.Dq VARNAME=value 1320to the environment if the file exists and users are allowed to 1321change their environment. 1322For more information, see the 1323.Cm PermitUserEnvironment 1324option in 1325.Xr sshd_config 5 . 1326.Sh FILES 1327.Bl -tag -width Ds -compact 1328.It Pa ~/.rhosts 1329This file is used for host-based authentication (see above). 1330On some machines this file may need to be 1331world-readable if the user's home directory is on an NFS partition, 1332because 1333.Xr sshd 8 1334reads it as root. 1335Additionally, this file must be owned by the user, 1336and must not have write permissions for anyone else. 1337The recommended 1338permission for most machines is read/write for the user, and not 1339accessible by others. 1340.Pp 1341.It Pa ~/.shosts 1342This file is used in exactly the same way as 1343.Pa .rhosts , 1344but allows host-based authentication without permitting login with 1345rlogin/rsh. 1346.Pp 1347.It Pa ~/.ssh/ 1348This directory is the default location for all user-specific configuration 1349and authentication information. 1350There is no general requirement to keep the entire contents of this directory 1351secret, but the recommended permissions are read/write/execute for the user, 1352and not accessible by others. 1353.Pp 1354.It Pa ~/.ssh/authorized_keys 1355Lists the public keys (DSA, ECDSA, Ed25519, RSA) 1356that can be used for logging in as this user. 1357The format of this file is described in the 1358.Xr sshd 8 1359manual page. 1360This file is not highly sensitive, but the recommended 1361permissions are read/write for the user, and not accessible by others. 1362.Pp 1363.It Pa ~/.ssh/config 1364This is the per-user configuration file. 1365The file format and configuration options are described in 1366.Xr ssh_config 5 . 1367Because of the potential for abuse, this file must have strict permissions: 1368read/write for the user, and not writable by others. 1369.Pp 1370.It Pa ~/.ssh/environment 1371Contains additional definitions for environment variables; see 1372.Sx ENVIRONMENT , 1373above. 1374.Pp 1375.It Pa ~/.ssh/identity 1376.It Pa ~/.ssh/id_dsa 1377.It Pa ~/.ssh/id_ecdsa 1378.It Pa ~/.ssh/id_ed25519 1379.It Pa ~/.ssh/id_rsa 1380Contains the private key for authentication. 1381These files 1382contain sensitive data and should be readable by the user but not 1383accessible by others (read/write/execute). 1384.Nm 1385will simply ignore a private key file if it is accessible by others. 1386It is possible to specify a passphrase when 1387generating the key which will be used to encrypt the 1388sensitive part of this file using 3DES. 1389.Pp 1390.It Pa ~/.ssh/identity.pub 1391.It Pa ~/.ssh/id_dsa.pub 1392.It Pa ~/.ssh/id_ecdsa.pub 1393.It Pa ~/.ssh/id_ed25519.pub 1394.It Pa ~/.ssh/id_rsa.pub 1395Contains the public key for authentication. 1396These files are not 1397sensitive and can (but need not) be readable by anyone. 1398.Pp 1399.It Pa ~/.ssh/known_hosts 1400Contains a list of host keys for all hosts the user has logged into 1401that are not already in the systemwide list of known host keys. 1402See 1403.Xr sshd 8 1404for further details of the format of this file. 1405.Pp 1406.It Pa ~/.ssh/rc 1407Commands in this file are executed by 1408.Nm 1409when the user logs in, just before the user's shell (or command) is 1410started. 1411See the 1412.Xr sshd 8 1413manual page for more information. 1414.Pp 1415.It Pa /etc/hosts.equiv 1416This file is for host-based authentication (see above). 1417It should only be writable by root. 1418.Pp 1419.It Pa /etc/shosts.equiv 1420This file is used in exactly the same way as 1421.Pa hosts.equiv , 1422but allows host-based authentication without permitting login with 1423rlogin/rsh. 1424.Pp 1425.It Pa /etc/ssh/ssh_config 1426Systemwide configuration file. 1427The file format and configuration options are described in 1428.Xr ssh_config 5 . 1429.Pp 1430.It Pa /etc/ssh/ssh_host_key 1431.It Pa /etc/ssh/ssh_host_dsa_key 1432.It Pa /etc/ssh/ssh_host_ecdsa_key 1433.It Pa /etc/ssh/ssh_host_ed25519_key 1434.It Pa /etc/ssh/ssh_host_rsa_key 1435These files contain the private parts of the host keys 1436and are used for host-based authentication. 1437If protocol version 1 is used, 1438.Nm 1439must be setuid root, since the host key is readable only by root. 1440For protocol version 2, 1441.Nm 1442uses 1443.Xr ssh-keysign 8 1444to access the host keys, 1445eliminating the requirement that 1446.Nm 1447be setuid root when host-based authentication is used. 1448By default 1449.Nm 1450is not setuid root. 1451.Pp 1452.It Pa /etc/ssh/ssh_known_hosts 1453Systemwide list of known host keys. 1454This file should be prepared by the 1455system administrator to contain the public host keys of all machines in the 1456organization. 1457It should be world-readable. 1458See 1459.Xr sshd 8 1460for further details of the format of this file. 1461.Pp 1462.It Pa /etc/ssh/sshrc 1463Commands in this file are executed by 1464.Nm 1465when the user logs in, just before the user's shell (or command) is started. 1466See the 1467.Xr sshd 8 1468manual page for more information. 1469.El 1470.Sh EXIT STATUS 1471.Nm 1472exits with the exit status of the remote command or with 255 1473if an error occurred. 1474.Sh SEE ALSO 1475.Xr scp 1 , 1476.Xr sftp 1 , 1477.Xr ssh-add 1 , 1478.Xr ssh-agent 1 , 1479.Xr ssh-keygen 1 , 1480.Xr ssh-keyscan 1 , 1481.Xr tun 4 , 1482.Xr ssh_config 5 , 1483.Xr ssh-keysign 8 , 1484.Xr sshd 8 1485.Sh STANDARDS 1486.Rs 1487.%A S. Lehtinen 1488.%A C. Lonvick 1489.%D January 2006 1490.%R RFC 4250 1491.%T The Secure Shell (SSH) Protocol Assigned Numbers 1492.Re 1493.Pp 1494.Rs 1495.%A T. Ylonen 1496.%A C. Lonvick 1497.%D January 2006 1498.%R RFC 4251 1499.%T The Secure Shell (SSH) Protocol Architecture 1500.Re 1501.Pp 1502.Rs 1503.%A T. Ylonen 1504.%A C. Lonvick 1505.%D January 2006 1506.%R RFC 4252 1507.%T The Secure Shell (SSH) Authentication Protocol 1508.Re 1509.Pp 1510.Rs 1511.%A T. Ylonen 1512.%A C. Lonvick 1513.%D January 2006 1514.%R RFC 4253 1515.%T The Secure Shell (SSH) Transport Layer Protocol 1516.Re 1517.Pp 1518.Rs 1519.%A T. Ylonen 1520.%A C. Lonvick 1521.%D January 2006 1522.%R RFC 4254 1523.%T The Secure Shell (SSH) Connection Protocol 1524.Re 1525.Pp 1526.Rs 1527.%A J. Schlyter 1528.%A W. Griffin 1529.%D January 2006 1530.%R RFC 4255 1531.%T Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints 1532.Re 1533.Pp 1534.Rs 1535.%A F. Cusack 1536.%A M. Forssen 1537.%D January 2006 1538.%R RFC 4256 1539.%T Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) 1540.Re 1541.Pp 1542.Rs 1543.%A J. Galbraith 1544.%A P. Remaker 1545.%D January 2006 1546.%R RFC 4335 1547.%T The Secure Shell (SSH) Session Channel Break Extension 1548.Re 1549.Pp 1550.Rs 1551.%A M. Bellare 1552.%A T. Kohno 1553.%A C. Namprempre 1554.%D January 2006 1555.%R RFC 4344 1556.%T The Secure Shell (SSH) Transport Layer Encryption Modes 1557.Re 1558.Pp 1559.Rs 1560.%A B. Harris 1561.%D January 2006 1562.%R RFC 4345 1563.%T Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol 1564.Re 1565.Pp 1566.Rs 1567.%A M. Friedl 1568.%A N. Provos 1569.%A W. Simpson 1570.%D March 2006 1571.%R RFC 4419 1572.%T Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol 1573.Re 1574.Pp 1575.Rs 1576.%A J. Galbraith 1577.%A R. Thayer 1578.%D November 2006 1579.%R RFC 4716 1580.%T The Secure Shell (SSH) Public Key File Format 1581.Re 1582.Pp 1583.Rs 1584.%A D. Stebila 1585.%A J. Green 1586.%D December 2009 1587.%R RFC 5656 1588.%T Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer 1589.Re 1590.Pp 1591.Rs 1592.%A A. Perrig 1593.%A D. Song 1594.%D 1999 1595.%O International Workshop on Cryptographic Techniques and E-Commerce (CrypTEC '99) 1596.%T Hash Visualization: a New Technique to improve Real-World Security 1597.Re 1598.Sh AUTHORS 1599OpenSSH is a derivative of the original and free 1600ssh 1.2.12 release by Tatu Ylonen. 1601Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, 1602Theo de Raadt and Dug Song 1603removed many bugs, re-added newer features and 1604created OpenSSH. 1605Markus Friedl contributed the support for SSH 1606protocol versions 1.5 and 2.0. 1607