]> andersk Git - openssh.git/blame - ssh.1
- jmc@cvs.openbsd.org 2005/12/07 10:52:13
[openssh.git] / ssh.1
CommitLineData
bf740959 1.\" -*- nroff -*-
2.\"
bf740959 3.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
bf740959 4.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
5.\" All rights reserved
6.\"
bcbf86ec 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.\"
f3c7c613 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.
bcbf86ec 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.
bf740959 25.\"
bcbf86ec 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.
bf740959 36.\"
985bb789 37.\" $OpenBSD: ssh.1,v 1.216 2005/12/07 10:52:13 jmc Exp $
bf740959 38.Dd September 25, 1999
39.Dt SSH 1
40.Os
41.Sh NAME
42.Nm ssh
2c86906e 43.Nd OpenSSH SSH client (remote login program)
bf740959 44.Sh SYNOPSIS
45.Nm ssh
0e19494c 46.Op Fl 1246AaCfgkMNnqsTtVvXxY
3435f5a6 47.Op Fl b Ar bind_address
d0c832f3 48.Op Fl c Ar cipher_spec
5ddc5eb4 49.Oo Fl D\ \&
50.Sm off
51.Oo Ar bind_address : Oc
52.Ar port
53.Sm on
54.Oc
bf740959 55.Op Fl e Ar escape_char
e591b98a 56.Op Fl F Ar configfile
37c406a8 57.Bk -words
5f4a0c58 58.Op Fl i Ar identity_file
37c406a8 59.Ek
6c7e3b94 60.Oo Fl L\ \&
bf740959 61.Sm off
3867aa0a 62.Oo Ar bind_address : Oc
6c7e3b94 63.Ar port : host : hostport
bf740959 64.Sm on
bf740959 65.Oc
37c406a8 66.Bk -words
5f4a0c58 67.Op Fl l Ar login_name
37c406a8 68.Ek
5f4a0c58 69.Op Fl m Ar mac_spec
f8c6db83 70.Op Fl O Ar ctl_cmd
5f4a0c58 71.Op Fl o Ar option
5f4a0c58 72.Op Fl p Ar port
6c7e3b94 73.Oo Fl R\ \&
bf740959 74.Sm off
3867aa0a 75.Oo Ar bind_address : Oc
6c7e3b94 76.Ar port : host : hostport
bf740959 77.Sm on
bf740959 78.Oc
f8c6db83 79.Op Fl S Ar ctl_path
985bb789 80.Bk -words
81.Op Fl w Ar tunnel : Ns Ar tunnel
5f4a0c58 82.Oo Ar user Ns @ Oc Ns Ar hostname
bf740959 83.Op Ar command
985bb789 84.Ek
f54651ce 85.Sh DESCRIPTION
bf740959 86.Nm
2c86906e 87(SSH client) is a program for logging into a remote machine and for
610cd5c6 88executing commands on a remote machine.
5f4a0c58 89It is intended to replace rlogin and rsh,
90and provide secure encrypted communications between
610cd5c6 91two untrusted hosts over an insecure network.
5f4a0c58 92X11 connections and arbitrary TCP/IP ports
93can also be forwarded over the secure channel.
bf740959 94.Pp
95.Nm
f54651ce 96connects and logs into the specified
5f4a0c58 97.Ar hostname
98(with optional
99.Ar user
100name).
bf740959 101The user must prove
1d1ffb87 102his/her identity to the remote machine using one of several methods
5f4a0c58 103depending on the protocol version used.
1d1ffb87 104.Pp
5f4a0c58 105If
106.Ar command
107is specified,
108.Ar command
109is executed on the remote host instead of a login shell.
1d1ffb87 110.Ss SSH protocol version 1
6f5abc1e 111The first authentication method is the
112.Em rhosts
113or
114.Em hosts.equiv
115method combined with RSA-based host authentication.
116If the machine the user logs in from is listed in
bf740959 117.Pa /etc/hosts.equiv
118or
5f4fdfae 119.Pa /etc/shosts.equiv
bf740959 120on the remote machine, and the user names are
6f5abc1e 121the same on both sides, or if the files
140e3e97 122.Pa ~/.rhosts
bf740959 123or
140e3e97 124.Pa ~/.shosts
6f5abc1e 125exist in the user's home directory on the
126remote machine and contain a line containing the name of the client
bf740959 127machine and the name of the user on that machine, the user is
6f5abc1e 128considered for log in.
129Additionally, if the server can verify the client's
f54651ce 130host key (see
2a8a6488 131.Pa /etc/ssh/ssh_known_hosts
5bbb5681 132and
140e3e97 133.Pa ~/.ssh/known_hosts
bf740959 134in the
135.Sx FILES
5f4a0c58 136section), only then is login permitted.
610cd5c6 137This authentication method closes security holes due to IP
138spoofing, DNS spoofing and routing spoofing.
139[Note to the administrator:
bf740959 140.Pa /etc/hosts.equiv ,
140e3e97 141.Pa ~/.rhosts ,
bf740959 142and the rlogin/rsh protocol in general, are inherently insecure and should be
143disabled if security is desired.]
144.Pp
6f5abc1e 145As a second authentication method,
bf740959 146.Nm
147supports RSA based authentication.
148The scheme is based on public-key cryptography: there are cryptosystems
149where encryption and decryption are done using separate keys, and it
150is not possible to derive the decryption key from the encryption key.
610cd5c6 151RSA is one such system.
f54651ce 152The idea is that each user creates a public/private
610cd5c6 153key pair for authentication purposes.
154The server knows the public key, and only the user knows the private key.
5f4a0c58 155.Pp
f54651ce 156The file
140e3e97 157.Pa ~/.ssh/authorized_keys
5f4a0c58 158lists the public keys that are permitted for logging in.
610cd5c6 159When the user logs in, the
bf740959 160.Nm
161program tells the server which key pair it would like to use for
610cd5c6 162authentication.
5f4a0c58 163The server checks if this key is permitted, and if so,
164sends the user (actually the
bf740959 165.Nm
166program running on behalf of the user) a challenge, a random number,
610cd5c6 167encrypted by the user's public key.
5f4a0c58 168The challenge can only be decrypted using the proper private key.
169The user's client then decrypts the challenge using the private key,
170proving that he/she knows the private key
171but without disclosing it to the server.
bf740959 172.Pp
173.Nm
610cd5c6 174implements the RSA authentication protocol automatically.
175The user creates his/her RSA key pair by running
bf740959 176.Xr ssh-keygen 1 .
f54651ce 177This stores the private key in
140e3e97 178.Pa ~/.ssh/identity
5f4a0c58 179and stores the public key in
140e3e97 180.Pa ~/.ssh/identity.pub
610cd5c6 181in the user's home directory.
182The user should then copy the
bf740959 183.Pa identity.pub
f54651ce 184to
140e3e97 185.Pa ~/.ssh/authorized_keys
f54651ce 186in his/her home directory on the remote machine (the
bf740959 187.Pa authorized_keys
f54651ce 188file corresponds to the conventional
140e3e97 189.Pa ~/.rhosts
bf740959 190file, and has one key
610cd5c6 191per line, though the lines can be very long).
192After this, the user can log in without giving the password.
bf740959 193.Pp
194The most convenient way to use RSA authentication may be with an
610cd5c6 195authentication agent.
196See
bf740959 197.Xr ssh-agent 1
198for more information.
199.Pp
f54651ce 200If other authentication methods fail,
bf740959 201.Nm
610cd5c6 202prompts the user for a password.
203The password is sent to the remote
bf740959 204host for checking; however, since all communications are encrypted,
205the password cannot be seen by someone listening on the network.
1d1ffb87 206.Ss SSH protocol version 2
5f4a0c58 207When a user connects using protocol version 2,
16210ef7 208similar authentication methods are available.
da89cf4d 209Using the default values for
210.Cm PreferredAuthentications ,
29c440a0 211the client will try to authenticate first using the hostbased method;
5f4a0c58 212if this method fails, public key authentication is attempted,
213and finally if this method fails, keyboard-interactive and
29c440a0 214password authentication are tried.
1d1ffb87 215.Pp
216The public key method is similar to RSA authentication described
da89cf4d 217in the previous section and allows the RSA or DSA algorithm to be used:
c0ecc314 218The client uses his private key,
140e3e97 219.Pa ~/.ssh/id_dsa
c0ecc314 220or
140e3e97 221.Pa ~/.ssh/id_rsa ,
1d1ffb87 222to sign the session identifier and sends the result to the server.
223The server checks whether the matching public key is listed in
140e3e97 224.Pa ~/.ssh/authorized_keys
1d1ffb87 225and grants access if both the key is found and the signature is correct.
226The session identifier is derived from a shared Diffie-Hellman value
227and is only known to the client and the server.
228.Pp
5f4a0c58 229If public key authentication fails or is not available, a password
230can be sent encrypted to the remote host to prove the user's identity.
da89cf4d 231.Pp
232Additionally,
233.Nm
234supports hostbased or challenge response authentication.
1d1ffb87 235.Pp
236Protocol 2 provides additional mechanisms for confidentiality
3b9baa7b 237(the traffic is encrypted using AES, 3DES, Blowfish, CAST128 or Arcfour)
238and integrity (hmac-md5, hmac-sha1, hmac-ripemd160).
1d1ffb87 239Note that protocol 1 lacks a strong mechanism for ensuring the
240integrity of the connection.
1d1ffb87 241.Ss Login session and remote execution
bf740959 242When the user's identity has been accepted by the server, the server
243either executes the given command, or logs into the machine and gives
610cd5c6 244the user a normal shell on the remote machine.
245All communication with
bf740959 246the remote command or shell will be automatically encrypted.
247.Pp
248If a pseudo-terminal has been allocated (normal login session), the
df841692 249user may use the escape characters noted below.
bf740959 250.Pp
5f4a0c58 251If no pseudo-tty has been allocated,
252the session is transparent and can be used to reliably transfer binary data.
610cd5c6 253On most systems, setting the escape character to
bf740959 254.Dq none
255will also make the session transparent even if a tty is used.
256.Pp
ce9c0b75 257The session terminates when the command or shell on the remote
e91c60f2 258machine exits and all X11 and TCP/IP connections have been closed.
5f4a0c58 259The exit status of the remote program is returned as the exit status of
bf740959 260.Nm ssh .
df841692 261.Ss Escape Characters
5f4a0c58 262When a pseudo-terminal has been requested,
263.Nm
264supports a number of functions through the use of an escape character.
df841692 265.Pp
266A single tilde character can be sent as
267.Ic ~~
5bef3c35 268or by following the tilde by a character other than those described below.
df841692 269The escape character must always follow a newline to be interpreted as
270special.
271The escape character can be changed in configuration files using the
272.Cm EscapeChar
3730bb22 273configuration directive or on the command line by the
df841692 274.Fl e
275option.
276.Pp
277The supported escapes (assuming the default
278.Ql ~ )
279are:
280.Bl -tag -width Ds
281.It Cm ~.
5f4a0c58 282Disconnect.
df841692 283.It Cm ~^Z
5f4a0c58 284Background
285.Nm ssh .
df841692 286.It Cm ~#
5f4a0c58 287List forwarded connections.
df841692 288.It Cm ~&
5f4a0c58 289Background
290.Nm
291at logout when waiting for forwarded connection / X11 sessions to terminate.
df841692 292.It Cm ~?
5f4a0c58 293Display a list of escape characters.
16a79097 294.It Cm ~B
5f4a0c58 295Send a BREAK to the remote system
296(only useful for SSH protocol version 2 and if the peer supports it).
c53c54c2 297.It Cm ~C
d740ec16 298Open command line.
299Currently this allows the addition of port forwardings using the
c53c54c2 300.Fl L
301and
302.Fl R
d740ec16 303options (see below).
790029d9 304It also allows the cancellation of existing remote port-forwardings
d740ec16 305using
306.Fl KR Ar hostport .
985bb789 307The
d20f3c9e 308.Ic ! Ar command
309allows the user to execute a local command if the
310.Ic PermitLocalCommand
311option is enabled in
312.Xr ssh_config 5 .
7069a5e2 313Basic help is available, using the
314.Fl h
d740ec16 315option.
df841692 316.It Cm ~R
5f4a0c58 317Request rekeying of the connection
318(only useful for SSH protocol version 2 and if the peer supports it).
df841692 319.El
1d1ffb87 320.Ss X11 and TCP forwarding
6efa3d14 321If the
322.Cm ForwardX11
323variable is set to
324.Dq yes
5f4a0c58 325(or see the description of the
6efa3d14 326.Fl X
327and
328.Fl x
329options described later)
330and the user is using X11 (the
bf740959 331.Ev DISPLAY
332environment variable is set), the connection to the X11 display is
333automatically forwarded to the remote side in such a way that any X11
334programs started from the shell (or command) will go through the
335encrypted channel, and the connection to the real X server will be made
610cd5c6 336from the local machine.
337The user should not manually set
bf740959 338.Ev DISPLAY .
339Forwarding of X11 connections can be
340configured on the command line or in configuration files.
341.Pp
342The
f54651ce 343.Ev DISPLAY
bf740959 344value set by
345.Nm
5f4a0c58 346will point to the server machine, but with a display number greater than zero.
610cd5c6 347This is normal, and happens because
bf740959 348.Nm
349creates a
350.Dq proxy
351X server on the server machine for forwarding the
352connections over the encrypted channel.
353.Pp
354.Nm
355will also automatically set up Xauthority data on the server machine.
356For this purpose, it will generate a random authorization cookie,
357store it in Xauthority on the server, and verify that any forwarded
358connections carry this cookie and replace it by the real cookie when
610cd5c6 359the connection is opened.
360The real authentication cookie is never
bf740959 361sent to the server machine (and no cookies are sent in the plain).
362.Pp
24794905 363If the
364.Cm ForwardAgent
365variable is set to
366.Dq yes
5f4a0c58 367(or see the description of the
24794905 368.Fl A
369and
370.Fl a
a4e5acef 371options described later) and
24794905 372the user is using an authentication agent, the connection to the agent
373is automatically forwarded to the remote side.
bf740959 374.Pp
375Forwarding of arbitrary TCP/IP connections over the secure channel can
491f5f7b 376be specified either on the command line or in a configuration file.
610cd5c6 377One possible application of TCP/IP forwarding is a secure connection to an
e91c60f2 378electronic purse; another is going through firewalls.
1d1ffb87 379.Ss Server authentication
bf740959 380.Nm
1d1ffb87 381automatically maintains and checks a database containing
610cd5c6 382identifications for all hosts it has ever been used with.
f49bc4f7 383Host keys are stored in
140e3e97 384.Pa ~/.ssh/known_hosts
610cd5c6 385in the user's home directory.
f49bc4f7 386Additionally, the file
2a8a6488 387.Pa /etc/ssh/ssh_known_hosts
f49bc4f7 388is automatically checked for known hosts.
610cd5c6 389Any new hosts are automatically added to the user's file.
5f4a0c58 390If a host's identification ever changes,
bf740959 391.Nm
392warns about this and disables password authentication to prevent a
610cd5c6 393trojan horse from getting the user's password.
5f4a0c58 394Another purpose of this mechanism is to prevent man-in-the-middle attacks
395which could otherwise be used to circumvent the encryption.
610cd5c6 396The
bf740959 397.Cm StrictHostKeyChecking
588df31a 398option can be used to prevent logins to machines whose
bf740959 399host key is not known or has changed.
fa08c86b 400.Pp
3a858356 401.Nm
402can be configured to verify host identification using fingerprint resource
403records (SSHFP) published in DNS.
404The
405.Cm VerifyHostKeyDNS
406option can be used to control how DNS lookups are performed.
407SSHFP resource records can be generated using
408.Xr ssh-keygen 1 .
409.Pp
fa08c86b 410The options are as follows:
bf740959 411.Bl -tag -width Ds
5f4a0c58 412.It Fl 1
413Forces
414.Nm
415to try protocol version 1 only.
416.It Fl 2
417Forces
418.Nm
419to try protocol version 2 only.
420.It Fl 4
421Forces
422.Nm
423to use IPv4 addresses only.
424.It Fl 6
425Forces
426.Nm
427to use IPv6 addresses only.
71276795 428.It Fl A
429Enables forwarding of the authentication agent connection.
430This can also be specified on a per-host basis in a configuration file.
07d688d5 431.Pp
a4e5acef 432Agent forwarding should be enabled with caution.
433Users with the ability to bypass file permissions on the remote host
434(for the agent's Unix-domain socket)
435can access the local agent through the forwarded connection.
436An attacker cannot obtain key material from the agent,
07d688d5 437however they can perform operations on the keys that enable them to
438authenticate using the identities loaded into the agent.
5f4a0c58 439.It Fl a
440Disables forwarding of the authentication agent connection.
3435f5a6 441.It Fl b Ar bind_address
143f17e8 442Use
443.Ar bind_address
444on the local machine as the source address
445of the connection.
446Only useful on systems with more than one address.
5f4a0c58 447.It Fl C
448Requests compression of all data (including stdin, stdout, stderr, and
449data for forwarded X11 and TCP/IP connections).
450The compression algorithm is the same used by
451.Xr gzip 1 ,
452and the
453.Dq level
454can be controlled by the
455.Cm CompressionLevel
456option for protocol version 1.
457Compression is desirable on modem lines and other
458slow connections, but will only slow down things on fast networks.
459The default value can be set on a host-by-host basis in the
460configuration files; see the
461.Cm Compression
462option.
3b9baa7b 463.It Fl c Ar cipher_spec
464Selects the cipher specification for encrypting the session.
465.Pp
466Protocol version 1 allows specification of a single cipher.
2915e42b 467The supported values are
3b9baa7b 468.Dq 3des ,
469.Dq blowfish
470and
471.Dq des .
bf740959 472.Ar 3des
473(triple-des) is an encrypt-decrypt-encrypt triple with three different keys.
3b9baa7b 474It is believed to be secure.
bf740959 475.Ar blowfish
5f4a0c58 476is a fast block cipher; it appears very secure and is much faster than
610cd5c6 477.Ar 3des .
29999e54 478.Ar des
479is only supported in the
480.Nm
481client for interoperability with legacy protocol 1 implementations
482that do not support the
483.Ar 3des
a4e5acef 484cipher.
485Its use is strongly discouraged due to cryptographic weaknesses.
3b9baa7b 486The default is
487.Dq 3des .
488.Pp
489For protocol version 2
490.Ar cipher_spec
491is a comma-separated list of ciphers
492listed in order of preference.
493The supported ciphers are
494.Dq 3des-cbc ,
495.Dq aes128-cbc ,
496.Dq aes192-cbc ,
497.Dq aes256-cbc ,
498.Dq aes128-ctr ,
499.Dq aes192-ctr ,
500.Dq aes256-ctr ,
74a66cc8 501.Dq arcfour128 ,
502.Dq arcfour256 ,
3b9baa7b 503.Dq arcfour ,
504.Dq blowfish-cbc ,
505and
506.Dq cast128-cbc .
507The default is
508.Bd -literal
74a66cc8 509 ``aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,
510 arcfour256,arcfour,aes192-cbc,aes256-cbc,aes128-ctr,
511 aes192-ctr,aes256-ctr''
3b9baa7b 512.Ed
5ddc5eb4 513.It Fl D Xo
514.Sm off
515.Oo Ar bind_address : Oc
516.Ar port
517.Sm on
518.Xc
5f4a0c58 519Specifies a local
520.Dq dynamic
521application-level port forwarding.
522This works by allocating a socket to listen to
523.Ar port
5ddc5eb4 524on the local side, optionally bound to the specified
525.Ar bind_address .
526Whenever a connection is made to this port, the
5f4a0c58 527connection is forwarded over the secure channel, and the application
528protocol is then used to determine where to connect to from the
529remote machine.
530Currently the SOCKS4 and SOCKS5 protocols are supported, and
531.Nm
532will act as a SOCKS server.
533Only root can forward privileged ports.
534Dynamic port forwardings can also be specified in the configuration file.
5ddc5eb4 535.Pp
536IPv6 addresses can be specified with an alternative syntax:
537.Sm off
538.Xo
539.Op Ar bind_address No /
540.Ar port
541.Xc
542.Sm on
543or by enclosing the address in square brackets.
544Only the superuser can forward privileged ports.
545By default, the local port is bound in accordance with the
546.Cm GatewayPorts
547setting.
548However, an explicit
549.Ar bind_address
550may be used to bind the connection to a specific address.
551The
552.Ar bind_address
553of
554.Dq localhost
555indicates that the listening port be bound for local use only, while an
556empty address or
557.Sq *
558indicates that the port should be available from all interfaces.
5f4a0c58 559.It Fl e Ar ch | ^ch | none
bf740959 560Sets the escape character for sessions with a pty (default:
561.Ql ~ ) .
610cd5c6 562The escape character is only recognized at the beginning of a line.
563The escape character followed by a dot
bf740959 564.Pq Ql \&.
5f4a0c58 565closes the connection;
566followed by control-Z suspends the connection;
567and followed by itself sends the escape character once.
610cd5c6 568Setting the character to
bf740959 569.Dq none
570disables any escapes and makes the session fully transparent.
5f4a0c58 571.It Fl F Ar configfile
572Specifies an alternative per-user configuration file.
573If a configuration file is given on the command line,
574the system-wide configuration file
575.Pq Pa /etc/ssh/ssh_config
576will be ignored.
577The default for the per-user configuration file is
140e3e97 578.Pa ~/.ssh/config .
bf740959 579.It Fl f
580Requests
581.Nm
610cd5c6 582to go to background just before command execution.
583This is useful if
bf740959 584.Nm
585is going to ask for passwords or passphrases, but the user
610cd5c6 586wants it in the background.
f54651ce 587This implies
bf740959 588.Fl n .
589The recommended way to start X11 programs at a remote site is with
590something like
591.Ic ssh -f host xterm .
7b2ea3a1 592.It Fl g
593Allows remote hosts to connect to local forwarded ports.
5f4a0c58 594.It Fl I Ar smartcard_device
595Specifies which smartcard device to use.
596The argument is the device
597.Nm
598should use to communicate with a smartcard used for storing the user's
599private RSA key.
bf740959 600.It Fl i Ar identity_file
cf5a07a8 601Selects a file from which the identity (private key) for
fa08c86b 602RSA or DSA authentication is read.
cf5a07a8 603The default is
140e3e97 604.Pa ~/.ssh/identity
cf5a07a8 605for protocol version 1, and
140e3e97 606.Pa ~/.ssh/id_rsa
cf5a07a8 607and
140e3e97 608.Pa ~/.ssh/id_dsa
cf5a07a8 609for protocol version 2.
610cd5c6 610Identity files may also be specified on
611a per-host basis in the configuration file.
612It is possible to have multiple
bf740959 613.Fl i
614options (and multiple identities specified in
615configuration files).
bf740959 616.It Fl k
f7926e97 617Disables forwarding (delegation) of GSSAPI credentials to the server.
5f4a0c58 618.It Fl L Xo
619.Sm off
3867aa0a 620.Oo Ar bind_address : Oc
5f4a0c58 621.Ar port : host : hostport
622.Sm on
623.Xc
624Specifies that the given port on the local (client) host is to be
625forwarded to the given host and port on the remote side.
626This works by allocating a socket to listen to
627.Ar port
3867aa0a 628on the local side, optionally bound to the specified
629.Ar bind_address .
630Whenever a connection is made to this port, the
5f4a0c58 631connection is forwarded over the secure channel, and a connection is
632made to
633.Ar host
634port
635.Ar hostport
636from the remote machine.
637Port forwardings can also be specified in the configuration file.
5f4a0c58 638IPv6 addresses can be specified with an alternative syntax:
639.Sm off
640.Xo
6d7a9e8f 641.Op Ar bind_address No /
5f4a0c58 642.Ar port No / Ar host No /
3867aa0a 643.Ar hostport
5f4a0c58 644.Xc
645.Sm on
3867aa0a 646or by enclosing the address in square brackets.
647Only the superuser can forward privileged ports.
648By default, the local port is bound in accordance with the
649.Cm GatewayPorts
650setting.
651However, an explicit
652.Ar bind_address
653may be used to bind the connection to a specific address.
654The
655.Ar bind_address
656of
657.Dq localhost
6c7e3b94 658indicates that the listening port be bound for local use only, while an
659empty address or
660.Sq *
3867aa0a 661indicates that the port should be available from all interfaces.
bf740959 662.It Fl l Ar login_name
610cd5c6 663Specifies the user to log in as on the remote machine.
664This also may be specified on a per-host basis in the configuration file.
5e96b616 665.It Fl M
666Places the
667.Nm
668client into
669.Dq master
670mode for connection sharing.
671Refer to the description of
672.Cm ControlMaster
673in
674.Xr ssh_config 5
675for details.
9affc5db 676.It Fl m Ar mac_spec
677Additionally, for protocol version 2 a comma-separated list of MAC
678(message authentication code) algorithms can
679be specified in order of preference.
680See the
681.Cm MACs
682keyword for more information.
5f4a0c58 683.It Fl N
684Do not execute a remote command.
685This is useful for just forwarding ports
686(protocol version 2 only).
bf740959 687.It Fl n
688Redirects stdin from
689.Pa /dev/null
690(actually, prevents reading from stdin).
691This must be used when
692.Nm
610cd5c6 693is run in the background.
694A common trick is to use this to run X11 programs on a remote machine.
695For example,
bf740959 696.Ic ssh -n shadows.cs.hut.fi emacs &
697will start an emacs on shadows.cs.hut.fi, and the X11
698connection will be automatically forwarded over an encrypted channel.
699The
700.Nm
701program will be put in the background.
702(This does not work if
703.Nm
704needs to ask for a password or passphrase; see also the
705.Fl f
706option.)
cf848a5e 707.It Fl O Ar ctl_cmd
708Control an active connection multiplexing master process.
709When the
710.Fl O
711option is specified, the
712.Ar ctl_cmd
713argument is interpreted and passed to the master process.
714Valid commands are:
715.Dq check
716(check that the master process is running) and
717.Dq exit
718(request the master to exit).
bf740959 719.It Fl o Ar option
38539909 720Can be used to give options in the format used in the configuration file.
bf740959 721This is useful for specifying options for which there is no separate
610cd5c6 722command-line flag.
5f4a0c58 723For full details of the options listed below, and their possible values, see
724.Xr ssh_config 5 .
725.Pp
726.Bl -tag -width Ds -offset indent -compact
727.It AddressFamily
728.It BatchMode
729.It BindAddress
730.It ChallengeResponseAuthentication
731.It CheckHostIP
732.It Cipher
733.It Ciphers
734.It ClearAllForwardings
735.It Compression
736.It CompressionLevel
737.It ConnectionAttempts
20b267fb 738.It ConnectTimeout
5e96b616 739.It ControlMaster
740.It ControlPath
5f4a0c58 741.It DynamicForward
5f4a0c58 742.It EscapeChar
743.It ForwardAgent
744.It ForwardX11
d73a67d7 745.It ForwardX11Trusted
5f4a0c58 746.It GatewayPorts
747.It GlobalKnownHostsFile
748.It GSSAPIAuthentication
749.It GSSAPIDelegateCredentials
5c63c2ab 750.It HashKnownHosts
5f4a0c58 751.It Host
752.It HostbasedAuthentication
753.It HostKeyAlgorithms
754.It HostKeyAlias
755.It HostName
756.It IdentityFile
3a065ed0 757.It IdentitiesOnly
396070f8 758.It KbdInteractiveDevices
d20f3c9e 759.It LocalCommand
5f4a0c58 760.It LocalForward
761.It LogLevel
762.It MACs
763.It NoHostAuthenticationForLocalhost
764.It NumberOfPasswordPrompts
765.It PasswordAuthentication
d20f3c9e 766.It PermitLocalCommand
5f4a0c58 767.It Port
768.It PreferredAuthentications
769.It Protocol
770.It ProxyCommand
771.It PubkeyAuthentication
772.It RemoteForward
773.It RhostsRSAAuthentication
774.It RSAAuthentication
8e99a198 775.It SendEnv
5d8d32a3 776.It ServerAliveInterval
777.It ServerAliveCountMax
5f4a0c58 778.It SmartcardDevice
779.It StrictHostKeyChecking
fd573618 780.It TCPKeepAlive
d20f3c9e 781.It Tunnel
782.It TunnelDevice
5f4a0c58 783.It UsePrivilegedPort
784.It User
785.It UserKnownHostsFile
786.It VerifyHostKeyDNS
787.It XAuthLocation
788.El
bf740959 789.It Fl p Ar port
610cd5c6 790Port to connect to on the remote host.
791This can be specified on a
bf740959 792per-host basis in the configuration file.
bf740959 793.It Fl q
610cd5c6 794Quiet mode.
795Causes all warning and diagnostic messages to be suppressed.
5f4a0c58 796.It Fl R Xo
797.Sm off
3867aa0a 798.Oo Ar bind_address : Oc
5f4a0c58 799.Ar port : host : hostport
800.Sm on
801.Xc
802Specifies that the given port on the remote (server) host is to be
803forwarded to the given host and port on the local side.
804This works by allocating a socket to listen to
805.Ar port
806on the remote side, and whenever a connection is made to this port, the
807connection is forwarded over the secure channel, and a connection is
808made to
809.Ar host
810port
811.Ar hostport
812from the local machine.
3867aa0a 813.Pp
5f4a0c58 814Port forwardings can also be specified in the configuration file.
815Privileged ports can be forwarded only when
816logging in as root on the remote machine.
3867aa0a 817IPv6 addresses can be specified by enclosing the address in square braces or
818using an alternative syntax:
3867aa0a 819.Sm off
6c7e3b94 820.Xo
6d7a9e8f 821.Op Ar bind_address No /
6c7e3b94 822.Ar host No / Ar port No /
823.Ar hostport
3867aa0a 824.Xc .
6c7e3b94 825.Sm on
3867aa0a 826.Pp
827By default, the listening socket on the server will be bound to the loopback
828interface only.
829This may be overriden by specifying a
830.Ar bind_address .
6c7e3b94 831An empty
832.Ar bind_address ,
3867aa0a 833or the address
6c7e3b94 834.Ql * ,
3867aa0a 835indicates that the remote socket should listen on all interfaces.
836Specifying a remote
837.Ar bind_address
6c7e3b94 838will only succeed if the server's
839.Cm GatewayPorts
3867aa0a 840option is enabled (see
6c7e3b94 841.Xr sshd_config 5 ) .
f8c6db83 842.It Fl S Ar ctl_path
9affc5db 843Specifies the location of a control socket for connection sharing.
5e96b616 844Refer to the description of
0e19494c 845.Cm ControlPath
846and
5e96b616 847.Cm ControlMaster
848in
849.Xr ssh_config 5
850for details.
ae810de7 851.It Fl s
3cbc677d 852May be used to request invocation of a subsystem on the remote system.
853Subsystems are a feature of the SSH2 protocol which facilitate the use
5f4a0c58 854of SSH as a secure transport for other applications (eg.\&
855.Xr sftp 1 ) .
3cbc677d 856The subsystem is specified as the remote command.
5f4a0c58 857.It Fl T
858Disable pseudo-tty allocation.
bf740959 859.It Fl t
610cd5c6 860Force pseudo-tty allocation.
4fe2af09 861This can be used to execute arbitrary
610cd5c6 862screen-based programs on a remote machine, which can be very useful,
863e.g., when implementing menu services.
8abcdba4 864Multiple
865.Fl t
866options force tty allocation, even if
867.Nm
868has no local tty.
5f4a0c58 869.It Fl V
870Display the version number and exit.
bf740959 871.It Fl v
610cd5c6 872Verbose mode.
873Causes
bf740959 874.Nm
610cd5c6 875to print debugging messages about its progress.
876This is helpful in
bf740959 877debugging connection, authentication, and configuration problems.
8abcdba4 878Multiple
879.Fl v
c825cd79 880options increase the verbosity.
881The maximum is 3.
985bb789 882.It Fl w Ar tunnel : Ns Ar tunnel
d20f3c9e 883Requests a
884.Xr tun 4
885device on the client and server like the
886.Cm Tunnel
887directive in
888.Xr ssh_config 5 .
bf740959 889.It Fl X
890Enables X11 forwarding.
71276795 891This can also be specified on a per-host basis in a configuration file.
07d688d5 892.Pp
a4e5acef 893X11 forwarding should be enabled with caution.
894Users with the ability to bypass file permissions on the remote host
895(for the user's X authorization database)
896can access the local X11 display through the forwarded connection.
897An attacker may then be able to perform activities such as keystroke monitoring.
82966fe8 898.Pp
4469b0cf 899For this reason, X11 forwarding is subjected to X11 SECURITY extension
82966fe8 900restrictions by default.
901Please refer to the
902.Nm
903.Fl Y
904option and the
905.Cm ForwardX11Trusted
906directive in
907.Xr ssh_config 5
908for more information.
5f4a0c58 909.It Fl x
910Disables X11 forwarding.
d73a67d7 911.It Fl Y
912Enables trusted X11 forwarding.
82966fe8 913Trusted X11 forwardings are not subjected to the X11 SECURITY extension
914controls.
bf740959 915.El
916.Sh CONFIGURATION FILES
917.Nm
588df31a 918may additionally obtain configuration data from
919a per-user configuration file and a system-wide configuration file.
920The file format and configuration options are described in
921.Xr ssh_config 5 .
bf740959 922.Sh ENVIRONMENT
923.Nm
924will normally set the following environment variables:
5f4a0c58 925.Bl -tag -width LOGNAME
bf740959 926.It Ev DISPLAY
927The
928.Ev DISPLAY
610cd5c6 929variable indicates the location of the X11 server.
f54651ce 930It is automatically set by
bf740959 931.Nm
932to point to a value of the form
933.Dq hostname:n
934where hostname indicates
5f4a0c58 935the host where the shell runs, and n is an integer \*(Ge 1.
610cd5c6 936.Nm
937uses this special value to forward X11 connections over the secure
938channel.
da89cf4d 939The user should normally not set
940.Ev DISPLAY
941explicitly, as that
bf740959 942will render the X11 connection insecure (and will require the user to
943manually copy any required authorization cookies).
944.It Ev HOME
945Set to the path of the user's home directory.
946.It Ev LOGNAME
947Synonym for
948.Ev USER ;
949set for compatibility with systems that use this variable.
950.It Ev MAIL
ae897d7c 951Set to the path of the user's mailbox.
610cd5c6 952.It Ev PATH
bf740959 953Set to the default
954.Ev PATH ,
955as specified when compiling
956.Nm ssh .
3474b2b4 957.It Ev SSH_ASKPASS
958If
959.Nm
960needs a passphrase, it will read the passphrase from the current
961terminal if it was run from a terminal.
962If
963.Nm
964does not have a terminal associated with it but
965.Ev DISPLAY
966and
967.Ev SSH_ASKPASS
968are set, it will execute the program specified by
969.Ev SSH_ASKPASS
970and open an X11 window to read the passphrase.
971This is particularly useful when calling
972.Nm
973from a
caeffafb 974.Pa .xsession
3474b2b4 975or related script.
976(Note that on some machines it
977may be necessary to redirect the input from
978.Pa /dev/null
979to make this work.)
bf740959 980.It Ev SSH_AUTH_SOCK
ae897d7c 981Identifies the path of a unix-domain socket used to communicate with the
bf740959 982agent.
da0561eb 983.It Ev SSH_CONNECTION
984Identifies the client and server ends of the connection.
610cd5c6 985The variable contains
da0561eb 986four space-separated values: client ip-address, client port number,
987server ip-address and server port number.
8abcdba4 988.It Ev SSH_ORIGINAL_COMMAND
989The variable contains the original command line if a forced command
990is executed.
991It can be used to extract the original arguments.
bf740959 992.It Ev SSH_TTY
993This is set to the name of the tty (path to the device) associated
610cd5c6 994with the current shell or command.
995If the current session has no tty,
bf740959 996this variable is not set.
997.It Ev TZ
04ac3e62 998This variable is set to indicate the present time zone if it
c345cf9d 999was set when the daemon was started (i.e., the daemon passes the value
bf740959 1000on to new connections).
1001.It Ev USER
1002Set to the name of the user logging in.
1003.El
1004.Pp
f54651ce 1005Additionally,
bf740959 1006.Nm
f54651ce 1007reads
140e3e97 1008.Pa ~/.ssh/environment ,
bf740959 1009and adds lines of the format
1010.Dq VARNAME=value
6a342527 1011to the environment if the file exists and if users are allowed to
1012change their environment.
5f4a0c58 1013For more information, see the
6a342527 1014.Cm PermitUserEnvironment
35453849 1015option in
6a342527 1016.Xr sshd_config 5 .
bf740959 1017.Sh FILES
c8d54615 1018.Bl -tag -width Ds
140e3e97 1019.It Pa ~/.ssh/known_hosts
ae897d7c 1020Records host keys for all hosts the user has logged into that are not
bf740959 1021in
2a8a6488 1022.Pa /etc/ssh/ssh_known_hosts .
bf740959 1023See
1024.Xr sshd 8 .
140e3e97 1025.It Pa ~/.ssh/identity, ~/.ssh/id_dsa, ~/.ssh/id_rsa
c0ecc314 1026Contains the authentication identity of the user.
1027They are for protocol 1 RSA, protocol 2 DSA, and protocol 2 RSA, respectively.
1d1ffb87 1028These files
1029contain sensitive data and should be readable by the user but not
bf740959 1030accessible by others (read/write/execute).
1031Note that
1032.Nm
1d1ffb87 1033ignores a private key file if it is accessible by others.
bf740959 1034It is possible to specify a passphrase when
1035generating the key; the passphrase will be used to encrypt the
1036sensitive part of this file using 3DES.
140e3e97 1037.It Pa ~/.ssh/identity.pub, ~/.ssh/id_dsa.pub, ~/.ssh/id_rsa.pub
bf740959 1038Contains the public key for authentication (public part of the
610cd5c6 1039identity file in human-readable form).
1d1ffb87 1040The contents of the
140e3e97 1041.Pa ~/.ssh/identity.pub
5f4a0c58 1042file should be added to the file
140e3e97 1043.Pa ~/.ssh/authorized_keys
bf740959 1044on all machines
91789042 1045where the user wishes to log in using protocol version 1 RSA authentication.
1d1ffb87 1046The contents of the
140e3e97 1047.Pa ~/.ssh/id_dsa.pub
c0ecc314 1048and
140e3e97 1049.Pa ~/.ssh/id_rsa.pub
1d1ffb87 1050file should be added to
140e3e97 1051.Pa ~/.ssh/authorized_keys
1d1ffb87 1052on all machines
91789042 1053where the user wishes to log in using protocol version 2 DSA/RSA authentication.
1d1ffb87 1054These files are not
610cd5c6 1055sensitive and can (but need not) be readable by anyone.
1d1ffb87 1056These files are
c44559d2 1057never used automatically and are not necessary; they are only provided for
bf740959 1058the convenience of the user.
140e3e97 1059.It Pa ~/.ssh/config
610cd5c6 1060This is the per-user configuration file.
588df31a 1061The file format and configuration options are described in
1062.Xr ssh_config 5 .
e1520719 1063Because of the potential for abuse, this file must have strict permissions:
1064read/write for the user, and not accessible by others.
140e3e97 1065.It Pa ~/.ssh/authorized_keys
96a7b0cc 1066Lists the public keys (RSA/DSA) that can be used for logging in as this user.
610cd5c6 1067The format of this file is described in the
bf740959 1068.Xr sshd 8
610cd5c6 1069manual page.
5f4a0c58 1070In the simplest form the format is the same as the
1071.Pa .pub
f49bc4f7 1072identity files.
1d1ffb87 1073This file is not highly sensitive, but the recommended
1074permissions are read/write for the user, and not accessible by others.
2a8a6488 1075.It Pa /etc/ssh/ssh_known_hosts
610cd5c6 1076Systemwide list of known host keys.
f49bc4f7 1077This file should be prepared by the
bf740959 1078system administrator to contain the public host keys of all machines in the
610cd5c6 1079organization.
1080This file should be world-readable.
1081This file contains
bf740959 1082public keys, one per line, in the following format (fields separated
f49bc4f7 1083by spaces): system name, public key and optional comment field.
610cd5c6 1084When different names are used
bf740959 1085for the same machine, all such names should be listed, separated by
610cd5c6 1086commas.
5f4a0c58 1087The format is described in the
bf740959 1088.Xr sshd 8
1089manual page.
1090.Pp
1091The canonical system name (as returned by name servers) is used by
1092.Xr sshd 8
1093to verify the client host when logging in; other names are needed because
1094.Nm
1095does not convert the user-supplied name to a canonical name before
1096checking the key, because someone with access to the name servers
1097would then be able to fool host authentication.
2a8a6488 1098.It Pa /etc/ssh/ssh_config
610cd5c6 1099Systemwide configuration file.
588df31a 1100The file format and configuration options are described in
1101.Xr ssh_config 5 .
2a8a6488 1102.It Pa /etc/ssh/ssh_host_key, /etc/ssh/ssh_host_dsa_key, /etc/ssh/ssh_host_rsa_key
dd58cb5e 1103These three files contain the private parts of the host keys
1104and are used for
1105.Cm RhostsRSAAuthentication
1106and
1107.Cm HostbasedAuthentication .
d83cbdc3 1108If the protocol version 1
1109.Cm RhostsRSAAuthentication
7203d6bb 1110method is used,
d83cbdc3 1111.Nm
1112must be setuid root, since the host key is readable only by root.
1113For protocol version 2,
1114.Nm
1115uses
1116.Xr ssh-keysign 8
1117to access the host keys for
1118.Cm HostbasedAuthentication .
1119This eliminates the requirement that
1120.Nm
1121be setuid root when that authentication method is used.
1122By default
dd58cb5e 1123.Nm
d83cbdc3 1124is not setuid root.
140e3e97 1125.It Pa ~/.rhosts
bf740959 1126This file is used in
6f5abc1e 1127.Cm RhostsRSAAuthentication
1128and
1129.Cm HostbasedAuthentication
bf740959 1130authentication to list the
610cd5c6 1131host/user pairs that are permitted to log in.
1132(Note that this file is
bf740959 1133also used by rlogin and rsh, which makes using this file insecure.)
1134Each line of the file contains a host name (in the canonical form
1135returned by name servers), and then a user name on that host,
610cd5c6 1136separated by a space.
e91c60f2 1137On some machines this file may need to be
bf740959 1138world-readable if the user's home directory is on a NFS partition,
1139because
1140.Xr sshd 8
610cd5c6 1141reads it as root.
1142Additionally, this file must be owned by the user,
1143and must not have write permissions for anyone else.
1144The recommended
bf740959 1145permission for most machines is read/write for the user, and not
1146accessible by others.
1147.Pp
6f5abc1e 1148Note that
bf740959 1149.Xr sshd 8
6f5abc1e 1150allows authentication only in combination with client host key
1151authentication before permitting log in.
91789042 1152If the server machine does not have the client's host key in
2a8a6488 1153.Pa /etc/ssh/ssh_known_hosts ,
91789042 1154it can be stored in
140e3e97 1155.Pa ~/.ssh/known_hosts .
bf740959 1156The easiest way to do this is to
1157connect back to the client from the server machine using ssh; this
1d1ffb87 1158will automatically add the host key to
140e3e97 1159.Pa ~/.ssh/known_hosts .
1160.It Pa ~/.shosts
bf740959 1161This file is used exactly the same way as
5f4a0c58 1162.Pa .rhosts .
bf740959 1163The purpose for
6f5abc1e 1164having this file is to be able to use
1165.Cm RhostsRSAAuthentication
1166and
1167.Cm HostbasedAuthentication
1168authentication without permitting login with
5f4a0c58 1169.Xr rlogin
bf740959 1170or
1171.Xr rsh 1 .
1172.It Pa /etc/hosts.equiv
1173This file is used during
6f5abc1e 1174.Cm RhostsRSAAuthentication
1175and
1176.Cm HostbasedAuthentication
be193d89 1177authentication.
610cd5c6 1178It contains
5f4a0c58 1179canonical hosts names, one per line (the full format is described in the
bf740959 1180.Xr sshd 8
610cd5c6 1181manual page).
1182If the client host is found in this file, login is
bf740959 1183automatically permitted provided client and server user names are the
610cd5c6 1184same.
6f5abc1e 1185Additionally, successful client host key authentication is required.
610cd5c6 1186This file should only be writable by root.
5f4fdfae 1187.It Pa /etc/shosts.equiv
f54651ce 1188This file is processed exactly as
bf740959 1189.Pa /etc/hosts.equiv .
1190This file may be useful to permit logins using
1191.Nm
1192but not using rsh/rlogin.
2a8a6488 1193.It Pa /etc/ssh/sshrc
bf740959 1194Commands in this file are executed by
1195.Nm
1196when the user logs in just before the user's shell (or command) is started.
1197See the
1198.Xr sshd 8
1199manual page for more information.
140e3e97 1200.It Pa ~/.ssh/rc
bf740959 1201Commands in this file are executed by
1202.Nm
1203when the user logs in just before the user's shell (or command) is
1204started.
f54651ce 1205See the
bf740959 1206.Xr sshd 8
1207manual page for more information.
140e3e97 1208.It Pa ~/.ssh/environment
83b7f649 1209Contains additional definitions for environment variables, see section
1210.Sx ENVIRONMENT
1211above.
b5e300c2 1212.El
16210ef7 1213.Sh DIAGNOSTICS
1214.Nm
1215exits with the exit status of the remote command or with 255
1216if an error occurred.
bf740959 1217.Sh SEE ALSO
5f4a0c58 1218.Xr gzip 1 ,
bf740959 1219.Xr rsh 1 ,
1220.Xr scp 1 ,
61e96248 1221.Xr sftp 1 ,
bf740959 1222.Xr ssh-add 1 ,
1223.Xr ssh-agent 1 ,
1224.Xr ssh-keygen 1 ,
1225.Xr telnet 1 ,
5f4a0c58 1226.Xr hosts.equiv 5 ,
1ae02182 1227.Xr ssh_config 5 ,
b2843ec6 1228.Xr ssh-keysign 8 ,
9afadca8 1229.Xr sshd 8
2cad6cef 1230.Rs
1231.%A T. Ylonen
1232.%A T. Kivinen
1233.%A M. Saarinen
1234.%A T. Rinne
1235.%A S. Lehtinen
1236.%T "SSH Protocol Architecture"
17f5e68a 1237.%N draft-ietf-secsh-architecture-12.txt
1238.%D January 2002
2cad6cef 1239.%O work in progress material
1240.Re
be193d89 1241.Sh AUTHORS
1242OpenSSH is a derivative of the original and free
1243ssh 1.2.12 release by Tatu Ylonen.
1244Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
1245Theo de Raadt and Dug Song
1246removed many bugs, re-added newer features and
1247created OpenSSH.
1248Markus Friedl contributed the support for SSH
1249protocol versions 1.5 and 2.0.
This page took 0.49714 seconds and 5 git commands to generate.