檢視原始碼 ssh_client_key_api 行為 (ssh v5.2.5)

-behaviour(ssh_client_key_api).

描述 SSH 客戶端公開金鑰處理 API 的行為。透過實作此行為中定義的回呼函式,可以自訂 SSH 客戶端的公開金鑰處理方式。預設情況下,ssh 應用程式會藉由標準的 OpenSSH 檔案來實作此行為,請參閱 ssh 應用程式手冊。

摘要

回呼函式

此函式已被棄用,建議使用 Module:add_host_key/4,此為偏好的 API 函式。如果呼叫 add_host_key/4 失敗,則呼叫 SSH 應用程式仍會嘗試 add_host_key/3

將主機金鑰新增至信任的主機金鑰集合中。

此函式已被棄用,建議使用 Module:is_host_key/5,此為偏好的 API 函式。如果呼叫 is_host_key/5 失敗,則呼叫 SSH 應用程式仍會嘗試 is_host_key/4

檢查主機金鑰是否受信任。

使用與 PubKeyBlob 對應的私有金鑰簽署 SigData。

提取符合 Algorithm 的使用者公開金鑰。某些金鑰回呼模組可能會傳回 {ssh2_pubkey, PubKeyBlob :: binary()}

類型

連結至此類型

client_key_cb_options(T)

檢視原始碼 (自 OTP R16B 起)
-type client_key_cb_options(T) :: [{key_cb_private, [T]} | ssh:client_option()].

提供給 ssh:connect/3,4 的選項。

key_cb 選項中提供的選項列表可透過金鑰 key_cb_private 取得。

回呼函式

連結至此回呼函式

add_host_key(Host, PublicKey, Options)

檢視原始碼 (可選) (自 OTP R16B 起)
-callback add_host_key(Host :: string(),
                       PublicKey :: public_key:public_key(),
                       Options :: client_key_cb_options(any())) ->
                          ok | {error, term()}.

此函式已被棄用,建議使用 Module:add_host_key/4,此為偏好的 API 函式。如果呼叫 add_host_key/4 失敗,則呼叫 SSH 應用程式仍會嘗試 add_host_key/3

將主機金鑰新增至信任的主機金鑰集合中。

連結至此回呼函式

add_host_key(Host, Port, PublicKey, Options)

檢視原始碼 (可選) (自 OTP R16B 起)
-callback add_host_key(Host :: inet:ip_address() | inet:hostname() | [inet:ip_address() | inet:hostname()],
                       Port :: inet:port_number(),
                       PublicKey :: public_key:public_key(),
                       Options :: client_key_cb_options(any())) ->
                          ok | {error, term()}.

將主機金鑰新增至信任的主機金鑰集合中。

此函式比舊的 Module:add_host_key/3 更受偏好,因為它也使用對等主機的連接埠號碼,並且可能會傳回錯誤訊息。

OTP/SSH 應用程式會先在回呼模組中呼叫此函式,然後為了相容性呼叫舊的 Module:add_host_key/3

連結至此回呼函式

is_host_key(Key, Host, Algorithm, Options)

檢視原始碼 (可選) (自 OTP R16B 起)
-callback is_host_key(Key :: public_key:public_key(),
                      Host :: string(),
                      Algorithm :: ssh:pubkey_alg(),
                      Options :: client_key_cb_options(any())) ->
                         boolean().

此函式已被棄用,建議使用 Module:is_host_key/5,此為偏好的 API 函式。如果呼叫 is_host_key/5 失敗,則呼叫 SSH 應用程式仍會嘗試 is_host_key/4

檢查主機金鑰是否受信任。

連結至此回呼函式

is_host_key(Key, Host, Port, Algorithm, Options)

檢視原始碼 (可選) (自 OTP 23.0 起)
-callback is_host_key(Key :: public_key:public_key(),
                      Host :: inet:ip_address() | inet:hostname() | [inet:ip_address() | inet:hostname()],
                      Port :: inet:port_number(),
                      Algorithm :: ssh:pubkey_alg(),
                      Options :: client_key_cb_options(any())) ->
                         boolean() | {error, term()}.

檢查主機金鑰是否受信任。

此函式比舊的 Module:is_host_key/4 更受偏好,因為它也使用對等主機的連接埠號碼,並且可能會傳回錯誤訊息。

OTP/SSH 應用程式會先在回呼模組中呼叫此函式,然後為了相容性呼叫舊的 Module:is_host_key/4

連結至此回呼函式

sign(PubKeyBlob, SigData, Options)

檢視原始碼 (可選) (自 OTP 23.0 起)
-callback sign(PubKeyBlob :: binary(), SigData :: binary(), Options :: client_key_cb_options(any())) ->
                  Blob :: binary().

使用與 PubKeyBlob 對應的私有金鑰簽署 SigData。

連結至此回呼函式

user_key(Algorithm, Options)

檢視原始碼 (自 OTP R16B 起)
-callback user_key(Algorithm :: ssh:pubkey_alg(), Options :: client_key_cb_options(any())) ->
                      {ok, public_key:private_key()} |
                      {ok, {ssh2_pubkey, PubKeyBlob :: binary()}} |
                      {error, string()}.

提取符合 Algorithm 的使用者公開金鑰。某些金鑰回呼模組可能會傳回 {ssh2_pubkey, PubKeyBlob :: binary()}

注意

私有金鑰包含公開金鑰。