1ae1f160dSDag-Erling Smørgrav.\" $OpenBSD: ssh-agent.1,v 1.31 2002/02/04 20:41:16 stevesk Exp $ 2511b41d2SMark Murray.\" 3511b41d2SMark Murray.\" Author: Tatu Ylonen <ylo@cs.hut.fi> 4511b41d2SMark Murray.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 5511b41d2SMark Murray.\" All rights reserved 6511b41d2SMark Murray.\" 7b66f2d16SKris Kennaway.\" As far as I am concerned, the code I have written for this software 8b66f2d16SKris Kennaway.\" can be used freely for any purpose. Any derived versions of this 9b66f2d16SKris Kennaway.\" software must be clearly marked as such, and if the derived work is 10b66f2d16SKris Kennaway.\" incompatible with the protocol description in the RFC file, it must be 11b66f2d16SKris Kennaway.\" called by a name other than "ssh" or "Secure Shell". 12b66f2d16SKris Kennaway.\" 13b66f2d16SKris Kennaway.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. 14b66f2d16SKris Kennaway.\" Copyright (c) 1999 Aaron Campbell. All rights reserved. 15b66f2d16SKris Kennaway.\" Copyright (c) 1999 Theo de Raadt. All rights reserved. 16b66f2d16SKris Kennaway.\" 17b66f2d16SKris Kennaway.\" Redistribution and use in source and binary forms, with or without 18b66f2d16SKris Kennaway.\" modification, are permitted provided that the following conditions 19b66f2d16SKris Kennaway.\" are met: 20b66f2d16SKris Kennaway.\" 1. Redistributions of source code must retain the above copyright 21b66f2d16SKris Kennaway.\" notice, this list of conditions and the following disclaimer. 22b66f2d16SKris Kennaway.\" 2. Redistributions in binary form must reproduce the above copyright 23b66f2d16SKris Kennaway.\" notice, this list of conditions and the following disclaimer in the 24b66f2d16SKris Kennaway.\" documentation and/or other materials provided with the distribution. 25b66f2d16SKris Kennaway.\" 26b66f2d16SKris Kennaway.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 27b66f2d16SKris Kennaway.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 28b66f2d16SKris Kennaway.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 29b66f2d16SKris Kennaway.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 30b66f2d16SKris Kennaway.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 31b66f2d16SKris Kennaway.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 32b66f2d16SKris Kennaway.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 33b66f2d16SKris Kennaway.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 34b66f2d16SKris Kennaway.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 35b66f2d16SKris Kennaway.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36511b41d2SMark Murray.\" 37511b41d2SMark Murray.Dd September 25, 1999 38511b41d2SMark Murray.Dt SSH-AGENT 1 39511b41d2SMark Murray.Os 40511b41d2SMark Murray.Sh NAME 41511b41d2SMark Murray.Nm ssh-agent 42511b41d2SMark Murray.Nd authentication agent 43511b41d2SMark Murray.Sh SYNOPSIS 44511b41d2SMark Murray.Nm ssh-agent 45ae1f160dSDag-Erling Smørgrav.Op Fl c Li | Fl s 46ae1f160dSDag-Erling Smørgrav.Op Fl d 47ae1f160dSDag-Erling Smørgrav.Op Ar command Op Ar args ... 481e8db6e2SBrian Feldman.Nm ssh-agent 491e8db6e2SBrian Feldman.Op Fl c Li | Fl s 501e8db6e2SBrian Feldman.Fl k 51511b41d2SMark Murray.Sh DESCRIPTION 52511b41d2SMark Murray.Nm 53b66f2d16SKris Kennawayis a program to hold private keys used for public key authentication 54b66f2d16SKris Kennaway(RSA, DSA). 55a8f6863aSKris KennawayThe idea is that 56511b41d2SMark Murray.Nm 57511b41d2SMark Murrayis started in the beginning of an X-session or a login session, and 58511b41d2SMark Murrayall other windows or programs are started as clients to the ssh-agent 59a8f6863aSKris Kennawayprogram. 60a8f6863aSKris KennawayThrough use of environment variables the agent can be located 61b66f2d16SKris Kennawayand automatically used for authentication when logging in to other 62511b41d2SMark Murraymachines using 63511b41d2SMark Murray.Xr ssh 1 . 64511b41d2SMark Murray.Pp 65511b41d2SMark MurrayThe options are as follows: 66511b41d2SMark Murray.Bl -tag -width Ds 67511b41d2SMark Murray.It Fl c 68511b41d2SMark MurrayGenerate C-shell commands on 69511b41d2SMark Murray.Dv stdout . 70511b41d2SMark MurrayThis is the default if 71511b41d2SMark Murray.Ev SHELL 72511b41d2SMark Murraylooks like it's a csh style of shell. 73511b41d2SMark Murray.It Fl s 74511b41d2SMark MurrayGenerate Bourne shell commands on 75511b41d2SMark Murray.Dv stdout . 76511b41d2SMark MurrayThis is the default if 77511b41d2SMark Murray.Ev SHELL 78511b41d2SMark Murraydoes not look like it's a csh style of shell. 79511b41d2SMark Murray.It Fl k 80511b41d2SMark MurrayKill the current agent (given by the 81511b41d2SMark Murray.Ev SSH_AGENT_PID 82511b41d2SMark Murrayenvironment variable). 83ae1f160dSDag-Erling Smørgrav.It Fl d 84ae1f160dSDag-Erling SmørgravDebug mode. When this option is specified 85ae1f160dSDag-Erling Smørgrav.Nm 86ae1f160dSDag-Erling Smørgravwill not fork. 87511b41d2SMark Murray.El 88511b41d2SMark Murray.Pp 89511b41d2SMark MurrayIf a commandline is given, this is executed as a subprocess of the agent. 90511b41d2SMark MurrayWhen the command dies, so does the agent. 91511b41d2SMark Murray.Pp 92a8f6863aSKris KennawayThe agent initially does not have any private keys. 93a8f6863aSKris KennawayKeys are added using 94511b41d2SMark Murray.Xr ssh-add 1 . 95511b41d2SMark MurrayWhen executed without arguments, 96511b41d2SMark Murray.Xr ssh-add 1 97ae1f160dSDag-Erling Smørgravadds the files 98ae1f160dSDag-Erling Smørgrav.Pa $HOME/.ssh/id_rsa , 99ae1f160dSDag-Erling Smørgrav.Pa $HOME/.ssh/id_dsa 100ae1f160dSDag-Erling Smørgravand 101ae1f160dSDag-Erling Smørgrav.Pa $HOME/.ssh/identity . 102a8f6863aSKris KennawayIf the identity has a passphrase, 103511b41d2SMark Murray.Xr ssh-add 1 104511b41d2SMark Murrayasks for the passphrase (using a small X11 application if running 105a8f6863aSKris Kennawayunder X11, or from the terminal if running without X). 106a8f6863aSKris KennawayIt then sends the identity to the agent. 107a8f6863aSKris KennawaySeveral identities can be stored in the 108511b41d2SMark Murrayagent; the agent can automatically use any of these identities. 109511b41d2SMark Murray.Ic ssh-add -l 110511b41d2SMark Murraydisplays the identities currently held by the agent. 111511b41d2SMark Murray.Pp 112511b41d2SMark MurrayThe idea is that the agent is run in the user's local PC, laptop, or 113a8f6863aSKris Kennawayterminal. 114a8f6863aSKris KennawayAuthentication data need not be stored on any other 115511b41d2SMark Murraymachine, and authentication passphrases never go over the network. 116511b41d2SMark MurrayHowever, the connection to the agent is forwarded over SSH 117511b41d2SMark Murrayremote logins, and the user can thus use the privileges given by the 118511b41d2SMark Murrayidentities anywhere in the network in a secure way. 119511b41d2SMark Murray.Pp 120a8f6863aSKris KennawayThere are two main ways to get an agent setup: 121ae1f160dSDag-Erling SmørgravEither the agent starts a new subcommand into which some environment 122ae1f160dSDag-Erling Smørgravvariables are exported, or the agent prints the needed shell commands 123ae1f160dSDag-Erling Smørgrav(either 124511b41d2SMark Murray.Xr sh 1 125511b41d2SMark Murrayor 126511b41d2SMark Murray.Xr csh 1 127511b41d2SMark Murraysyntax can be generated) which can be evalled in the calling shell. 128511b41d2SMark MurrayLater 129511b41d2SMark Murray.Xr ssh 1 1301e8db6e2SBrian Feldmanlooks at these variables and uses them to establish a connection to the agent. 131511b41d2SMark Murray.Pp 132ae1f160dSDag-Erling SmørgravThe agent will never send a private key over its request channel. 133ae1f160dSDag-Erling SmørgravInstead, operations that require a private key will be performed 134ae1f160dSDag-Erling Smørgravby the agent, and the result will be returned to the requester. 135ae1f160dSDag-Erling SmørgravThis way, private keys are not exposed to clients using the agent. 136ae1f160dSDag-Erling Smørgrav.Pp 137511b41d2SMark MurrayA unix-domain socket is created 138511b41d2SMark Murray.Pq Pa /tmp/ssh-XXXXXXXX/agent.<pid> , 139511b41d2SMark Murrayand the name of this socket is stored in the 140511b41d2SMark Murray.Ev SSH_AUTH_SOCK 141511b41d2SMark Murrayenvironment 142a8f6863aSKris Kennawayvariable. 143a8f6863aSKris KennawayThe socket is made accessible only to the current user. 144511b41d2SMark MurrayThis method is easily abused by root or another instance of the same 145511b41d2SMark Murrayuser. 146511b41d2SMark Murray.Pp 147511b41d2SMark MurrayThe 148511b41d2SMark Murray.Ev SSH_AGENT_PID 149511b41d2SMark Murrayenvironment variable holds the agent's PID. 150511b41d2SMark Murray.Pp 151511b41d2SMark MurrayThe agent exits automatically when the command given on the command 152511b41d2SMark Murrayline terminates. 153511b41d2SMark Murray.Sh FILES 154511b41d2SMark Murray.Bl -tag -width Ds 155511b41d2SMark Murray.It Pa $HOME/.ssh/identity 1561e8db6e2SBrian FeldmanContains the protocol version 1 RSA authentication identity of the user. 157b66f2d16SKris Kennaway.It Pa $HOME/.ssh/id_dsa 1581e8db6e2SBrian FeldmanContains the protocol version 2 DSA authentication identity of the user. 1591e8db6e2SBrian Feldman.It Pa $HOME/.ssh/id_rsa 1601e8db6e2SBrian FeldmanContains the protocol version 2 RSA authentication identity of the user. 1611e8db6e2SBrian Feldman.It Pa /tmp/ssh-XXXXXXXX/agent.<pid> 162511b41d2SMark MurrayUnix-domain sockets used to contain the connection to the 163a8f6863aSKris Kennawayauthentication agent. 164a8f6863aSKris KennawayThese sockets should only be readable by the owner. 165a8f6863aSKris KennawayThe sockets should get automatically removed when the agent exits. 166b66f2d16SKris Kennaway.El 1671e8db6e2SBrian Feldman.Sh AUTHORS 1681e8db6e2SBrian FeldmanOpenSSH is a derivative of the original and free 1691e8db6e2SBrian Feldmanssh 1.2.12 release by Tatu Ylonen. 1701e8db6e2SBrian FeldmanAaron Campbell, Bob Beck, Markus Friedl, Niels Provos, 1711e8db6e2SBrian FeldmanTheo de Raadt and Dug Song 1721e8db6e2SBrian Feldmanremoved many bugs, re-added newer features and 1731e8db6e2SBrian Feldmancreated OpenSSH. 1741e8db6e2SBrian FeldmanMarkus Friedl contributed the support for SSH 1751e8db6e2SBrian Feldmanprotocol versions 1.5 and 2.0. 176511b41d2SMark Murray.Sh SEE ALSO 177511b41d2SMark Murray.Xr ssh 1 , 178511b41d2SMark Murray.Xr ssh-add 1 , 179511b41d2SMark Murray.Xr ssh-keygen 1 , 1801e8db6e2SBrian Feldman.Xr sshd 8 181