ssh_agent (ssh v4.12.3)
This module defines a callback handler for the communication with an SSH Agent and can be used to replace the default callback. This allows to issue signing requests to an agent that stores SSH private keys to perform authentication.
Ssh_agent implements the ssh_client_key_api, to allow it to be used by setting the option key_cb
when starting a client (with for example ssh:connect, ssh:shell ).
{key_cb, {ssh_agent, []}}
The agent communication is established through a UNIX domain socket. By default, the socket path will be fetched from the SSH_AUTH_SOCK
enviroment variable, which is the default socket path in the agent implementation of OpenSSH.
In order to set a different socket path the socket_path
option can be set.
{key_cb, {ssh_agent, [{socket_path, SocketPath}]}}
The functions are Callbacks for the SSH app. They are not intended to be called from the user's code!
Link to this section Summary
Types
The module which the add_host_key
and is_host_key
callbacks are delegated to. Defaults to the ssh_file module.
Sets the socket path for the communication with the agent.
Sets the time-out in milliseconds when communicating with the agent via the socket. The default value is 1000
.
Link to this section Types
-type call_ssh_file_option() :: term().
Specs
call_ssh_file_option() :: {call_ssh_file, atom()}.
The module which the add_host_key
and is_host_key
callbacks are delegated to. Defaults to the ssh_file module.
-type socket_path_option() :: term().
Specs
socket_path_option() :: {socket_path, string()}.
Sets the socket path for the communication with the agent.
-type timeout_option() :: term().
Specs
timeout_option() :: {timeout, integer()}.
Sets the time-out in milliseconds when communicating with the agent via the socket. The default value is 1000
.
Link to this section Functions
Specs
add_host_key(string(), public_key:public_key(), Options) -> ok | {error, Error :: term()} when Options :: ssh_client_key_api:client_key_cb_options(call_ssh_file_option()).
This callback is delegated to the ssh_file module.
Specs
add_host_key(Host, inet:port_number(), public_key:public_key(), Options) -> Result when Host :: inet:ip_address() | inet:hostname() | [inet:ip_address() | inet:hostname()], Options :: ssh_client_key_api:client_key_cb_options(call_ssh_file_option()), Result :: ok | {error, Error :: term()}.
Specs
is_host_key(Key :: public_key:public_key(), Host :: string(), Algorithm :: ssh:pubkey_alg(), Options) -> boolean() when Options :: ssh_client_key_api:client_key_cb_options(call_ssh_file_option()).
This callback is delegated to the ssh_file module.
Specs
is_host_key(public_key:public_key(), Host, inet:port_number(), ssh:pubkey_alg(), Options) -> boolean() when Host :: inet:ip_address() | inet:hostname() | [inet:ip_address() | inet:hostname()], Options :: ssh_client_key_api:client_key_cb_options(call_ssh_file_option()).
Specs
user_key(Algorithm :: ssh:pubkey_alg(), Options) -> Result when Result :: {ok, public_key:private_key()} | {ok, {ssh2_pubkey, PubKeyBlob :: binary()}} | {error, string()}, Options :: ssh_client_key_api:client_key_cb_options(socket_path_option() | timeout_option()).
Types and description
See the api description in ssh_client_key_api, Module:user_key/2.