檢視原始碼 ssh_client_key_api 行為 (ssh v5.2.5)
-behaviour(ssh_client_key_api).
描述 SSH 客戶端公開金鑰處理 API 的行為。透過實作此行為中定義的回呼函式,可以自訂 SSH 客戶端的公開金鑰處理方式。預設情況下,ssh
應用程式會藉由標準的 OpenSSH 檔案來實作此行為,請參閱 ssh 應用程式手冊。
摘要
類型
提供給 ssh:connect/3,4 的選項。
回呼函式
此函式已被棄用,建議使用 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()}
。
類型
-type client_key_cb_options(T) :: [{key_cb_private, [T]} | ssh:client_option()].
提供給 ssh:connect/3,4 的選項。
在 key_cb
選項中提供的選項列表可透過金鑰 key_cb_private
取得。
回呼函式
-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
。
將主機金鑰新增至信任的主機金鑰集合中。
-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
。
-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
。
檢查主機金鑰是否受信任。
-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
。
-callback sign(PubKeyBlob :: binary(), SigData :: binary(), Options :: client_key_cb_options(any())) -> Blob :: binary().
使用與 PubKeyBlob 對應的私有金鑰簽署 SigData。
-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()}
。
注意
私有金鑰包含公開金鑰。