FreeBSD Manual Pages
SSH-AGENT(1) General Commands Manual SSH-AGENT(1) NAME ssh-agent -- OpenSSH authentication agent SYNOPSIS ssh-agent [-c | -s] [-Ddx] [-a bind_address] [-E fingerprint_hash] [-O option] [-P allowed_providers] [-t life] ssh-agent [-a bind_address] [-E fingerprint_hash] [-O option] [-P allowed_providers] [-t life] command [arg ...] ssh-agent [-c | -s] -k DESCRIPTION ssh-agent is a program to hold private keys used for public key authen- tication. Through use of environment variables the agent can be lo- cated and automatically used for authentication when logging in to other machines using ssh(1). The options are as follows: -a bind_address Bind the agent to the Unix-domain socket bind_address. The de- fault is $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid>. -c Generate C-shell commands on stdout. This is the default if SHELL looks like it's a csh style of shell. -D Foreground mode. When this option is specified, ssh-agent will not fork. -d Debug mode. When this option is specified, ssh-agent will not fork and will write debug information to standard error. -E fingerprint_hash Specifies the hash algorithm used when displaying key finger- prints. Valid options are: "md5" and "sha256". The default is "sha256". -k Kill the current agent (given by the SSH_AGENT_PID environment variable). -O option Specify an option when starting ssh-agent. Currently two op- tions are supported: allow-remote-pkcs11 and no-restrict-websafe. The allow-remote-pkcs11 option allows clients of a forwarded ssh-agent to load PKCS#11 or FIDO provider libraries. By de- fault only local clients may perform this operation. Note that signalling that an ssh-agent client is remote is performed by ssh(1), and use of other tools to forward access to the agent socket may circumvent this restriction. The no-restrict-websafe option instructs ssh-agent to permit signatures using FIDO keys that might be web authentication re- quests. By default, ssh-agent refuses signature requests for FIDO keys where the key application string does not start with "ssh:" and when the data to be signed does not appear to be a ssh(1) user authentication request or a ssh-keygen(1) signa- ture. The default behaviour prevents forwarded access to a FIDO key from also implicitly forwarding the ability to authen- ticate to websites. -P allowed_providers Specify a pattern-list of acceptable paths for PKCS#11 provider and FIDO authenticator middleware shared libraries that may be used with the -S or -s options to ssh-add(1). Libraries that do not match the pattern list will be refused. See PATTERNS in ssh_config(5) for a description of pattern-list syntax. The default list is "usr/lib*/*,/usr/local/lib*/*". -s Generate Bourne shell commands on stdout. This is the default if SHELL does not look like it's a csh style of shell. -t life Set a default value for the maximum lifetime of identities added to the agent. The lifetime may be specified in seconds or in a time format specified in sshd_config(5). A lifetime specified for an identity with ssh-add(1) overrides this value. Without this option the default maximum lifetime is forever. -x Exit after the last client has disconnected. command [arg ...] If a command (and optional arguments) is given, this is exe- cuted as a subprocess of the agent. The agent exits automati- cally when the command given on the command line terminates. There are two main ways to get an agent set up. The first is at the start of an X session, where all other windows or programs are started as children of the ssh-agent program. The agent starts a command under which its environment variables are exported, for example ssh-agent xterm &. When the command terminates, so does the agent. The second method is used for a login session. When ssh-agent is started, it prints the shell commands required to set its environment variables, which in turn can be evaluated in the calling shell, for ex- ample eval `ssh-agent -s`. In both cases, ssh(1) looks at these environment variables and uses them to establish a connection to the agent. The agent initially does not have any private keys. Keys are added us- ing ssh-add(1) or by ssh(1) when AddKeysToAgent is set in ssh_config(5). Multiple identities may be stored in ssh-agent concur- rently and ssh(1) will automatically use them if present. ssh-add(1) is also used to remove keys from ssh-agent and to query the keys that are held in one. Connections to ssh-agent may be forwarded from further remote hosts us- ing the -A option to ssh(1) (but see the caveats documented therein), avoiding the need for authentication data to be stored on other ma- chines. Authentication passphrases and private keys never go over the network: the connection to the agent is forwarded over SSH remote con- nections and the result is returned to the requester, allowing the user access to their identities anywhere in the network in a secure fashion. ENVIRONMENT SSH_AGENT_PID When ssh-agent starts, it stores the name of the agent's process ID (PID) in this variable. SSH_AUTH_SOCK When ssh-agent starts, it creates a Unix-domain socket and stores its pathname in this variable. It is acces- sible only to the current user, but is easily abused by root or another instance of the same user. FILES $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid> Unix-domain sockets used to contain the connection to the au- thentication agent. These sockets should only be readable by the owner. The sockets should get automatically removed when the agent exits. SEE ALSO ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), sshd(8) AUTHORS 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. FreeBSD 13.2 August 10, 2023 SSH-AGENT(1)
NAME | SYNOPSIS | DESCRIPTION | ENVIRONMENT | FILES | SEE ALSO | AUTHORS
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ssh-agent&manpath=FreeBSD+14.2-RELEASE+and+Ports>