ssh_client_key_api(3)

NAME
ssh_client_key_api -
     -behaviour(ssh_client_key_api).

DESCRIPTION

Behavior describing the API for an SSH client's public key handling. By implementing the callbacks defined. in this behavior it is possible to customize the SSH client's public key handling. By default the SSH application implements this behavior with help of the standard openssh files, see ssh(6).

DATA TYPES

Type definitions that are used more than once in this module and/or abstractions to indicate the intended use of the data type:

boolean() = true | false

string() = [byte()]

public_key() = #'RSAPublicKey'{}| {integer(), #'Dss-Parms'{}}| term()

private_key() = #'RSAPublicKey'{}| {integer(), #'Dss-Parms'{}}| term()

public_key_algorithm() = 'ssh-rsa'| 'ssh-dss' | atom()

EXPORTS

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

    Types:
        HostNames = string()
            Description of the host that owns the PublicKey
        Key = public_key()
             Normally an RSA or DSA public key but handling of other public keys can be added
        ConnectOptions = proplists:proplist()
            Options provided to ssh:connect/[3,4]
        Reason = term()

    Adds a host key to the set of trusted host keys

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

    Types:
        Key = public_key()
             Normally an RSA or DSA public key but handling of other public keys can be added
        Host = string()
            Description of the host
        Algorithm = public_key_algorithm()
             Host key algorithm. Should support 'ssh-rsa'| 'ssh-dss' but additional algorithms can be handled.
         ConnectOptions = proplists:proplist()
            Options provided to ssh:connect/[3,4]
         Result = boolean()

    Checks if a host key is trusted

Module:user_key(Algorithm, ConnectOptions) -> {ok, PrivateKey} | {error, Reason}

    Types:
        Algorithm = public_key_algorithm()
             Host key algorithm. Should support 'ssh-rsa'| 'ssh-dss' but additional algorithms can be handled.
         ConnectOptions = proplists:proplist()
            Options provided to ssh:connect/[3,4]
         PrivateKey = private_key()
             The private key of the user matching the Algorithm
        Reason = term()

    Fetches the users "public key" matching the Algorithm.

        Note:
    The private key contains the public key