libssh
0.6.3
|
Data Structures | |
struct | ssh_bind_callbacks |
These are the callbacks exported by the ssh_bind structure. More... | |
Typedefs | |
typedef void(* | ssh_bind_incoming_connection_callback) (ssh_bind sshbind, void *userdata) |
Incoming connection callback. More... | |
Functions | |
LIBSSH_API int | ssh_bind_accept (ssh_bind ssh_bind_o, ssh_session session) |
Accept an incoming ssh connection and initialize the session. More... | |
LIBSSH_API int | ssh_bind_accept_fd (ssh_bind ssh_bind_o, ssh_session session, socket_t fd) |
Accept an incoming ssh connection on the given file descriptor and initialize the session. More... | |
LIBSSH_API void | ssh_bind_fd_toaccept (ssh_bind ssh_bind_o) |
Allow the file descriptor to accept new sessions. More... | |
LIBSSH_API void | ssh_bind_free (ssh_bind ssh_bind_o) |
Free a ssh servers bind. More... | |
LIBSSH_API socket_t | ssh_bind_get_fd (ssh_bind ssh_bind_o) |
Recover the file descriptor from the session. More... | |
LIBSSH_API int | ssh_bind_listen (ssh_bind ssh_bind_o) |
Start listening to the socket. More... | |
LIBSSH_API ssh_bind | ssh_bind_new (void) |
Creates a new SSH server bind. More... | |
LIBSSH_API int | ssh_bind_options_set (ssh_bind sshbind, enum ssh_bind_options_e type, const void *value) |
Set the options for the current SSH server bind. More... | |
LIBSSH_API void | ssh_bind_set_blocking (ssh_bind ssh_bind_o, int blocking) |
Set the session to blocking/nonblocking mode. More... | |
LIBSSH_API int | ssh_bind_set_callbacks (ssh_bind sshbind, ssh_bind_callbacks callbacks, void *userdata) |
Set the callback for this bind. More... | |
LIBSSH_API void | ssh_bind_set_fd (ssh_bind ssh_bind_o, socket_t fd) |
Set the file descriptor for a session. More... | |
LIBSSH_API int | ssh_channel_open_reverse_forward (ssh_channel channel, const char *remotehost, int remoteport, const char *sourcehost, int localport) |
Open a TCP/IP reverse forwarding channel. More... | |
LIBSSH_API int | ssh_channel_open_x11 (ssh_channel channel, const char *orig_addr, int orig_port) |
Open a X11 channel. More... | |
LIBSSH_API int | ssh_channel_request_send_exit_signal (ssh_channel channel, const char *signum, int core, const char *errmsg, const char *lang) |
Send an exit signal to remote process (as described in RFC 4254, section 6.10). More... | |
LIBSSH_API int | ssh_channel_request_send_exit_status (ssh_channel channel, int exit_status) |
Send the exit status to the remote process. More... | |
LIBSSH_API int | ssh_channel_write_stderr (ssh_channel channel, const void *data, uint32_t len) |
Blocking write on a channel stderr. More... | |
LIBSSH_API ssh_gssapi_creds | ssh_gssapi_get_creds (ssh_session session) |
returns the client credentials of the connected client. More... | |
LIBSSH_API int | ssh_handle_key_exchange (ssh_session session) |
Handles the key exchange and set up encryption. More... | |
LIBSSH_API const char * | ssh_message_auth_password (ssh_message msg) |
Get the password of the authenticated user. More... | |
LIBSSH_API ssh_key | ssh_message_auth_pubkey (ssh_message msg) |
Get the publickey of the authenticated user. More... | |
LIBSSH_API const char * | ssh_message_auth_user (ssh_message msg) |
Get the name of the authenticated user. More... | |
LIBSSH_API int | ssh_message_reply_default (ssh_message msg) |
Reply with a standard reject message. More... | |
LIBSSH_API void | ssh_set_auth_methods (ssh_session session, int auth_methods) |
Set the acceptable authentication methods to be sent to client. More... | |
LIBSSH_API void | ssh_set_message_callback (ssh_session session, int(*ssh_bind_message_callback)(ssh_session session, ssh_message msg, void *data), void *data) |
defines the ssh_message callback More... | |
typedef void(* ssh_bind_incoming_connection_callback) (ssh_bind sshbind, void *userdata) |
Incoming connection callback.
This callback is called when a ssh_bind has a new incoming connection.
sshbind | Current sshbind session handler |
userdata | Userdata to be passed to the callback function. |
int ssh_bind_accept | ( | ssh_bind | ssh_bind_o, |
ssh_session | session | ||
) |
Accept an incoming ssh connection and initialize the session.
ssh_bind_o | The ssh server bind to accept a connection. |
session | A preallocated ssh session |
References ssh_bind_accept_fd().
int ssh_bind_accept_fd | ( | ssh_bind | ssh_bind_o, |
ssh_session | session, | ||
socket_t | fd | ||
) |
Accept an incoming ssh connection on the given file descriptor and initialize the session.
ssh_bind_o | The ssh server bind to accept a connection. |
session | A preallocated ssh session |
fd | A file descriptor of an already established TCP inbound connection |
Referenced by ssh_bind_accept().
void ssh_bind_fd_toaccept | ( | ssh_bind | ssh_bind_o | ) |
Allow the file descriptor to accept new sessions.
ssh_bind_o | The ssh server bind to use. |
void ssh_bind_free | ( | ssh_bind | ssh_bind_o | ) |
Free a ssh servers bind.
ssh_bind_o | The ssh server bind to free. |
References ssh_key_free().
socket_t ssh_bind_get_fd | ( | ssh_bind | ssh_bind_o | ) |
Recover the file descriptor from the session.
ssh_bind_o | The ssh server bind to get the fd from. |
int ssh_bind_listen | ( | ssh_bind | ssh_bind_o | ) |
Start listening to the socket.
ssh_bind_o | The ssh server bind to use. |
References ssh_init(), and ssh_key_free().
ssh_bind ssh_bind_new | ( | void | ) |
Creates a new SSH server bind.
References ssh_key_free(), ssh_key_type(), and ssh_pki_import_privkey_file().
int ssh_bind_options_set | ( | ssh_bind | sshbind, |
enum ssh_bind_options_e | type, | ||
const void * | value | ||
) |
Set the options for the current SSH server bind.
This function can set all possible ssh bind options.
sshbind | The ssh server bind to configure. |
type | The option type to set. This could be one of the following: |
value | The value to set. This is a generic pointer and the datatype which is used should be set according to the type set. |
sshbind | An allocated ssh bind structure. |
type | The option type to set. This could be one of the following: |
SSH_BIND_OPTIONS_LOG_VERBOSITY: Set the session logging verbosity (integer).
The verbosity of the messages. Every log smaller or equal to verbosity will be shown. SSH_LOG_NOLOG: No logging SSH_LOG_RARE: Rare conditions or warnings SSH_LOG_ENTRY: API-accessible entrypoints SSH_LOG_PACKET: Packet id and size SSH_LOG_FUNCTIONS: Function entering and leaving
SSH_BIND_OPTIONS_LOG_VERBOSITY_STR: Set the session logging verbosity (integer).
The verbosity of the messages. Every log smaller or equal to verbosity will be shown. SSH_LOG_NOLOG: No logging SSH_LOG_RARE: Rare conditions or warnings SSH_LOG_ENTRY: API-accessible entrypoints SSH_LOG_PACKET: Packet id and size SSH_LOG_FUNCTIONS: Function entering and leaving
SSH_BIND_OPTIONS_BINDADDR: Set the bind address.
SSH_BIND_OPTIONS_BINDPORT: Set the bind port, default is 22.
SSH_BIND_OPTIONS_HOSTKEY: Set the server public key type: ssh-rsa or ssh-dss (string).
SSH_BIND_OPTIONS_DSAKEY: Set the path to the dsa ssh host key (string).
SSH_BIND_OPTIONS_RSAKEY: Set the path to the ssh host rsa key (string).
SSH_BIND_OPTIONS_BANNER: Set the server banner sent to clients (string).
value | The value to set. This is a generic pointer and the datatype which is used should be set according to the type set. |
References ssh_set_log_level().
void ssh_bind_set_blocking | ( | ssh_bind | ssh_bind_o, |
int | blocking | ||
) |
Set the session to blocking/nonblocking mode.
ssh_bind_o | The ssh server bind to use. |
blocking | Zero for nonblocking mode. |
int ssh_bind_set_callbacks | ( | ssh_bind | sshbind, |
ssh_bind_callbacks | callbacks, | ||
void * | userdata | ||
) |
Set the callback for this bind.
[in] | sshbind | The bind to set the callback on. |
[in] | callbacks | An already set up ssh_bind_callbacks instance. |
[in] | userdata | A pointer to private data to pass to the callbacks. |
References ssh_poll_new().
void ssh_bind_set_fd | ( | ssh_bind | ssh_bind_o, |
socket_t | fd | ||
) |
Set the file descriptor for a session.
ssh_bind_o | The ssh server bind to set the fd. |
fd | The file descriptssh_bind B |
LIBSSH_API int ssh_channel_open_reverse_forward | ( | ssh_channel | channel, |
const char * | remotehost, | ||
int | remoteport, | ||
const char * | sourcehost, | ||
int | localport | ||
) |
Open a TCP/IP reverse forwarding channel.
[in] | channel | An allocated channel. |
[in] | remotehost | The remote host to connected (host name or IP). |
[in] | remoteport | The remote port. |
[in] | sourcehost | The source host (your local computer). It's optional and for logging purpose. |
[in] | localport | The source port (your local computer). It's optional and for logging purpose. |
References ssh_buffer_free(), ssh_buffer_new(), ssh_string_free(), and ssh_string_from_char().
LIBSSH_API int ssh_channel_open_x11 | ( | ssh_channel | channel, |
const char * | orig_addr, | ||
int | orig_port | ||
) |
Open a X11 channel.
[in] | channel | An allocated channel. |
[in] | orig_addr | The source host (the local server). |
[in] | orig_port | The source port (the local server). |
References ssh_buffer_free(), ssh_buffer_new(), ssh_string_free(), and ssh_string_from_char().
LIBSSH_API int ssh_channel_request_send_exit_signal | ( | ssh_channel | channel, |
const char * | sig, | ||
int | core, | ||
const char * | errmsg, | ||
const char * | lang | ||
) |
Send an exit signal to remote process (as described in RFC 4254, section 6.10).
Sends a signal 'sig' to the remote process. Note, that remote system may not support signals concept. In such a case this request will be silently ignored. Only SSH-v2 is supported (I'm not sure about SSH-v1).
[in] | channel | The channel to send signal. |
[in] | sig | The signal to send (without SIG prefix) (e.g. "TERM" or "KILL"). |
[in] | core | A boolean to tell if a core was dumped |
[in] | errmsg | A CRLF explanation text about the error condition |
[in] | lang | The language used in the message (format: RFC 3066) |
References ssh_buffer_free(), ssh_buffer_new(), ssh_string_free(), and ssh_string_from_char().
LIBSSH_API int ssh_channel_request_send_exit_status | ( | ssh_channel | channel, |
int | exit_status | ||
) |
Send the exit status to the remote process.
Sends the exit status to the remote process (as described in RFC 4254, section 6.10). Only SSH-v2 is supported (I'm not sure about SSH-v1).
[in] | channel | The channel to send exit status. |
[in] | exit_status | The exit status to send |
References ssh_buffer_free(), and ssh_buffer_new().
LIBSSH_API int ssh_channel_write_stderr | ( | ssh_channel | channel, |
const void * | data, | ||
uint32_t | len | ||
) |
Blocking write on a channel stderr.
[in] | channel | The channel to write to. |
[in] | data | A pointer to the data to write. |
[in] | len | The length of the buffer to write to. |
Referenced by ssh::Channel::write().
LIBSSH_API ssh_gssapi_creds ssh_gssapi_get_creds | ( | ssh_session | session | ) |
returns the client credentials of the connected client.
If the client has given a forwardable token, the SSH server will retrieve it.
References ssh_buffer_free(), ssh_buffer_get_begin(), ssh_buffer_get_len(), ssh_get_hexa(), SSH_LOG_PACKET, SSH_LOG_PROTOCOL, SSH_LOG_WARNING, SSH_PACKET_CALLBACK, SSH_PACKET_USED, ssh_string_data(), ssh_string_fill(), ssh_string_free(), ssh_string_from_char(), ssh_string_len(), and ssh_string_new().
int ssh_handle_key_exchange | ( | ssh_session | session | ) |
Handles the key exchange and set up encryption.
session | A connected ssh session |
References SSH_LOG_FUNCTIONS, SSH_LOG_PACKET, ssh_string_free(), and ssh_string_from_char().
const char * ssh_message_auth_password | ( | ssh_message | msg | ) |
Get the password of the authenticated user.
[in] | msg | The message to get the password from. |
ssh_key ssh_message_auth_pubkey | ( | ssh_message | msg | ) |
Get the publickey of the authenticated user.
If you need the key for later user you should duplicate it.
[in] | msg | The message to get the public key from. |
References SSH_LOG_PROTOCOL, SSH_PACKET_USED, ssh_string_free(), and ssh_string_from_char().
const char * ssh_message_auth_user | ( | ssh_message | msg | ) |
Get the name of the authenticated user.
[in] | msg | The message to get the username from. |
int ssh_message_reply_default | ( | ssh_message | msg | ) |
Reply with a standard reject message.
Use this function if you don't know what to respond or if you want to reject a request.
[in] | msg | The message to use for the reply. |
References SSH_LOG_PACKET.
Referenced by ssh_message_free(), and ssh_set_message_callback().
void ssh_set_auth_methods | ( | ssh_session | session, |
int | auth_methods | ||
) |
Set the acceptable authentication methods to be sent to client.
[in] | session | the SSH server session |
[in] | auth_methods | Bitfield of authentication methods to be accepted, e.g. SSH_AUTH_METHOD_PUBLICKEY |
void ssh_set_message_callback | ( | ssh_session | session, |
int(*)(ssh_session session, ssh_message msg, void *data) | ssh_bind_message_callback, | ||
void * | data | ||
) |
defines the ssh_message callback
session | the current ssh session | |
[in] | ssh_bind_message_callback | a function pointer to a callback taking the current ssh session and received message as parameters. the function returns 0 if the message has been parsed and treated successfully, 1 otherwise (libssh must take care of the response). |
[in] | data | void pointer to be passed to callback functions |
References SSH_LOG_PACKET, ssh_message_free(), ssh_message_reply_default(), ssh_string_free(), and ssh_string_from_char().