Provided by: erlang-manpages_24.3.4.1+dfsg-1_all bug

NAME

       ssh_client_key_api -
            -behaviour(ssh_client_key_api).

DESCRIPTION

       Behavior  describing the API for public key handling of an SSH client. By implementing the
       callbacks defined in this behavior, the public key  handling  of  an  SSH  client  can  be
       customized.  By  default  the  ssh  application  implements this behavior with help of the
       standard OpenSSH files, see the  ssh(7) application manual.

DATA TYPES

       client_key_cb_options(T) =
           [{key_cb_private, [T]} | ssh:client_option()]

              Options provided to ssh:connect/[3,4].

              The  option  list  given  in  the  key_cb  option  is  available   with   the   key
              key_cb_private.

EXPORTS

       Module:add_host_key(HostNames, PublicHostKey, ConnectOptions) -> ok | {error, Reason}

              Types:

                 HostNames = string()
                   Description of the host that owns the PublicHostKey.
                 PublicHostKey = public_key:public_key()
                   Of ECDSA keys, only the Normally an RSA, DSA or ECDSA public key, but handling
                   of other public keys can be added.
                 ConnectOptions = client_key_cb_options()

              This function is retired in favour for Module:add_host_key/4 which is the  prefered
              API  function. The calling SSH application will still try the add_host_key/3 if the
              call to add_host_key/4 failed.

              Adds a host key to the set of trusted host keys.

       Module:add_host_key(Host, Port, PublicHostKey, ConnectOptions) -> ok | {error, Reason}

              Types:

                 Host  =  inet:ip_address()   |   inet:hostname()   |   [   inet:ip_address()   |
                 inet:hostname() ]
                   The host that owns the PublicHostKey. One or more IP addresses or hostnames.
                 Port = inet:port_number()
                   The Port number of the Host.
                 PublicHostKey = public_key:public_key()
                   Of ECDSA keys, only the Normally an RSA, DSA or ECDSA public key, but handling
                   of other public keys can be added.
                 ConnectOptions = client_key_cb_options()

              Adds a host key to the set of trusted host keys.

              This function is prefered to the old Module:add_host_key/3 since it also  uses  the
              peer host port number and may return an error message.

              The  OTP/SSH application first calls this function in the callback module, and then
              the old Module:add_host_key/3 for compatibilty.

       Module:is_host_key(Key, Host, Algorithm, ConnectOptions) -> Result

              Types:

                 Key = public_key:public_key()
                   Normally an RSA, DSA or ECDSA public key, but handling of  other  public  keys
                   can be added.
                 Host = string()
                   Description of the host.
                 Algorithm = ssh:pubkey_alg()
                   Host key algorithm.
                 ConnectOptions = client_key_cb_options()
                 Result = boolean()

              This  function  is retired in favour for Module:is_host_key/5 which is the prefered
              API function. The calling SSH application will still try the is_host_key/4  if  the
              call to is_host_key/5 failed.

              Checks if a host key is trusted.

       Module:is_host_key(Key, Host, Port, Algorithm, ConnectOptions) -> Result

              Types:

                 Key = public_key:public_key()
                   Normally  an  RSA,  DSA or ECDSA public key, but handling of other public keys
                   can be added.
                 Host  =  inet:ip_address()   |   inet:hostname()   |   [   inet:ip_address()   |
                 inet:hostname() ]
                   Description of the host with one or more IP addresses or hostnames.
                 Port = inet:port_number()
                   The Port number of the host.
                 Algorithm = ssh:pubkey_alg()
                   Host key algorithm.
                 ConnectOptions = client_key_cb_options()
                 Result = boolean() | {error, Error::term()}
                   The  exact  error  message  depends  on  the actual callback module. The Error
                   message makes the connection to fail, and is returned from e.g ssh:connect/3.

              Checks if a host key is trusted.

              This function is prefered to the old Module:is_host_key/4 since it  also  uses  the
              peer host port number and may return an error message.

              The  OTP/SSH application first calls this function in the callback module, and then
              the old Module:is_host_key/4 for compatibilty.

       Module:user_key(Algorithm, ConnectOptions) -> Result

              Types:

                 Algorithm = ssh:pubkey_alg()
                   Host key algorithm.
                 ConnectOptions = client_key_cb_options()
                 Result = {ok,  public_key:private_key()}  |  {ok,  {ssh2_pubkey,  PubKeyBlob  ::
                 binary()}} | {error, term()}

              Fetches  the users public key matching the Algorithm. Some key callback modules may
              return {ssh2_pubkey, PubKeyBlob :: binary()}.

          Note:
              The private key contains the public key.