[BACK]Return to ssh-agent.1 CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Annotation of src/usr.bin/ssh/ssh-agent.1, Revision 1.66

1.66    ! jmc         1: .\" $OpenBSD: ssh-agent.1,v 1.65 2019/10/31 21:22:01 djm Exp $
1.7       markus      2: .\"
1.16      deraadt     3: .\" Author: Tatu Ylonen <ylo@cs.hut.fi>
                      4: .\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
                      5: .\"                    All rights reserved
1.1       deraadt     6: .\"
1.16      deraadt     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".
1.1       deraadt    12: .\"
1.22      deraadt    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.
1.8       deraadt    16: .\"
1.16      deraadt    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.
1.1       deraadt    25: .\"
1.16      deraadt    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.
1.1       deraadt    36: .\"
1.66    ! jmc        37: .Dd $Mdocdate: October 31 2019 $
1.2       deraadt    38: .Dt SSH-AGENT 1
                     39: .Os
                     40: .Sh NAME
                     41: .Nm ssh-agent
                     42: .Nd authentication agent
                     43: .Sh SYNOPSIS
1.11      aaron      44: .Nm ssh-agent
1.52      jmc        45: .Op Fl c | s
1.66    ! jmc        46: .Op Fl Ddk
1.32      markus     47: .Op Fl a Ar bind_address
1.57      djm        48: .Op Fl E Ar fingerprint_hash
1.65      djm        49: .Op Fl P Ar provider_whitelist
1.36      marc       50: .Op Fl t Ar life
1.46      sobrado    51: .Op Ar command Op Ar arg ...
1.11      aaron      52: .Sh DESCRIPTION
1.2       deraadt    53: .Nm
1.14      markus     54: is a program to hold private keys used for public key authentication
1.56      sobrado    55: (RSA, DSA, ECDSA, Ed25519).
1.2       deraadt    56: .Nm
1.55      djm        57: is usually started in the beginning of an X-session or a login session, and
1.7       markus     58: all other windows or programs are started as clients to the ssh-agent
1.10      aaron      59: program.
                     60: Through use of environment variables the agent can be located
1.14      markus     61: and automatically used for authentication when logging in to other
1.1       deraadt    62: machines using
1.2       deraadt    63: .Xr ssh 1 .
                     64: .Pp
1.55      djm        65: The agent initially does not have any private keys.
                     66: Keys are added using
1.61      jcs        67: .Xr ssh 1
                     68: (see
                     69: .Cm AddKeysToAgent
                     70: in
                     71: .Xr ssh_config 5
                     72: for details)
                     73: or
1.55      djm        74: .Xr ssh-add 1 .
                     75: Multiple identities may be stored in
                     76: .Nm
                     77: concurrently and
                     78: .Xr ssh 1
                     79: will automatically use them if present.
                     80: .Xr ssh-add 1
                     81: is also used to remove keys from
                     82: .Nm
                     83: and to query the keys that are held in one.
                     84: .Pp
1.7       markus     85: The options are as follows:
                     86: .Bl -tag -width Ds
1.32      markus     87: .It Fl a Ar bind_address
1.48      sobrado    88: Bind the agent to the
1.49      sobrado    89: .Ux Ns -domain
                     90: socket
1.32      markus     91: .Ar bind_address .
                     92: The default is
1.53      djm        93: .Pa $TMPDIR/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt .
1.7       markus     94: .It Fl c
                     95: Generate C-shell commands on
                     96: .Dv stdout .
                     97: This is the default if
                     98: .Ev SHELL
                     99: looks like it's a csh style of shell.
1.58      djm       100: .It Fl D
                    101: Foreground mode.
                    102: When this option is specified
                    103: .Nm
                    104: will not fork.
1.46      sobrado   105: .It Fl d
                    106: Debug mode.
                    107: When this option is specified
                    108: .Nm
1.58      djm       109: will not fork and will write debug information to standard error.
1.57      djm       110: .It Fl E Ar fingerprint_hash
                    111: Specifies the hash algorithm used when displaying key fingerprints.
                    112: Valid options are:
                    113: .Dq md5
                    114: and
                    115: .Dq sha256 .
                    116: The default is
                    117: .Dq sha256 .
1.46      sobrado   118: .It Fl k
                    119: Kill the current agent (given by the
                    120: .Ev SSH_AGENT_PID
                    121: environment variable).
1.66    ! jmc       122: This option should not be used with any other options.
1.65      djm       123: .It Fl P Ar provider_whitelist
                    124: Specify a pattern-list of acceptable paths for PKCS#11 and security key shared
                    125: libraries that may be used with the
1.63      djm       126: .Fl s
1.65      djm       127: or
                    128: .Fl S
                    129: options to
