View Source ssh_agent (ssh v5.2)
Callback module for using an SSH agent instead of the default ssh_file callback.
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
environment 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}]}}
Note
The functions are Callbacks for the SSH app. They are not intended to be called from the user's code!
Summary
Functions
Equivalent to add_host_key/4
.
This callback is delegated to the ssh_file module.
Equivalent to is_host_key/5
.
This callback is delegated to the ssh_file module.
Types and description
Types: Options for the ssh_agent callback module
Functions
-spec 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()).
Equivalent to add_host_key/4
.
-spec 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()}.
This callback is delegated to the ssh_file module.
-spec 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()).
Equivalent to is_host_key/5
.
is_host_key(Key, PeerName, Port, Algorithm, Opts)
View Source (since OTP 23.0)-spec 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()).
This callback is delegated to the ssh_file module.
-spec 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.