libssh
0.5.4
|
Functions to authenticate with a server. More...
Functions | |
void | privatekey_free (ssh_private_key prv) |
Deallocate a private key object. More... | |
ssh_private_key | privatekey_from_file (ssh_session session, const char *filename, int type, const char *passphrase) |
Reads a SSH private key from a file. More... | |
ssh_string | publickey_from_file (ssh_session session, const char *filename, int *type) |
Retrieve a public key from a file. More... | |
ssh_public_key | publickey_from_privatekey (ssh_private_key prv) |
Make a public_key object out of a private_key object. More... | |
ssh_string | publickey_to_string (ssh_public_key key) |
Convert a public_key object into a a SSH string. More... | |
int | ssh_auth_list (ssh_session session) |
retrieves available authentication methods for this session More... | |
enum ssh_keytypes_e | ssh_privatekey_type (ssh_private_key privatekey) |
returns the type of a private key More... | |
int | ssh_publickey_to_file (ssh_session session, const char *file, ssh_string pubkey, int type) |
Write a public key to a file. More... | |
int | ssh_try_publickey_from_file (ssh_session session, const char *keyfile, ssh_string *publickey, int *type) |
Try to read the public key from a given file. More... | |
int | ssh_userauth_agent_pubkey (ssh_session session, const char *username, ssh_public_key publickey) |
Try to authenticate through public key with an ssh agent. More... | |
int | ssh_userauth_autopubkey (ssh_session session, const char *passphrase) |
Tries to automatically authenticate with public key and "none". More... | |
int | ssh_userauth_kbdint (ssh_session session, const char *user, const char *submethods) |
Try to authenticate through the "keyboard-interactive" method. More... | |
const char * | ssh_userauth_kbdint_getinstruction (ssh_session session) |
Get the "instruction" of the message block. More... | |
const char * | ssh_userauth_kbdint_getname (ssh_session session) |
Get the "name" of the message block. More... | |
int | ssh_userauth_kbdint_getnprompts (ssh_session session) |
Get the number of prompts (questions) the server has given. More... | |
const char * | ssh_userauth_kbdint_getprompt (ssh_session session, unsigned int i, char *echo) |
Get a prompt from a message block. More... | |
int | ssh_userauth_kbdint_setanswer (ssh_session session, unsigned int i, const char *answer) |
Set the answer for a question from a message block. More... | |
int | ssh_userauth_list (ssh_session session, const char *username) |
retrieves available authentication methods for this session More... | |
int | ssh_userauth_none (ssh_session session, const char *username) |
Try to authenticate through the "none" method. More... | |
int | ssh_userauth_offer_pubkey (ssh_session session, const char *username, int type, ssh_string publickey) |
Try to authenticate through public key. More... | |
int | ssh_userauth_password (ssh_session session, const char *username, const char *password) |
Try to authenticate by password. More... | |
int | ssh_userauth_privatekey_file (ssh_session session, const char *username, const char *filename, const char *passphrase) |
Try to authenticate through a private key file. More... | |
int | ssh_userauth_pubkey (ssh_session session, const char *username, ssh_string publickey, ssh_private_key privatekey) |
Try to authenticate through public key. More... | |
Functions to authenticate with a server.
void privatekey_free | ( | ssh_private_key | prv | ) |
Deallocate a private key object.
[in] | prv | The private_key object to free. |
Referenced by ssh_bind_accept(), ssh_free(), ssh_userauth_autopubkey(), and ssh_userauth_privatekey_file().
ssh_private_key privatekey_from_file | ( | ssh_session | session, |
const char * | filename, | ||
int | type, | ||
const char * | passphrase | ||
) |
Reads a SSH private key from a file.
[in] | session | The SSH Session to use. |
[in] | filename | The filename of the the private key. |
[in] | type | The type of the private key. This could be SSH_KEYTYPE_DSS or SSH_KEYTYPE_RSA. Pass 0 to automatically detect the type. |
[in] | passphrase | The passphrase to decrypt the private key. Set to null if none is needed or it is unknown. |
References ssh_init(), ssh_log(), and SSH_LOG_RARE.
Referenced by ssh_key_import_private(), ssh_userauth_autopubkey(), and ssh_userauth_privatekey_file().
ssh_string publickey_from_file | ( | ssh_session | session, |
const char * | filename, | ||
int * | type | ||
) |
Retrieve a public key from a file.
[in] | session | The SSH session to use. |
[in] | filename | The filename of the public key. |
[out] | type | The Pointer to a integer. If it is not NULL, it will contain the type of the key after execution. |
References ssh_buffer_free(), ssh_string_fill(), and ssh_string_new().
Referenced by ssh_try_publickey_from_file(), and ssh_userauth_privatekey_file().
ssh_public_key publickey_from_privatekey | ( | ssh_private_key | prv | ) |
Make a public_key object out of a private_key object.
[in] | prv | The private key to generate the public key. |
References ssh_string_burn(), ssh_string_data(), ssh_string_fill(), ssh_string_free(), ssh_string_len(), and ssh_string_new().
Referenced by ssh_userauth_autopubkey(), and ssh_userauth_pubkey().
ssh_string publickey_to_string | ( | ssh_public_key | key | ) |
Convert a public_key object into a a SSH string.
[in] | key | The public key to convert. |
References ssh_buffer_free(), ssh_buffer_new(), ssh_string_fill(), ssh_string_free(), ssh_string_from_char(), and ssh_string_new().
Referenced by ssh_userauth_agent_pubkey(), ssh_userauth_autopubkey(), and ssh_userauth_pubkey().
int ssh_auth_list | ( | ssh_session | session | ) |
retrieves available authentication methods for this session
References ssh_userauth_list().
enum ssh_keytypes_e ssh_privatekey_type | ( | ssh_private_key | privatekey | ) |
returns the type of a private key
[in] | privatekey | the private key handle |
int ssh_publickey_to_file | ( | ssh_session | session, |
const char * | file, | ||
ssh_string | pubkey, | ||
int | type | ||
) |
Write a public key to a file.
[in] | session | The ssh session to use. |
[in] | file | The filename to write the key into. |
[in] | pubkey | The public key to write. |
[in] | type | The type of the public key. |
References ssh_log(), SSH_LOG_PACKET, SSH_LOG_RARE, and ssh_string_len().
Referenced by ssh_userauth_autopubkey().
int ssh_try_publickey_from_file | ( | ssh_session | session, |
const char * | keyfile, | ||
ssh_string * | publickey, | ||
int * | type | ||
) |
Try to read the public key from a given file.
[in] | session | The ssh session to use. |
[in] | keyfile | The name of the private keyfile. |
[out] | publickey | A ssh_string to store the public key. |
[out] | type | A pointer to an integer to store the type. |
References publickey_from_file(), ssh_get_error(), ssh_log(), and SSH_LOG_PACKET.
Referenced by ssh_userauth_autopubkey().
int ssh_userauth_agent_pubkey | ( | ssh_session | session, |
const char * | username, | ||
ssh_public_key | publickey | ||
) |
Try to authenticate through public key with an ssh agent.
[in] | session | The ssh session to use. |
[in] | username | The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. |
[in] | publickey | The public key provided by the agent. |
References publickey_to_string(), ssh_string_free(), and ssh_string_from_char().
Referenced by ssh_userauth_autopubkey().
int ssh_userauth_autopubkey | ( | ssh_session | session, |
const char * | passphrase | ||
) |
Tries to automatically authenticate with public key and "none".
It may fail, for instance it doesn't ask for a password and uses a default asker for passphrases (in case the private key is encrypted).
[in] | session | The ssh session to authenticate with. |
[in] | passphrase | Use this passphrase to unlock the privatekey. Use NULL if you don't want to use a passphrase or the user should be asked. |
References privatekey_free(), privatekey_from_file(), publickey_from_privatekey(), publickey_to_string(), ssh_log(), SSH_LOG_PACKET, SSH_LOG_PROTOCOL, SSH_LOG_RARE, ssh_publickey_to_file(), ssh_string_free(), ssh_try_publickey_from_file(), ssh_userauth_agent_pubkey(), ssh_userauth_none(), ssh_userauth_offer_pubkey(), and ssh_userauth_pubkey().
Referenced by ssh::Session::userauthAutopubkey().
int ssh_userauth_kbdint | ( | ssh_session | session, |
const char * | user, | ||
const char * | submethods | ||
) |
Try to authenticate through the "keyboard-interactive" method.
[in] | session | The ssh session to use. |
[in] | user | The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. |
[in] | submethods | Undocumented. Set it to NULL. |
const char* ssh_userauth_kbdint_getinstruction | ( | ssh_session | session | ) |
Get the "instruction" of the message block.
You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This function returns the questions from the server.
[in] | session | The ssh session to use. |
const char* ssh_userauth_kbdint_getname | ( | ssh_session | session | ) |
Get the "name" of the message block.
You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This function returns the questions from the server.
[in] | session | The ssh session to use. |
int ssh_userauth_kbdint_getnprompts | ( | ssh_session | session | ) |
Get the number of prompts (questions) the server has given.
You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This function returns the questions from the server.
[in] | session | The ssh session to use. |
const char* ssh_userauth_kbdint_getprompt | ( | ssh_session | session, |
unsigned int | i, | ||
char * | echo | ||
) |
Get a prompt from a message block.
You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. This function returns the questions from the server.
[in] | session | The ssh session to use. |
[in] | i | The index number of the i'th prompt. |
[in] | echo | When different of NULL, it will obtain a boolean meaning that the resulting user input should be echoed or not (like passwords). |
int ssh_userauth_kbdint_setanswer | ( | ssh_session | session, |
unsigned int | i, | ||
const char * | answer | ||
) |
Set the answer for a question from a message block.
If you have called ssh_userauth_kbdint() and got SSH_AUTH_INFO, this function returns the questions from the server.
[in] | session | The ssh session to use. |
[in] | i | index The number of the ith prompt. |
[in] | answer | The answer to give to the server. |
int ssh_userauth_list | ( | ssh_session | session, |
const char * | username | ||
) |
retrieves available authentication methods for this session
[in] | session | the SSH session |
[in] | username | Deprecated, set to NULL. |
References ssh_userauth_none().
Referenced by ssh::Session::getAuthList(), and ssh_auth_list().
int ssh_userauth_none | ( | ssh_session | session, |
const char * | username | ||
) |
Try to authenticate through the "none" method.
[in] | session | The ssh session to use. |
[in] | username | Deprecated, set to NULL. |
References ssh_string_free(), and ssh_string_from_char().
Referenced by ssh_userauth_autopubkey(), ssh_userauth_list(), and ssh::Session::userauthNone().
int ssh_userauth_offer_pubkey | ( | ssh_session | session, |
const char * | username, | ||
int | type, | ||
ssh_string | publickey | ||
) |
Try to authenticate through public key.
[in] | session | The ssh session to use. |
[in] | username | The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. |
[in] | type | The type of the public key. This value is given by publickey_from_file() or ssh_privatekey_type(). |
[in] | publickey | A public key returned by publickey_from_file(). |
References ssh_string_free(), and ssh_string_from_char().
Referenced by ssh_userauth_autopubkey(), and ssh::Session::userauthOfferPubkey().
int ssh_userauth_password | ( | ssh_session | session, |
const char * | username, | ||
const char * | password | ||
) |
Try to authenticate by password.
[in] | session | The ssh session to use. |
[in] | username | The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. |
[in] | password | The password to use. Take care to clean it after the authentication. |
References ssh_string_burn(), ssh_string_free(), and ssh_string_from_char().
Referenced by ssh::Session::userauthPassword().
int ssh_userauth_privatekey_file | ( | ssh_session | session, |
const char * | username, | ||
const char * | filename, | ||
const char * | passphrase | ||
) |
Try to authenticate through a private key file.
[in] | session | The ssh session to use. |
[in] | username | The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. |
[in] | filename | Filename containing the private key. |
[in] | passphrase | Passphrase to decrypt the private key. Set to null if none is needed or it is unknown. |
References privatekey_free(), privatekey_from_file(), publickey_from_file(), ssh_log(), SSH_LOG_RARE, ssh_string_free(), and ssh_userauth_pubkey().
int ssh_userauth_pubkey | ( | ssh_session | session, |
const char * | username, | ||
ssh_string | publickey, | ||
ssh_private_key | privatekey | ||
) |
Try to authenticate through public key.
[in] | session | The ssh session to use. |
[in] | username | The username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row. |
[in] | publickey | A public key returned by publickey_from_file(), or NULL to generate automatically from privatekey. |
[in] | privatekey | A private key returned by privatekey_from_file(). |
References publickey_from_privatekey(), publickey_to_string(), ssh_string_free(), and ssh_string_from_char().
Referenced by ssh_userauth_autopubkey(), ssh_userauth_privatekey_file(), and ssh::Session::userauthPubkey().