User's Guide
Reference Manual
Release Notes
PDF
Top

SSH
Reference Manual
Version 3.0

Expand All
Contract All

Table of Contents

- SSH (App)
- ssh
  - Top of manual page
  - close/1
  - connect/3
  - connect/4
  - connection_info/2
  - daemon/1
  - daemon/2
  - daemon/3
  - shell/1
  - shell/2
  - shell/3
  - start/0
  - start/1
  - stop/0
  - stop_daemon/1
  - stop_daemon/2
  - stop_listener/1
  - stop_listener/2
- ssh_channel
  - Top of manual page
  - call/2
  - call/3
  - cast/2
  - enter_loop/1
  - init/1
  - reply/2
  - start/4
  - start_link/4
  - Module:code_change/3
  - Module:init/1
  - Module:handle_call/3
  - Module:handle_cast/2
  - Module:handle_msg/2
  - Module:handle_ssh_msg/2
  - Module:terminate/2
- ssh_connection
  - Top of manual page
  - adjust_window/3
  - close/2
  - exec/4
  - exit_status/3
  - reply_request/4
  - send/3
  - send/4
  - send/4
  - send/5
  - send_eof/2
  - session_channel/2
  - session_channel/4
  - setenv/5
  - shell/2
  - subsystem/4
- ssh_client_key_api
  - Top of manual page
  - Module:add_host_key/3
  - Module:is_host_key/4
  - Module:user_key/2
- ssh_server_key_api
  - Top of manual page
  - Module:host_key/2
  - Module:is_auth_key/3
- ssh_sftp
  - Top of manual page
  - start_channel/1
  - start_channel/2
  - start_channel/2
  - start_channel/3
  - stop_channel/1
  - read_file/2
  - read_file/3
  - write_file/3
  - write_file/4
  - list_dir/2
  - list_dir/3
  - open/3
  - open/4
  - opendir/2
  - opendir/3
  - close/2
  - close/3
  - read/3
  - read/4
  - pread/4
  - pread/5
  - aread/3
  - apread/4
  - write/3
  - write/4
  - pwrite/4
  - pwrite/5
  - awrite/3
  - apwrite/4
  - position/3
  - position/4
  - read_file_info/2
  - read_file_info/3
  - read_link_info/2
  - read_link_info/3
  - write_file_info/3
  - write_file_info/4
  - read_link/2
  - read_link/3
  - make_symlink/3
  - make_symlink/4
  - rename/3
  - rename/4
  - delete/2
  - delete/3
  - make_dir/2
  - make_dir/3
  - del_dir/2
  - del_dir/3
- ssh_sftpd
  - Top of manual page
  - subsystem_spec/1

# ssh_client_key_api

### MODULE

ssh_client_key_api

### MODULE SUMMARY

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

### 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