1.63      djm       130: .Xr ssh-add 1 .
1.65      djm       131: The default is to allow loading libraries from
1.63      djm       132: .Dq /usr/lib/*,/usr/local/lib/* .
1.65      djm       133: Libraries that do not match the whitelist will be refused.
1.63      djm       134: See PATTERNS in
                    135: .Xr ssh_config 5
                    136: for a description of pattern-list syntax.
1.7       markus    137: .It Fl s
                    138: Generate Bourne shell commands on
                    139: .Dv stdout .
                    140: This is the default if
                    141: .Ev SHELL
                    142: does not look like it's a csh style of shell.
1.36      marc      143: .It Fl t Ar life
1.37      jmc       144: Set a default value for the maximum lifetime of identities added to the agent.
1.36      marc      145: The lifetime may be specified in seconds or in a time format specified in
1.43      dtucker   146: .Xr sshd_config 5 .
1.36      marc      147: A lifetime specified for an identity with
                    148: .Xr ssh-add 1
                    149: overrides this value.
                    150: Without this option the default maximum lifetime is forever.
1.7       markus    151: .El
                    152: .Pp
1.60      jmc       153: If a command line is given, this is executed as a subprocess of the agent.
1.7       markus    154: When the command dies, so does the agent.
                    155: .Pp
1.1       deraadt   156: The idea is that the agent is run in the user's local PC, laptop, or
1.10      aaron     157: terminal.
                    158: Authentication data need not be stored on any other
1.1       deraadt   159: machine, and authentication passphrases never go over the network.
1.2       deraadt   160: However, the connection to the agent is forwarded over SSH
1.1       deraadt   161: remote logins, and the user can thus use the privileges given by the
                    162: identities anywhere in the network in a secure way.
1.2       deraadt   163: .Pp
1.38      jmc       164: There are two main ways to get an agent set up:
1.40      dtucker   165: The first is that the agent starts a new subcommand into which some environment
                    166: variables are exported, eg
                    167: .Cm ssh-agent xterm & .
                    168: The second is that the agent prints the needed shell commands (either
1.7       markus    169: .Xr sh 1
                    170: or
                    171: .Xr csh 1
1.47      sobrado   172: syntax can be generated) which can be evaluated in the calling shell, eg
1.40      dtucker   173: .Cm eval `ssh-agent -s`
                    174: for Bourne-type shells such as
                    175: .Xr sh 1
                    176: or
                    177: .Xr ksh 1
                    178: and
1.41      deraadt   179: .Cm eval `ssh-agent -c`
1.40      dtucker   180: for
                    181: .Xr csh 1
                    182: and derivatives.
                    183: .Pp
1.7       markus    184: Later
                    185: .Xr ssh 1
1.23      deraadt   186: looks at these variables and uses them to establish a connection to the agent.
1.29      stevesk   187: .Pp
                    188: The agent will never send a private key over its request channel.
                    189: Instead, operations that require a private key will be performed
                    190: by the agent, and the result will be returned to the requester.
                    191: This way, private keys are not exposed to clients using the agent.
1.7       markus    192: .Pp
1.48      sobrado   193: A
1.49      sobrado   194: .Ux Ns -domain
                    195: socket is created and the name of this socket is stored in the
1.5       markus    196: .Ev SSH_AUTH_SOCK
1.1       deraadt   197: environment
1.10      aaron     198: variable.
                    199: The socket is made accessible only to the current user.
1.1       deraadt   200: This method is easily abused by root or another instance of the same
1.4       markus    201: user.
1.7       markus    202: .Pp
                    203: The
                    204: .Ev SSH_AGENT_PID
1.34      stevesk   205: environment variable holds the agent's process ID.
1.2       deraadt   206: .Pp
1.1       deraadt   207: The agent exits automatically when the command given on the command
                    208: line terminates.
1.2       deraadt   209: .Sh FILES
                    210: .Bl -tag -width Ds
1.64      jmc       211: .It Pa $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid>
1.49      sobrado   212: .Ux Ns -domain
                    213: sockets used to contain the connection to the authentication agent.
1.10      aaron     214: These sockets should only be readable by the owner.
                    215: The sockets should get automatically removed when the agent exits.
1.13      aaron     216: .El
1.39      jmc       217: .Sh SEE ALSO
                    218: .Xr ssh 1 ,
                    219: .Xr ssh-add 1 ,
                    220: .Xr ssh-keygen 1 ,
                    221: .Xr sshd 8
1.17      aaron     222: .Sh AUTHORS
1.64      jmc       223: .An -nosplit
                    224: OpenSSH is a derivative of the original and free ssh 1.2.12 release by
                    225: .An Tatu Ylonen .
                    226: .An Aaron Campbell , Bob Beck , Markus Friedl , Niels Provos , Theo de Raadt
                    227: and
                    228: .An Dug Song
                    229: removed many bugs, re-added newer features and created OpenSSH.
                    230: .An Markus Friedl
                    231: contributed the support for SSH protocol versions 1.5 and 2.0.