ssh_auth

Langue: en

Autres versions - même langue

Version: 317269 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

Ssh_auth - functions to authenticate

Functions


int ssh_userauth_autopubkey (SSH_SESSION *session)
Tries to automaticaly authenticate with public key and 'none'.
int ssh_userauth_kbdint (SSH_SESSION *session, char *user, char *submethods)
Try to authenticate through the 'keyboard-interactive' method.
char * ssh_userauth_kbdint_getinstruction (SSH_SESSION *session)
get the 'instruction' of the message block
char * ssh_userauth_kbdint_getname (SSH_SESSION *session)
get the 'name' of the message block
int ssh_userauth_kbdint_getnprompts (SSH_SESSION *session)
get the number of prompts (questions) the server has given
char * ssh_userauth_kbdint_getprompt (SSH_SESSION *session, int i, char *echo)
get a prompt from a message block
void ssh_userauth_kbdint_setanswer (SSH_SESSION *session, unsigned int i, char *answer)
set the answer for a question from a message block.
int ssh_userauth_none (SSH_SESSION *session, char *username)
Try to authenticate through the 'none' method.
int ssh_userauth_offer_pubkey (SSH_SESSION *session, char *username, int type, STRING *publickey)
Try to authenticate through public key.
int ssh_userauth_password (SSH_SESSION *session, char *username, char *password)
Try to authenticate by password.
int ssh_userauth_pubkey (SSH_SESSION *session, char *username, STRING *publickey, PRIVATE_KEY *privatekey)
Try to authenticate through public key.

Detailed Description

functions to authenticate

defgroup ssh_auth

Function Documentation

int ssh_userauth_autopubkey (SSH_SESSION * session)

Tries to automaticaly 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)

Parameters:

session ssh session

Returns:

SSH_AUTH_ERROR : a serious error happened

 SSH_AUTH_DENIED : Authentication failed : use another method

 SSH_AUTH_PARTIAL : You've been partially authenticated, you still have to use another method

 SSH_AUTH_SUCCESS : Authentication success 

See also:

ssh_userauth_kbdint()
ssh_userauth_password()
ssh_options_set_identity()

int ssh_userauth_kbdint (SSH_SESSION * session, char * user, char * submethods)

Try to authenticate through the 'keyboard-interactive' method.

Parameters:

session ssh session
user username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.
submethods undocumented. Set it to NULL

Returns:

SSH_AUTH_ERROR : a serious error happened

 SSH_AUTH_DENIED : Authentication failed : use another method

 SSH_AUTH_PARTIAL : You've been partially authenticated, you still have to use another method

 SSH_AUTH_SUCCESS : Authentication success

 SSH_AUTH_INFO : The server asked some questions. Use ssh_userauth_kbdint_getnprompts() and such. 

See also:

ssh_userauth_kbdint_getnprompts()
ssh_userauth_kbdint_getname()
ssh_userauth_kbdint_getinstruction()
ssh_userauth_kbdint_getprompt()
ssh_userauth_kbdint_setanswer()

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

Parameters:

session ssh session

Returns:

instruction of the message block

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

Parameters:

session ssh session

Returns:

name of the message block. Do not free it

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

Parameters:

session ssh session

Returns:

number of prompts

char* ssh_userauth_kbdint_getprompt (SSH_SESSION * session, 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

Parameters:

session ssh session
i index number of the ith prompt
echo when different of NULL, it will obtain a boolean meaning that the resulting user input should be echoed or not (like passwords)

Returns:

pointer to the prompt. Do not free it

void ssh_userauth_kbdint_setanswer (SSH_SESSION * session, unsigned int i, char * answer)

set the answer for a question from a message block.

You have called ssh_userauth_kbdint() and got SSH_AUTH_INFO. this function returns the questions from the server

Parameters:

session ssh session
i index number of the ith prompt
answer answer to give to server

int ssh_userauth_none (SSH_SESSION * session, char * username)

Try to authenticate through the 'none' method.

Parameters:

session ssh session
username username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.

Returns:

SSH_AUTH_ERROR : a serious error happened

 SSH_AUTH_DENIED : Authentication failed : use another method

 SSH_AUTH_PARTIAL : You've been partially authenticated, you still have to use another method

 SSH_AUTH_SUCCESS : Authentication success 

int ssh_userauth_offer_pubkey (SSH_SESSION * session, char * username, int type, STRING * publickey)

Try to authenticate through public key.

Parameters:

session ssh session
username username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.
type type of public key. This value is given by publickey_from_file()
publickey a public key returned by publickey_from_file()

Returns:

SSH_AUTH_ERROR : a serious error happened

 SSH_AUTH_DENIED : The server doesn't accept that public key as an authentication token. Try another key or another method

 SSH_AUTH_SUCCESS : The public key is accepted, you want now to use ssh_userauth_pubkey() 

See also:

publickey_from_file()
privatekey_from_file()
ssh_userauth_pubkey()

int ssh_userauth_password (SSH_SESSION * session, char * username, char * password)

Try to authenticate by password.

Parameters:

session ssh session
username username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.
password password to use. Take care to clean it after authentication

Returns:

SSH_AUTH_ERROR : a serious error happened

 SSH_AUTH_DENIED : Authentication failed : use another method

 SSH_AUTH_PARTIAL : You've been partially authenticated, you still have to use another method

 SSH_AUTH_SUCCESS : Authentication success 

See also:

ssh_userauth_kbdint()

int ssh_userauth_pubkey (SSH_SESSION * session, char * username, STRING * publickey, PRIVATE_KEY * privatekey)

Try to authenticate through public key.

Parameters:

session ssh session
username username to authenticate. You can specify NULL if ssh_option_set_username() has been used. You cannot try two different logins in a row.
publickey a public key returned by publickey_from_file()
privatekey a private key returned by privatekey_from_file()

Returns:

SSH_AUTH_ERROR : a serious error happened

 SSH_AUTH_DENIED : Authentication failed : use another method

 SSH_AUTH_PARTIAL : You've been partially authenticated, you still have to use another method

 SSH_AUTH_SUCCESS : Authentication success 

See also:

publickey_from_file()
privatekey_from_file()
private_key_free()
ssh_userauth_offer_pubkey()