libnetconf2
1.1.48
NETCONF library for clients and servers
|
Client-side settings for SSH connections. More...
Functions | |
void | nc_client_ssh_set_auth_hostkey_check_clb (int(*auth_hostkey_check)(const char *hostname, ssh_session session, void *priv), void *priv) |
Set SSH authentication hostkey check (knownhosts) callback. More... | |
void | nc_client_ssh_get_auth_hostkey_check_clb (int(**auth_hostkey_check)(const char *hostname, ssh_session session, void *priv), void **priv) |
Get currently set SSH authentication hostkey check (knownhosts) callback and its private data previously set by nc_client_ssh_set_auth_hostkey_check_clb(). More... | |
void | nc_client_ssh_set_auth_password_clb (char *(*auth_password)(const char *username, const char *hostname, void *priv), void *priv) |
Set SSH password authentication callback. More... | |
void | nc_client_ssh_get_auth_password_clb (char *(**auth_password)(const char *username, const char *hostname, void *priv), void **priv) |
Get currently set SSH password authentication callback and its private data previously set by nc_client_ssh_set_auth_password_clb(). More... | |
void | nc_client_ssh_set_auth_interactive_clb (char *(*auth_interactive)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv), void *priv) |
Set SSH interactive authentication callback. More... | |
void | nc_client_ssh_get_auth_interactive_clb (char *(**auth_interactive)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv), void **priv) |
Get currently set SSH interactive authentication callback and its private data previously set by nc_client_ssh_set_auth_interactive_clb(). More... | |
void | nc_client_ssh_set_auth_privkey_passphrase_clb (char *(*auth_privkey_passphrase)(const char *privkey_path, void *priv), void *priv) |
Set SSH publickey authentication encrypted private key passphrase callback. More... | |
void | nc_client_ssh_get_auth_privkey_passphrase_clb (char *(**auth_privkey_passphrase)(const char *privkey_path, void *priv), void **priv) |
Get currently set SSH publickey authentication encrypted private key passphrase callback and its private data previously set by nc_client_ssh_set_auth_privkey_passphrase_clb(). More... | |
int | nc_client_ssh_add_keypair (const char *pub_key, const char *priv_key) |
Add an SSH public and private key pair to be used for client authentication. More... | |
int | nc_client_ssh_del_keypair (int idx) |
Remove an SSH public and private key pair that was used for client authentication. More... | |
int | nc_client_ssh_get_keypair_count (void) |
Get the number of public an private key pairs set to be used for client authentication. More... | |
int | nc_client_ssh_get_keypair (int idx, const char **pub_key, const char **priv_key) |
Get a specific keypair set to be used for client authentication. More... | |
void | nc_client_ssh_set_auth_pref (NC_SSH_AUTH_TYPE auth_type, int16_t pref) |
Set SSH authentication method preference. More... | |
int16_t | nc_client_ssh_get_auth_pref (NC_SSH_AUTH_TYPE auth_type) |
Get SSH authentication method preference. More... | |
int | nc_client_ssh_set_username (const char *username) |
Set client SSH username used for authentication. More... | |
const char * | nc_client_ssh_get_username (void) |
Get client SSH username used for authentication. More... | |
struct nc_session * | nc_connect_ssh (const char *host, uint16_t port, struct ly_ctx *ctx) |
Connect to the NETCONF server using SSH transport (via libssh). More... | |
struct nc_session * | nc_connect_libssh (ssh_session ssh_session, struct ly_ctx *ctx) |
Connect to the NETCONF server using the provided SSH (libssh) session. More... | |
struct nc_session * | nc_connect_ssh_channel (struct nc_session *session, struct ly_ctx *ctx) |
Create another NETCONF session on existing SSH session using separated SSH channel. More... | |
Client-side settings for SSH connections.
void nc_client_ssh_set_auth_hostkey_check_clb | ( | int(*)(const char *hostname, ssh_session session, void *priv) | auth_hostkey_check, |
void * | priv | ||
) |
Set SSH authentication hostkey check (knownhosts) callback.
Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_get_auth_hostkey_check_clb()).
[in] | auth_hostkey_check | Function to call, returns 0 on success, non-zero in error. If NULL, the default callback is set. |
[in] | priv | Optional private data to be passed to the callback function. |
void nc_client_ssh_get_auth_hostkey_check_clb | ( | int(**)(const char *hostname, ssh_session session, void *priv) | auth_hostkey_check, |
void ** | priv | ||
) |
Get currently set SSH authentication hostkey check (knownhosts) callback and its private data previously set by nc_client_ssh_set_auth_hostkey_check_clb().
[out] | auth_hostkey_check | Currently set callback, NULL in case of the default callback. |
[out] | priv | Currently set (optional) private data to be passed to the callback function. |
void nc_client_ssh_set_auth_password_clb | ( | char *(*)(const char *username, const char *hostname, void *priv) | auth_password, |
void * | priv | ||
) |
Set SSH password authentication callback.
Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_get_auth_password_clb()).
[in] | auth_password | Function to call, returns the password for username@hostname. If NULL, the default callback is set. |
[in] | priv | Optional private data to be passed to the callback function. |
void nc_client_ssh_get_auth_password_clb | ( | char *(**)(const char *username, const char *hostname, void *priv) | auth_password, |
void ** | priv | ||
) |
Get currently set SSH password authentication callback and its private data previously set by nc_client_ssh_set_auth_password_clb().
[out] | auth_password | Currently set callback, NULL in case of the default callback. |
[out] | priv | Currently set (optional) private data to be passed to the callback function. |
void nc_client_ssh_set_auth_interactive_clb | ( | char *(*)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv) | auth_interactive, |
void * | priv | ||
) |
Set SSH interactive authentication callback.
Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_get_auth_interactive_clb()).
[in] | auth_interactive | Function to call for every question, returns the answer for authentication name with instruction and echoing prompt. If NULL, the default callback is set. |
[in] | priv | Optional private data to be passed to the callback function. |
void nc_client_ssh_get_auth_interactive_clb | ( | char *(**)(const char *auth_name, const char *instruction, const char *prompt, int echo, void *priv) | auth_interactive, |
void ** | priv | ||
) |
Get currently set SSH interactive authentication callback and its private data previously set by nc_client_ssh_set_auth_interactive_clb().
[out] | auth_interactive | Currently set callback, NULL in case of the default callback. |
[out] | priv | Currently set (optional) private data to be passed to the callback function. |
void nc_client_ssh_set_auth_privkey_passphrase_clb | ( | char *(*)(const char *privkey_path, void *priv) | auth_privkey_passphrase, |
void * | priv | ||
) |
Set SSH publickey authentication encrypted private key passphrase callback.
Repetitive calling causes replacing of the previous callback and its private data. Caller is responsible for freeing the private data when necessary (the private data can be obtained by nc_client_ssh_get_auth_privkey_passphrase_clb()).
[in] | auth_privkey_passphrase | Function to call for every question, returns the passphrase for the specific private key. |
[in] | priv | Optional private data to be passed to the callback function. |
void nc_client_ssh_get_auth_privkey_passphrase_clb | ( | char *(**)(const char *privkey_path, void *priv) | auth_privkey_passphrase, |
void ** | priv | ||
) |
Get currently set SSH publickey authentication encrypted private key passphrase callback and its private data previously set by nc_client_ssh_set_auth_privkey_passphrase_clb().
[out] | auth_privkey_passphrase | Currently set callback, NULL in case of the default callback. |
[out] | priv | Currently set (optional) private data to be passed to the callback function. |
int nc_client_ssh_add_keypair | ( | const char * | pub_key, |
const char * | priv_key | ||
) |
Add an SSH public and private key pair to be used for client authentication.
Private key can be encrypted, the passphrase will be asked for before using it.
[in] | pub_key | Path to the public key. |
[in] | priv_key | Path to the private key. |
int nc_client_ssh_del_keypair | ( | int | idx | ) |
Remove an SSH public and private key pair that was used for client authentication.
[in] | idx | Index of the keypair starting with 0. |
int nc_client_ssh_get_keypair_count | ( | void | ) |
Get the number of public an private key pairs set to be used for client authentication.
int nc_client_ssh_get_keypair | ( | int | idx, |
const char ** | pub_key, | ||
const char ** | priv_key | ||
) |
Get a specific keypair set to be used for client authentication.
[in] | idx | Index of the specific keypair. |
[out] | pub_key | Path to the public key. |
[out] | priv_key | Path to the private key. |
void nc_client_ssh_set_auth_pref | ( | NC_SSH_AUTH_TYPE | auth_type, |
int16_t | pref | ||
) |
Set SSH authentication method preference.
The default preference is as follows:
[in] | auth_type | Authentication method to modify the preference of. |
[in] | pref | Preference of auth_type . Higher number increases priority, negative values disable the method. |
int16_t nc_client_ssh_get_auth_pref | ( | NC_SSH_AUTH_TYPE | auth_type | ) |
Get SSH authentication method preference.
[in] | auth_type | Authentication method to retrieve the prefrence of. |
auth_type
. int nc_client_ssh_set_username | ( | const char * | username | ) |
Set client SSH username used for authentication.
[in] | username | Username to use. |
const char* nc_client_ssh_get_username | ( | void | ) |
Get client SSH username used for authentication.
struct nc_session* nc_connect_ssh | ( | const char * | host, |
uint16_t | port, | ||
struct ly_ctx * | ctx | ||
) |
Connect to the NETCONF server using SSH transport (via libssh).
SSH session is created with default options. If the caller needs to use specific SSH session properties, they are supposed to use nc_connect_libssh().
[in] | host | Hostname or address (both Ipv4 and IPv6 are accepted) of the target server. 'localhost' is used by default if NULL is specified. |
[in] | port | Port number of the target server. Default value 830 is used if 0 is specified. |
[in] | ctx | Optional parameter. If set, provides strict YANG context for the session (ignoring what is actually supported by the server side). If not set, YANG context is created for the session using <get-schema> (if supported by the server side) or/and by searching for YANG schemas in the searchpath (see nc_client_schema_searchpath()). In every case except not providing context to connect to a server supporting <get-schema> it is possible that the session context will not include all the models supported by the server. |
struct nc_session* nc_connect_libssh | ( | ssh_session | ssh_session, |
struct ly_ctx * | ctx | ||
) |
Connect to the NETCONF server using the provided SSH (libssh) session.
SSH session can have any options set, they will not be modified. If no options were set, host 'localhost', port 22, and the username detected from the EUID is used. If socket is set and connected only the host and the username must be set/is detected. Or the ssh_session
can already be authenticated in which case it is used directly.
[in] | ssh_session | libssh structure representing SSH session object. After passing it to libnetconf2 this way, it is fully managed by it (including freeing!). |
[in] | ctx | Optional parameter. If set, provides strict YANG context for the session (ignoring what is actually supported by the server side). If not set, YANG context is created for the session using <get-schema> (if supported by the server side) or/and by searching for YANG schemas in the searchpath (see nc_client_schema_searchpath()). In every case except not providing context to connect to a server supporting <get-schema> it is possible that the session context will not include all the models supported by the server. |
struct nc_session* nc_connect_ssh_channel | ( | struct nc_session * | session, |
struct ly_ctx * | ctx | ||
) |
Create another NETCONF session on existing SSH session using separated SSH channel.
[in] | session | Existing NETCONF session. The session has to be created on SSH transport layer using libssh - it has to be created by nc_connect_ssh(), nc_connect_libssh() or nc_connect_ssh_channel(). |
[in] | ctx | Optional parameter. If set, provides strict YANG context for the session (ignoring what is actually supported by the server side). If not set, YANG context is created for the session using <get-schema> (if supported by the server side) or/and by searching for YANG schemas in the searchpath (see nc_client_schema_searchpath()). In every case except not providing context to connect to a server supporting <get-schema> it is possible that the session context will not include all the models supported by the server. |