1*557f75e5SDag-Erling Smørgrav.\" $OpenBSD: ssh-agent.1,v 1.59 2015/04/24 06:26:49 jmc Exp $ 27aee6ffeSDag-Erling Smørgrav.\" $FreeBSD$ 3511b41d2SMark Murray.\" 4511b41d2SMark Murray.\" Author: Tatu Ylonen <ylo@cs.hut.fi> 5511b41d2SMark Murray.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 6511b41d2SMark Murray.\" All rights reserved 7511b41d2SMark Murray.\" 8b66f2d16SKris Kennaway.\" As far as I am concerned, the code I have written for this software 9b66f2d16SKris Kennaway.\" can be used freely for any purpose. Any derived versions of this 10b66f2d16SKris Kennaway.\" software must be clearly marked as such, and if the derived work is 11b66f2d16SKris Kennaway.\" incompatible with the protocol description in the RFC file, it must be 12b66f2d16SKris Kennaway.\" called by a name other than "ssh" or "Secure Shell". 13b66f2d16SKris Kennaway.\" 14b66f2d16SKris Kennaway.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. 15b66f2d16SKris Kennaway.\" Copyright (c) 1999 Aaron Campbell. All rights reserved. 16b66f2d16SKris Kennaway.\" Copyright (c) 1999 Theo de Raadt. All rights reserved. 17b66f2d16SKris Kennaway.\" 18b66f2d16SKris Kennaway.\" Redistribution and use in source and binary forms, with or without 19b66f2d16SKris Kennaway.\" modification, are permitted provided that the following conditions 20b66f2d16SKris Kennaway.\" are met: 21b66f2d16SKris Kennaway.\" 1. Redistributions of source code must retain the above copyright 22b66f2d16SKris Kennaway.\" notice, this list of conditions and the following disclaimer. 23b66f2d16SKris Kennaway.\" 2. Redistributions in binary form must reproduce the above copyright 24b66f2d16SKris Kennaway.\" notice, this list of conditions and the following disclaimer in the 25b66f2d16SKris Kennaway.\" documentation and/or other materials provided with the distribution. 26b66f2d16SKris Kennaway.\" 27b66f2d16SKris Kennaway.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 28b66f2d16SKris Kennaway.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 29b66f2d16SKris Kennaway.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 30b66f2d16SKris Kennaway.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 31b66f2d16SKris Kennaway.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 32b66f2d16SKris Kennaway.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 33b66f2d16SKris Kennaway.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 34b66f2d16SKris Kennaway.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 35b66f2d16SKris Kennaway.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 36b66f2d16SKris Kennaway.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37511b41d2SMark Murray.\" 38*557f75e5SDag-Erling Smørgrav.Dd $Mdocdate: April 24 2015 $ 39511b41d2SMark Murray.Dt SSH-AGENT 1 40511b41d2SMark Murray.Os 41511b41d2SMark Murray.Sh NAME 42511b41d2SMark Murray.Nm ssh-agent 43511b41d2SMark Murray.Nd authentication agent 44511b41d2SMark Murray.Sh SYNOPSIS 45511b41d2SMark Murray.Nm ssh-agent 464a421b63SDag-Erling Smørgrav.Op Fl c | s 47*557f75e5SDag-Erling Smørgrav.Op Fl Ddx 48d4af9e69SDag-Erling Smørgrav.Op Fl a Ar bind_address 49bc5531deSDag-Erling Smørgrav.Op Fl E Ar fingerprint_hash 50d4af9e69SDag-Erling Smørgrav.Op Fl t Ar life 51d4af9e69SDag-Erling Smørgrav.Op Ar command Op Ar arg ... 521e8db6e2SBrian Feldman.Nm ssh-agent 534a421b63SDag-Erling Smørgrav.Op Fl c | s 541e8db6e2SBrian Feldman.Fl k 55511b41d2SMark Murray.Sh DESCRIPTION 56511b41d2SMark Murray.Nm 57b66f2d16SKris Kennawayis a program to hold private keys used for public key authentication 58bc5531deSDag-Erling Smørgrav(RSA, DSA, ECDSA, Ed25519). 59511b41d2SMark Murray.Nm 60a0ee8cc6SDag-Erling Smørgravis usually started in the beginning of an X-session or a login session, and 61511b41d2SMark Murrayall other windows or programs are started as clients to the ssh-agent 62a8f6863aSKris Kennawayprogram. 63a8f6863aSKris KennawayThrough use of environment variables the agent can be located 64b66f2d16SKris Kennawayand automatically used for authentication when logging in to other 65511b41d2SMark Murraymachines using 66511b41d2SMark Murray.Xr ssh 1 . 67511b41d2SMark Murray.Pp 68a0ee8cc6SDag-Erling SmørgravThe agent initially does not have any private keys. 69a0ee8cc6SDag-Erling SmørgravKeys are added using 70a0ee8cc6SDag-Erling Smørgrav.Xr ssh-add 1 . 71a0ee8cc6SDag-Erling SmørgravMultiple identities may be stored in 72a0ee8cc6SDag-Erling Smørgrav.Nm 73a0ee8cc6SDag-Erling Smørgravconcurrently and 74a0ee8cc6SDag-Erling Smørgrav.Xr ssh 1 75a0ee8cc6SDag-Erling Smørgravwill automatically use them if present. 76a0ee8cc6SDag-Erling Smørgrav.Xr ssh-add 1 77a0ee8cc6SDag-Erling Smørgravis also used to remove keys from 78a0ee8cc6SDag-Erling Smørgrav.Nm 79a0ee8cc6SDag-Erling Smørgravand to query the keys that are held in one. 80a0ee8cc6SDag-Erling Smørgrav.Pp 81511b41d2SMark MurrayThe options are as follows: 82511b41d2SMark Murray.Bl -tag -width Ds 83545d5ecaSDag-Erling Smørgrav.It Fl a Ar bind_address 84b15c8340SDag-Erling SmørgravBind the agent to the 85b15c8340SDag-Erling Smørgrav.Ux Ns -domain 86b15c8340SDag-Erling Smørgravsocket 87545d5ecaSDag-Erling Smørgrav.Ar bind_address . 88545d5ecaSDag-Erling SmørgravThe default is 894a421b63SDag-Erling Smørgrav.Pa $TMPDIR/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt . 90511b41d2SMark Murray.It Fl c 91511b41d2SMark MurrayGenerate C-shell commands on 92511b41d2SMark Murray.Dv stdout . 93511b41d2SMark MurrayThis is the default if 94511b41d2SMark Murray.Ev SHELL 95511b41d2SMark Murraylooks like it's a csh style of shell. 96*557f75e5SDag-Erling Smørgrav.It Fl D 97*557f75e5SDag-Erling SmørgravForeground mode. 98*557f75e5SDag-Erling SmørgravWhen this option is specified 99*557f75e5SDag-Erling Smørgrav.Nm 100*557f75e5SDag-Erling Smørgravwill not fork. 101d4af9e69SDag-Erling Smørgrav.It Fl d 102d4af9e69SDag-Erling SmørgravDebug mode. 103d4af9e69SDag-Erling SmørgravWhen this option is specified 104d4af9e69SDag-Erling Smørgrav.Nm 105*557f75e5SDag-Erling Smørgravwill not fork and will write debug information to standard error. 106bc5531deSDag-Erling Smørgrav.It Fl E Ar fingerprint_hash 107bc5531deSDag-Erling SmørgravSpecifies the hash algorithm used when displaying key fingerprints. 108bc5531deSDag-Erling SmørgravValid options are: 109bc5531deSDag-Erling Smørgrav.Dq md5 110bc5531deSDag-Erling Smørgravand 111bc5531deSDag-Erling Smørgrav.Dq sha256 . 112bc5531deSDag-Erling SmørgravThe default is 113bc5531deSDag-Erling Smørgrav.Dq sha256 . 114d4af9e69SDag-Erling Smørgrav.It Fl k 115d4af9e69SDag-Erling SmørgravKill the current agent (given by the 116d4af9e69SDag-Erling Smørgrav.Ev SSH_AGENT_PID 117d4af9e69SDag-Erling Smørgravenvironment variable). 118511b41d2SMark Murray.It Fl s 119511b41d2SMark MurrayGenerate Bourne shell commands on 120511b41d2SMark Murray.Dv stdout . 121511b41d2SMark MurrayThis is the default if 122511b41d2SMark Murray.Ev SHELL 123511b41d2SMark Murraydoes not look like it's a csh style of shell. 124d0c8c0bcSDag-Erling Smørgrav.It Fl t Ar life 125d0c8c0bcSDag-Erling SmørgravSet a default value for the maximum lifetime of identities added to the agent. 126d0c8c0bcSDag-Erling SmørgravThe lifetime may be specified in seconds or in a time format specified in 127021d409fSDag-Erling Smørgrav.Xr sshd_config 5 . 128d0c8c0bcSDag-Erling SmørgravA lifetime specified for an identity with 129d0c8c0bcSDag-Erling Smørgrav.Xr ssh-add 1 130d0c8c0bcSDag-Erling Smørgravoverrides this value. 131d0c8c0bcSDag-Erling SmørgravWithout this option the default maximum lifetime is forever. 132fceeafceSDag-Erling Smørgrav.It Fl x 133fceeafceSDag-Erling SmørgravExit after the last client has disconnected. 134511b41d2SMark Murray.El 135511b41d2SMark Murray.Pp 136511b41d2SMark MurrayIf a commandline is given, this is executed as a subprocess of the agent. 137511b41d2SMark MurrayWhen the command dies, so does the agent. 138511b41d2SMark Murray.Pp 139511b41d2SMark MurrayThe idea is that the agent is run in the user's local PC, laptop, or 140a8f6863aSKris Kennawayterminal. 141a8f6863aSKris KennawayAuthentication data need not be stored on any other 142511b41d2SMark Murraymachine, and authentication passphrases never go over the network. 143511b41d2SMark MurrayHowever, the connection to the agent is forwarded over SSH 144511b41d2SMark Murrayremote logins, and the user can thus use the privileges given by the 145511b41d2SMark Murrayidentities anywhere in the network in a secure way. 146511b41d2SMark Murray.Pp 147a8f6863aSKris KennawayThere are two main ways to get an agent set up: 148d74d50a8SDag-Erling SmørgravThe first is that the agent starts a new subcommand into which some environment 149d74d50a8SDag-Erling Smørgravvariables are exported, eg 150d74d50a8SDag-Erling Smørgrav.Cm ssh-agent xterm & . 151d74d50a8SDag-Erling SmørgravThe second is that the agent prints the needed shell commands (either 152511b41d2SMark Murray.Xr sh 1 153511b41d2SMark Murrayor 154511b41d2SMark Murray.Xr csh 1 1557aee6ffeSDag-Erling Smørgravsyntax can be generated) which can be evaluated in the calling shell, eg 156d74d50a8SDag-Erling Smørgrav.Cm eval `ssh-agent -s` 157d74d50a8SDag-Erling Smørgravfor Bourne-type shells such as 158d74d50a8SDag-Erling Smørgrav.Xr sh 1 159d74d50a8SDag-Erling Smørgravor 160d74d50a8SDag-Erling Smørgrav.Xr ksh 1 161d74d50a8SDag-Erling Smørgravand 162d74d50a8SDag-Erling Smørgrav.Cm eval `ssh-agent -c` 163d74d50a8SDag-Erling Smørgravfor 164d74d50a8SDag-Erling Smørgrav.Xr csh 1 165d74d50a8SDag-Erling Smørgravand derivatives. 166d74d50a8SDag-Erling Smørgrav.Pp 167511b41d2SMark MurrayLater 168511b41d2SMark Murray.Xr ssh 1 1691e8db6e2SBrian Feldmanlooks at these variables and uses them to establish a connection to the agent. 170511b41d2SMark Murray.Pp 171ae1f160dSDag-Erling SmørgravThe agent will never send a private key over its request channel. 172ae1f160dSDag-Erling SmørgravInstead, operations that require a private key will be performed 173ae1f160dSDag-Erling Smørgravby the agent, and the result will be returned to the requester. 174ae1f160dSDag-Erling SmørgravThis way, private keys are not exposed to clients using the agent. 175ae1f160dSDag-Erling Smørgrav.Pp 176b15c8340SDag-Erling SmørgravA 177b15c8340SDag-Erling Smørgrav.Ux Ns -domain 178b15c8340SDag-Erling Smørgravsocket is created and the name of this socket is stored in the 179511b41d2SMark Murray.Ev SSH_AUTH_SOCK 180511b41d2SMark Murrayenvironment 181a8f6863aSKris Kennawayvariable. 182a8f6863aSKris KennawayThe socket is made accessible only to the current user. 183511b41d2SMark MurrayThis method is easily abused by root or another instance of the same 184511b41d2SMark Murrayuser. 185511b41d2SMark Murray.Pp 186511b41d2SMark MurrayThe 187511b41d2SMark Murray.Ev SSH_AGENT_PID 188ee21a45fSDag-Erling Smørgravenvironment variable holds the agent's process ID. 189511b41d2SMark Murray.Pp 190511b41d2SMark MurrayThe agent exits automatically when the command given on the command 191511b41d2SMark Murrayline terminates. 192511b41d2SMark Murray.Sh FILES 193511b41d2SMark Murray.Bl -tag -width Ds 1944a421b63SDag-Erling Smørgrav.It Pa $TMPDIR/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt 195b15c8340SDag-Erling Smørgrav.Ux Ns -domain 196b15c8340SDag-Erling Smørgravsockets used to contain the connection to the authentication agent. 197a8f6863aSKris KennawayThese sockets should only be readable by the owner. 198a8f6863aSKris KennawayThe sockets should get automatically removed when the agent exits. 199b66f2d16SKris Kennaway.El 200d95e11bfSDag-Erling Smørgrav.Sh SEE ALSO 201d95e11bfSDag-Erling Smørgrav.Xr ssh 1 , 202d95e11bfSDag-Erling Smørgrav.Xr ssh-add 1 , 203d95e11bfSDag-Erling Smørgrav.Xr ssh-keygen 1 , 204d95e11bfSDag-Erling Smørgrav.Xr sshd 8 2051e8db6e2SBrian Feldman.Sh AUTHORS 2061e8db6e2SBrian FeldmanOpenSSH is a derivative of the original and free 2071e8db6e2SBrian Feldmanssh 1.2.12 release by Tatu Ylonen. 2081e8db6e2SBrian FeldmanAaron Campbell, Bob Beck, Markus Friedl, Niels Provos, 2091e8db6e2SBrian FeldmanTheo de Raadt and Dug Song 2101e8db6e2SBrian Feldmanremoved many bugs, re-added newer features and 2111e8db6e2SBrian Feldmancreated OpenSSH. 2121e8db6e2SBrian FeldmanMarkus Friedl contributed the support for SSH 2131e8db6e2SBrian Feldmanprotocol versions 1.5 and 2.0. 214