2015-11-16 00:54:15 +01:00
|
|
|
.\" $OpenBSD: ssh-agent.1,v 1.62 2015/11/15 23:54:15 jmc Exp $
|
1999-10-29 01:15:49 +02:00
|
|
|
.\"
|
|
|
|
.\" Author: Tatu Ylonen <ylo@cs.hut.fi>
|
|
|
|
.\" Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
|
|
|
.\" All rights reserved
|
|
|
|
.\"
|
2000-09-16 04:29:08 +02:00
|
|
|
.\" As far as I am concerned, the code I have written for this software
|
|
|
|
.\" can be used freely for any purpose. Any derived versions of this
|
|
|
|
.\" software must be clearly marked as such, and if the derived work is
|
|
|
|
.\" incompatible with the protocol description in the RFC file, it must be
|
|
|
|
.\" called by a name other than "ssh" or "Secure Shell".
|
|
|
|
.\"
|
2001-03-05 07:59:27 +01:00
|
|
|
.\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved.
|
|
|
|
.\" Copyright (c) 1999 Aaron Campbell. All rights reserved.
|
|
|
|
.\" Copyright (c) 1999 Theo de Raadt. All rights reserved.
|
2000-09-16 04:29:08 +02:00
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
|
|
|
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
|
|
|
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
|
|
.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
|
|
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
|
|
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
|
|
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1999-10-29 01:15:49 +02:00
|
|
|
.\"
|
2015-11-15 23:26:49 +01:00
|
|
|
.Dd $Mdocdate: November 15 2015 $
|
1999-10-29 01:15:49 +02:00
|
|
|
.Dt SSH-AGENT 1
|
|
|
|
.Os
|
|
|
|
.Sh NAME
|
|
|
|
.Nm ssh-agent
|
|
|
|
.Nd authentication agent
|
|
|
|
.Sh SYNOPSIS
|
2000-04-13 04:26:34 +02:00
|
|
|
.Nm ssh-agent
|
2010-09-10 03:12:38 +02:00
|
|
|
.Op Fl c | s
|
2015-11-16 00:54:15 +01:00
|
|
|
.Op Fl \&Dd
|
2007-09-17 08:05:50 +02:00
|
|
|
.Op Fl a Ar bind_address
|
2014-12-21 23:27:55 +01:00
|
|
|
.Op Fl E Ar fingerprint_hash
|
2007-09-17 08:05:50 +02:00
|
|
|
.Op Fl t Ar life
|
|
|
|
.Op Ar command Op Ar arg ...
|
2000-11-21 22:24:55 +01:00
|
|
|
.Nm ssh-agent
|
2010-09-10 03:12:38 +02:00
|
|
|
.Op Fl c | s
|
2000-11-21 22:24:55 +01:00
|
|
|
.Fl k
|
2000-04-13 04:26:34 +02:00
|
|
|
.Sh DESCRIPTION
|
1999-10-29 01:15:49 +02:00
|
|
|
.Nm
|
2000-08-23 02:46:23 +02:00
|
|
|
is a program to hold private keys used for public key authentication
|
2014-08-30 17:33:50 +02:00
|
|
|
(RSA, DSA, ECDSA, Ed25519).
|
1999-10-29 01:15:49 +02:00
|
|
|
.Nm
|
2014-04-20 05:25:09 +02:00
|
|
|
is usually started in the beginning of an X-session or a login session, and
|
1999-10-29 01:15:49 +02:00
|
|
|
all other windows or programs are started as clients to the ssh-agent
|
2000-03-26 05:04:51 +02:00
|
|
|
program.
|
|
|
|
Through use of environment variables the agent can be located
|
2000-08-23 02:46:23 +02:00
|
|
|
and automatically used for authentication when logging in to other
|
1999-10-29 01:15:49 +02:00
|
|
|
machines using
|
|
|
|
.Xr ssh 1 .
|
|
|
|
.Pp
|
2014-04-20 05:25:09 +02:00
|
|
|
The agent initially does not have any private keys.
|
|
|
|
Keys are added using
|
2015-11-15 23:26:49 +01:00
|
|
|
.Xr ssh 1
|
|
|
|
(see
|
|
|
|
.Cm AddKeysToAgent
|
|
|
|
in
|
|
|
|
.Xr ssh_config 5
|
|
|
|
for details)
|
|
|
|
or
|
2014-04-20 05:25:09 +02:00
|
|
|
.Xr ssh-add 1 .
|
|
|
|
Multiple identities may be stored in
|
|
|
|
.Nm
|
|
|
|
concurrently and
|
|
|
|
.Xr ssh 1
|
|
|
|
will automatically use them if present.
|
|
|
|
.Xr ssh-add 1
|
|
|
|
is also used to remove keys from
|
|
|
|
.Nm
|
|
|
|
and to query the keys that are held in one.
|
|
|
|
.Pp
|
1999-10-29 01:15:49 +02:00
|
|
|
The options are as follows:
|
|
|
|
.Bl -tag -width Ds
|
2002-06-06 23:46:08 +02:00
|
|
|
.It Fl a Ar bind_address
|
2009-10-24 02:41:34 +02:00
|
|
|
Bind the agent to the
|
2009-10-24 02:42:44 +02:00
|
|
|
.Ux Ns -domain
|
|
|
|
socket
|
2002-06-06 23:46:08 +02:00
|
|
|
.Ar bind_address .
|
|
|
|
The default is
|
2010-12-01 01:50:35 +01:00
|
|
|
.Pa $TMPDIR/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt .
|
1999-10-29 01:15:49 +02:00
|
|
|
.It Fl c
|
|
|
|
Generate C-shell commands on
|
|
|
|
.Dv stdout .
|
|
|
|
This is the default if
|
|
|
|
.Ev SHELL
|
|
|
|
looks like it's a csh style of shell.
|
2015-04-24 07:26:44 +02:00
|
|
|
.It Fl D
|
|
|
|
Foreground mode.
|
|
|
|
When this option is specified
|
|
|
|
.Nm
|
|
|
|
will not fork.
|
2007-09-17 08:05:50 +02:00
|
|
|
.It Fl d
|
|
|
|
Debug mode.
|
|
|
|
When this option is specified
|
|
|
|
.Nm
|
2015-04-24 07:26:44 +02:00
|
|
|
will not fork and will write debug information to standard error.
|
2014-12-21 23:27:55 +01:00
|
|
|
.It Fl E Ar fingerprint_hash
|
|
|
|
Specifies the hash algorithm used when displaying key fingerprints.
|
|
|
|
Valid options are:
|
|
|
|
.Dq md5
|
|
|
|
and
|
|
|
|
.Dq sha256 .
|
|
|
|
The default is
|
|
|
|
.Dq sha256 .
|
2007-09-17 08:05:50 +02:00
|
|
|
.It Fl k
|
|
|
|
Kill the current agent (given by the
|
|
|
|
.Ev SSH_AGENT_PID
|
|
|
|
environment variable).
|
1999-10-29 01:15:49 +02:00
|
|
|
.It Fl s
|
|
|
|
Generate Bourne shell commands on
|
|
|
|
.Dv stdout .
|
|
|
|
This is the default if
|
|
|
|
.Ev SHELL
|
|
|
|
does not look like it's a csh style of shell.
|
2003-01-22 01:47:19 +01:00
|
|
|
.It Fl t Ar life
|
2003-04-01 13:42:14 +02:00
|
|
|
Set a default value for the maximum lifetime of identities added to the agent.
|
2003-01-22 01:47:19 +01:00
|
|
|
The lifetime may be specified in seconds or in a time format specified in
|
2005-11-28 07:05:40 +01:00
|
|
|
.Xr sshd_config 5 .
|
2003-01-22 01:47:19 +01:00
|
|
|
A lifetime specified for an identity with
|
|
|
|
.Xr ssh-add 1
|
|
|
|
overrides this value.
|
|
|
|
Without this option the default maximum lifetime is forever.
|
1999-10-29 01:15:49 +02:00
|
|
|
.El
|
|
|
|
.Pp
|
2015-11-05 10:48:05 +01:00
|
|
|
If a command line is given, this is executed as a subprocess of the agent.
|
1999-10-29 01:15:49 +02:00
|
|
|
When the command dies, so does the agent.
|
|
|
|
.Pp
|
|
|
|
The idea is that the agent is run in the user's local PC, laptop, or
|
2000-03-26 05:04:51 +02:00
|
|
|
terminal.
|
|
|
|
Authentication data need not be stored on any other
|
1999-10-29 01:15:49 +02:00
|
|
|
machine, and authentication passphrases never go over the network.
|
|
|
|
However, the connection to the agent is forwarded over SSH
|
|
|
|
remote logins, and the user can thus use the privileges given by the
|
|
|
|
identities anywhere in the network in a secure way.
|
|
|
|
.Pp
|
2003-05-15 02:16:21 +02:00
|
|
|
There are two main ways to get an agent set up:
|
2004-05-13 08:45:46 +02:00
|
|
|
The first is that the agent starts a new subcommand into which some environment
|
|
|
|
variables are exported, eg
|
|
|
|
.Cm ssh-agent xterm & .
|
|
|
|
The second is that the agent prints the needed shell commands (either
|
1999-10-29 01:15:49 +02:00
|
|
|
.Xr sh 1
|
|
|
|
or
|
|
|
|
.Xr csh 1
|
2009-06-21 09:52:27 +02:00
|
|
|
syntax can be generated) which can be evaluated in the calling shell, eg
|
2004-05-13 08:45:46 +02:00
|
|
|
.Cm eval `ssh-agent -s`
|
|
|
|
for Bourne-type shells such as
|
|
|
|
.Xr sh 1
|
|
|
|
or
|
|
|
|
.Xr ksh 1
|
|
|
|
and
|
2004-07-17 08:12:08 +02:00
|
|
|
.Cm eval `ssh-agent -c`
|
2004-05-13 08:45:46 +02:00
|
|
|
for
|
|
|
|
.Xr csh 1
|
|
|
|
and derivatives.
|
|
|
|
.Pp
|
1999-10-29 01:15:49 +02:00
|
|
|
Later
|
|
|
|
.Xr ssh 1
|
2001-04-04 03:51:25 +02:00
|
|
|
looks at these variables and uses them to establish a connection to the agent.
|
1999-10-29 01:15:49 +02:00
|
|
|
.Pp
|
2001-12-06 17:37:51 +01:00
|
|
|
The agent will never send a private key over its request channel.
|
|
|
|
Instead, operations that require a private key will be performed
|
|
|
|
by the agent, and the result will be returned to the requester.
|
|
|
|
This way, private keys are not exposed to clients using the agent.
|
|
|
|
.Pp
|
2009-10-24 02:41:34 +02:00
|
|
|
A
|
2009-10-24 02:42:44 +02:00
|
|
|
.Ux Ns -domain
|
|
|
|
socket is created and the name of this socket is stored in the
|
1999-10-29 01:15:49 +02:00
|
|
|
.Ev SSH_AUTH_SOCK
|
|
|
|
environment
|
2000-03-26 05:04:51 +02:00
|
|
|
variable.
|
|
|
|
The socket is made accessible only to the current user.
|
1999-10-29 01:15:49 +02:00
|
|
|
This method is easily abused by root or another instance of the same
|
|
|
|
user.
|
|
|
|
.Pp
|
|
|
|
The
|
|
|
|
.Ev SSH_AGENT_PID
|
2002-06-23 02:35:25 +02:00
|
|
|
environment variable holds the agent's process ID.
|
1999-10-29 01:15:49 +02:00
|
|
|
.Pp
|
|
|
|
The agent exits automatically when the command given on the command
|
|
|
|
line terminates.
|
|
|
|
.Sh FILES
|
|
|
|
.Bl -tag -width Ds
|
2010-12-01 01:50:35 +01:00
|
|
|
.It Pa $TMPDIR/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt
|
2009-10-24 02:42:44 +02:00
|
|
|
.Ux Ns -domain
|
|
|
|
sockets used to contain the connection to the authentication agent.
|
2000-03-26 05:04:51 +02:00
|
|
|
These sockets should only be readable by the owner.
|
|
|
|
The sockets should get automatically removed when the agent exits.
|
2000-07-11 09:31:38 +02:00
|
|
|
.El
|
2003-06-11 14:04:39 +02:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr ssh 1 ,
|
|
|
|
.Xr ssh-add 1 ,
|
|
|
|
.Xr ssh-keygen 1 ,
|
|
|
|
.Xr sshd 8
|
2000-11-13 12:57:25 +01:00
|
|
|
.Sh AUTHORS
|
2001-01-29 09:34:16 +01:00
|
|
|
OpenSSH is a derivative of the original and free
|
|
|
|
ssh 1.2.12 release by Tatu Ylonen.
|
|
|
|
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos,
|
|
|
|
Theo de Raadt and Dug Song
|
|
|
|
removed many bugs, re-added newer features and
|
|
|
|
created OpenSSH.
|
|
|
|
Markus Friedl contributed the support for SSH
|
|
|
|
protocol versions 1.5 and 2.0.
|