logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ssh_agent - Callback module for using an SSH agent instead of the default ssh_file callback.

Data Types

Optionsforthessh_agentcallbackmodulesocket_path_option() = {socket_path, string()}

              Sets the socket path for the communication with the agent.

       timeout_option() = {timeout, integer()}

              Sets  the  time-out  in milliseconds when communicating with the agent via the socket. The default
              value is 1000.

       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.

Description

       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}]}}

   Note:
       The functions are Callbacks  for the SSH app. They are not intended to be called from the user's code!

Exports

add_host_key(Host::string(),
                    PublicKey :: public_key:public_key(),
                    Options) ->
                       ok | {error, Error :: term()}

       add_host_key(Host,
                    Port :: inet:port_number(),
                    PublicKey :: public_key:public_key(),
                    Options) ->
                       Result

              Types:

                 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.

       is_host_key(Key::public_key:public_key(),
                   Host :: string(),
                   Algorithm :: ssh:pubkey_alg(),
                   Options) ->
                      boolean()

       is_host_key(Key::public_key:public_key(),
                   Host,
                   Port :: inet:port_number(),
                   Algorithm :: ssh:pubkey_alg(),
                   Options) ->
                      boolean()

              Types:

                 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.

       user_key(Algorithm::ssh:pubkey_alg(),Options)->Result

              Types:

                 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())

              Typesanddescription

              See the api description in ssh_client_key_api, Module:user_key/2.

Ericsson AB                                         ssh 4.13                                     ssh_agent(3erl)

Name

       ssh_agent - Callback module for using an SSH agent instead of the default ssh_file callback.

See Also