SSH-KEYMAN(1)

NAME
ssh-keyman - authentication key agent management

SYNOPSIS
ssh-keyman [-q] [-c] [-k] [-s] [-e] [-d] [-a] [-l] [keyfile ...]

ssh-keyman -h -v

DESCRIPTION
ssh-keyman is a frontend to the ssh-agent and ssh-add commands for managing a long-running ssh-agent process. The idea is that a single ssh-agent process is kept persistently running across multiple user login sessions in order to prevent the startup of multiple ssh-agent processes and to avoid having to enter pass-phrases more often than really necessary from a security point of view.

The command line options can be combined and are executed internally in the given order below.

-q, --quiet
    Quiet operation. Do not print verbose messages.

-c, --cluster
    Cluster indicator. This forces the use of $HOME/.ssh/agent-hostname as the agent attachment informations file instead of the default $HOME/.ssh/agent. Use this if your home directory is NFS-mounted on a cluster of desktops.

-k, --kill
    Kill agent. This makes sure the ssh-agent process is no longer running.

-s, --start
    Start agent. This makes sure the ssh-agent process is running. If not, it automatically spawns a new one.

-e, --env
    Environment setup. This outputs to stdout the Bourne-Shell commands necessary to attach the current shell session to the ssh-agent process. The intended usage is ""eval `ssh-keyman -q -e -s`"" from within $HOME/.xsession or $HOME/.bash_login scripts.

-d, --delete
    Delete key. This deletes one or more (or all if not keyfile arguments are specified at all) from the ssh-agent process.

-a, --add
    Add key. This adds one or more keys (in keyfile) to the ssh-agent process. If a key is already loaded, it is skipped and not reloaded. Additionally, all specified keys are loaded with a single ssh-add call. This way the pass-phrase dialog is reduced to its possible minimum.

-l, --list
    List keys. This lists the currently available keys in the ssh-agent process.

-h, --help
    Help information. Display a usage summary on stdout.

-v, --version
    Version information. Display a version summary on stdout.

EXAMPLE
.xsession:

 eval `ssh-keyman -q -s -e`
 ssh-keyman -q -a </dev/null \
     ~/.ssh/id_rsa_1 \
     ~/.ssh/id_rsa_2 \
     ~/.ssh/id_rsa_3
.bash_login:

 eval `ssh-keyman -q -s -e`

FILES

$HOME/.ssh/agent
    The generated shell script for attaching the current shell session (and all of its sub-processes) to the ssh-agent process. At any time this can be directly sourced from within the shell session or indirectly through the ssh-keyman -e option. This file is used if the cluster option -c is not used.

$HOME/.ssh/agent-hostname
    The generated shell script for attaching the current shell session (and all of its sub-processes) to the ssh-agent process. At any time this can be directly sourced from within the shell session or indirectly through the ssh-keyman -e option. This file is used if the cluster option -c is used.

SEE ALSO
ssh-agent(1), ssh-add(1).

HISTORY
ssh-keyman was written in May 2002 by Ralf S. Engelschall <rse@engelschall.com>. It was inspired by the similar program keychain from Daniel Robbins <drobbins@gentoo.org>. The main difference between keychain and ssh-keyman is that ssh-keyman uses a more orthogonal interface which even allows you to combine multiple actions into a single call.