ssh_client_key_api

-behaviour(ssh_client_key_api).

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. For more details on public key data types see the public_key user's guide.

boolean() = true | false

string() = [byte()]

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

private_key() = #'RSAPrivateKey'{} | #'DSAPrivateKey'{} | term()

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

Functions


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

  • 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

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

  • 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