52 #define LIBSSH_LEGACY_0_4    54 #include <libssh/libssh.h>    55 #include <libssh/server.h>    68 #ifndef SSH_NO_CPP_EXCEPTIONS    82     description=e.description;
   101   std::string description;
   107 #define ssh_throw(x) if((x)==SSH_ERROR) throw SshException(getCSession())   108 #define ssh_throw_null(CSession,x) if((x)==NULL) throw SshException(CSession)   109 #define void_throwable void   110 #define return_throwable return   117 #define ssh_throw(x) if((x)==SSH_ERROR) return SSH_ERROR   118 #define ssh_throw_null(CSession,x) if((x)==NULL) return NULL   119 #define void_throwable int   120 #define return_throwable return SSH_OK   142   void_throwable 
setOption(
enum ssh_options_e type, 
const char *option){
   152   void_throwable 
setOption(
enum ssh_options_e type, 
long int option){
   162   void_throwable 
setOption(
enum ssh_options_e type, 
void *option){
   315   const char *getError(){
   339     std::string ret = 
"";
   340     if (banner != NULL) {
   341       ret = std::string(banner);
   371   void log(
int priority, 
const char *format, ...){
   375     va_start(va, format);
   376     vsnprintf(buffer, 
sizeof(buffer), format, va);
   378     _ssh_log(priority, 
"libsshpp", 
"%s", buffer);
   426   void_throwable cancelForward(
const char *address, 
int port){
   432   void_throwable listenForward(
const char *address, 
int port,
   448   Session(
const Session &);
   449   Session& operator=(
const Session &);
   478     ssh_throw_null(getCSession(),x11chan);
   506   Session &getSession(){
   527   int openForward(
const char *remotehost, 
int remoteport,
   528       const char *sourcehost=NULL, 
int localport=0){
   530         sourcehost, localport);
   535   void_throwable openSession(){
   540   int poll(
bool is_stderr=
false){
   545   int read(
void *dest, 
size_t count){
   548     if(count > 0x7fffffff)
   554   int read(
void *dest, 
size_t count, 
int timeout){
   557     if(count > 0x7fffffff)
   563   int read(
void *dest, 
size_t count, 
bool is_stderr=
false, 
int timeout=-1){
   566     if(count > 0x7fffffff)
   572   int readNonblocking(
void *dest, 
size_t count, 
bool is_stderr=
false){
   575     if(count > 0x7fffffff)
   581   void_throwable requestEnv(
const char *name, 
const char *value){
   587   void_throwable requestExec(
const char *cmd){
   592   void_throwable requestPty(
const char *term=NULL, 
int cols=0, 
int rows=0){
   594     if(term != NULL && cols != 0 && rows != 0)
   602   void_throwable requestShell(){
   607   void_throwable requestSendSignal(
const char *signum){
   612   void_throwable requestSubsystem(
const char *subsystem){
   617   int requestX11(
bool single_connection,
   618       const char *protocol, 
const char *cookie, 
int screen_number){
   620         protocol, cookie, screen_number);
   624   void_throwable sendEof(){
   638   int write(
const void *data, 
size_t len, 
bool is_stderr=
false){
   650     return session->getCSession();
   663     this->channel=c_channel;
   667   Channel(
const Channel &);
   668   Channel &operator=(
const Channel &);
   675     ssh_throw_null(c_session,forward);
 int userauthNone()
Authenticates using the "none" method. Prefer using autopubkey if possible. 
Definition: libsshpp.hpp:192
int userauthKbdintGetNPrompts()
Get the number of prompts (questions) the server has given. 
Definition: libsshpp.hpp:224
int getAuthList()
Returns the available authentication methods from the server. 
Definition: libsshpp.hpp:293
Definition: libsshpp.hpp:61
void_throwable setOption(enum ssh_options_e type, void *option)
sets an SSH session options 
Definition: libsshpp.hpp:162
LIBSSH_API int ssh_userauth_kbdint(ssh_session session, const char *user, const char *submethods)
Try to authenticate through the "keyboard-interactive" method. 
Definition: auth.c:1651
LIBSSH_API int ssh_options_parse_config(ssh_session session, const char *filename)
Parse the ssh config file. 
Definition: options.c:1300
Channel * acceptX11(int timeout_ms)
accept an incoming X11 connection 
Definition: libsshpp.hpp:476
LIBSSH_API int ssh_channel_request_x11(ssh_channel channel, int single_connection, const char *protocol, const char *cookie, int screen_number)
Sends the "x11-req" channel request over an existing session channel. 
Definition: channels.c:1871
LIBSSH_API int ssh_channel_request_shell(ssh_channel channel)
Request a shell. 
Definition: channels.c:1760
LIBSSH_API int ssh_channel_open_forward(ssh_channel channel, const char *remotehost, int remoteport, const char *sourcehost, int localport)
Open a TCP/IP forwarding channel. 
Definition: channels.c:946
LIBSSH_API int ssh_channel_is_eof(ssh_channel channel)
Check if remote has sent an EOF. 
Definition: channels.c:1437
LIBSSH_API int ssh_channel_read_timeout(ssh_channel channel, void *dest, uint32_t count, int is_stderr, int timeout_ms)
Reads data from a channel. 
Definition: channels.c:2689
int isServerKnown()
verifies that the server is known 
Definition: libsshpp.hpp:366
LIBSSH_API int ssh_channel_send_eof(ssh_channel channel)
Send an end of file on the channel. 
Definition: channels.c:1079
Definition: channels.h:57
LIBSSH_API int ssh_channel_close(ssh_channel channel)
Close a channel. 
Definition: channels.c:1131
int userauthPublickey(ssh_key privkey)
Authenticates using the publickey method. 
Definition: libsshpp.hpp:282
void_throwable optionsCopy(const Session &source)
copies options from a session to another 
Definition: libsshpp.hpp:385
int getVersion()
returns the version of the SSH protocol being used 
Definition: libsshpp.hpp:357
void_throwable changePtySize(int cols, int rows)
change the size of a pseudoterminal 
Definition: libsshpp.hpp:488
Definition: libsshpp.hpp:126
LIBSSH_API int ssh_get_openssh_version(ssh_session session)
Get the version of the OpenSSH server, if it is not an OpenSSH server then 0 will be returned...
Definition: client.c:644
LIBSSH_API int ssh_userauth_list(ssh_session session, const char *username)
Get available authentication methods from the server. 
Definition: auth.c:369
LIBSSH_API const char * ssh_get_error(void *error)
Retrieve the error text message from the last error. 
Definition: error.c:128
LIBSSH_API int ssh_channel_write(ssh_channel channel, const void *data, uint32_t len)
Blocking write on a channel. 
Definition: channels.c:1394
Definition: session.h:102
void_throwable optionsParseConfig(const char *file)
parses a configuration file for options 
Definition: libsshpp.hpp:394
LIBSSH_API int ssh_channel_request_pty_size(ssh_channel channel, const char *term, int cols, int rows)
Request a pty with a specific type and size. 
Definition: channels.c:1639
LIBSSH_API int ssh_channel_request_subsystem(ssh_channel channel, const char *subsystem)
Request a subsystem (for example "sftp"). 
Definition: channels.c:1782
the ssh::Channel class describes the state of an SSH channel. 
Definition: libsshpp.hpp:456
LIBSSH_API int ssh_get_version(ssh_session session)
Get the protocol version of the session. 
Definition: session.c:797
LIBSSH_API int ssh_channel_request_env(ssh_channel channel, const char *name, const char *value)
Set environment variables. 
Definition: channels.c:2324
int userauthKbdint(const char *username, const char *submethods)
Authenticate through the "keyboard-interactive" method. 
Definition: libsshpp.hpp:214
int userauthPublickeyAuto(void)
Authenticates automatically using public key. 
Definition: libsshpp.hpp:180
LIBSSH_API char * ssh_get_issue_banner(ssh_session session)
Get the issue banner from the server. 
Definition: client.c:618
int write(const void *data, size_t len, bool is_stderr=false)
Writes on a channel. 
Definition: libsshpp.hpp:638
LIBSSH_API int ssh_userauth_kbdint_getnprompts(ssh_session session)
Get the number of prompts (questions) the server has given. 
Definition: auth.c:1694
std::string getIssueBanner()
gets the Issue banner from the ssh server 
Definition: libsshpp.hpp:337
LIBSSH_API int ssh_options_copy(ssh_session src, ssh_session *dest)
Duplicate the options of a session structure. 
Definition: options.c:64
void disconnect()
Disconnects from the SSH server and closes connection. 
Definition: libsshpp.hpp:301
int getCode()
returns the Error code 
Definition: libsshpp.hpp:89
LIBSSH_API int ssh_channel_open_session(ssh_channel channel)
Open a session channel (suited for a shell, not TCP forwarding). 
Definition: channels.c:881
if defined, disable C++ exceptions for libssh c++ wrapper 
Definition: libsshpp.hpp:74
LIBSSH_API int ssh_channel_is_open(ssh_channel channel)
Check if the channel is open or not. 
Definition: channels.c:1407
LIBSSH_API int ssh_write_knownhost(ssh_session session)
This function is deprecated. 
Definition: known_hosts.c:515
LIBSSH_API int ssh_channel_is_closed(ssh_channel channel)
Check if the channel is closed or not. 
Definition: channels.c:1423
socket_t getSocket()
returns the file descriptor used for the communication 
Definition: libsshpp.hpp:330
int userauthKbdintSetAnswer(unsigned int index, const char *answer)
Set the answer for a question from a message block. 
Definition: libsshpp.hpp:244
LIBSSH_API int ssh_channel_poll(ssh_channel channel, int is_stderr)
Polls a channel for data to read. 
Definition: channels.c:2856
int writeKnownhost()
Writes the known host file with current host key. 
Definition: libsshpp.hpp:409
LIBSSH_API ssh_channel ssh_channel_new(ssh_session session)
Allocate a new channel. 
Definition: channels.c:79
LIBSSH_API int ssh_options_set(ssh_session session, enum ssh_options_e type, const void *value)
This function can set all possible ssh options. 
Definition: options.c:430
LIBSSH_API int ssh_userauth_password(ssh_session session, const char *username, const char *password)
Try to authenticate by password. 
Definition: auth.c:1236
LIBSSH_API int ssh_userauth_publickey_auto(ssh_session session, const char *username, const char *passphrase)
Tries to automatically authenticate with public key and "none". 
Definition: auth.c:1016
LIBSSH_API int ssh_userauth_kbdint_setanswer(ssh_session session, unsigned int i, const char *answer)
Set the answer for a question from a message block. 
Definition: auth.c:1849
LIBSSH_API int ssh_userauth_publickey(ssh_session session, const char *username, const ssh_key privkey)
Authenticate with public/private key or certificate. 
Definition: auth.c:615
LIBSSH_API socket_t ssh_get_fd(ssh_session session)
Get the fd of a connection. 
Definition: session.c:534
int userauthPassword(const char *password)
Authenticates using the password method. 
Definition: libsshpp.hpp:259
bool isEof()
returns true if channel is in EOF state 
Definition: libsshpp.hpp:518
LIBSSH_API int ssh_channel_change_pty_size(ssh_channel channel, int cols, int rows)
Change the size of the terminal associated to a channel. 
Definition: channels.c:1721
LIBSSH_API int ssh_connect(ssh_session session)
Connect to the ssh server. 
Definition: client.c:503
LIBSSH_API void ssh_disconnect(ssh_session session)
Disconnect from a session (client or server). The session can then be reused to open a new session...
Definition: client.c:658
int getOpensshVersion()
returns the OpenSSH version (server) if possible 
Definition: libsshpp.hpp:350
bool isClosed()
returns true if channel is in closed state 
Definition: libsshpp.hpp:512
LIBSSH_API int ssh_userauth_none(ssh_session session, const char *username)
Try to authenticate through the "none" method. 
Definition: auth.c:399
void_throwable setOption(enum ssh_options_e type, const char *option)
sets an SSH session options 
Definition: libsshpp.hpp:142
LIBSSH_API ssh_channel ssh_channel_accept_x11(ssh_channel channel, int timeout_ms)
Accept an X11 forwarding channel. 
Definition: channels.c:1987
LIBSSH_API int ssh_channel_listen_forward(ssh_session session, const char *address, int port, int *bound_port)
Sends the "tcpip-forward" global request to ask the server to begin listening for inbound connections...
Definition: channels.c:2191
LIBSSH_API int ssh_channel_request_send_signal(ssh_channel channel, const char *signum)
Send a signal to remote process (as described in RFC 4254, section 6.9). 
Definition: channels.c:2464
std::string getError()
returns the error message of the last exception 
Definition: libsshpp.hpp:96
void_throwable connect()
connects to the remote host 
Definition: libsshpp.hpp:170
LIBSSH_API ssh_channel ssh_channel_accept_forward(ssh_session session, int timeout_ms, int *destination_port)
Accept an incoming TCP/IP forwarding channel and get information about incomming connection. 
Definition: channels.c:2254
int userauthTryPublickey(ssh_key pubkey)
Try to authenticate using the publickey method. 
Definition: libsshpp.hpp:271
void silentDisconnect()
silently disconnect from remote host 
Definition: libsshpp.hpp:401
Channel * acceptForward(int timeout_ms)
accept an incoming forward connection 
Definition: libsshpp.hpp:672
LIBSSH_API int ssh_channel_request_exec(ssh_channel channel, const char *cmd)
Run a shell command without an interactive shell. 
Definition: channels.c:2394
bool isOpen()
returns true if channel is in open state 
Definition: libsshpp.hpp:524
LIBSSH_API int ssh_channel_request_pty(ssh_channel channel)
Request a PTY. 
Definition: channels.c:1702
LIBSSH_API enum ssh_known_hosts_e ssh_session_is_known_server(ssh_session session)
Check if the servers public key for the connected session is known. 
Definition: knownhosts.c:977
LIBSSH_API void ssh_silent_disconnect(ssh_session session)
Disconnect impolitely from a remote host by closing the socket. 
Definition: session.c:435
LIBSSH_API const char * ssh_get_disconnect_message(ssh_session session)
Get the disconnect message from the server. 
Definition: session.c:772
LIBSSH_API ssh_session ssh_new(void)
Create a new ssh session. 
Definition: session.c:58
LIBSSH_API void ssh_channel_free(ssh_channel channel)
Close and free a channel. 
Definition: channels.c:1002
LIBSSH_API int ssh_userauth_try_publickey(ssh_session session, const char *username, const ssh_key pubkey)
Try to authenticate with the given public key. 
Definition: auth.c:482
void_throwable setOption(enum ssh_options_e type, long int option)
sets an SSH session options 
Definition: libsshpp.hpp:152
LIBSSH_API int ssh_channel_get_exit_status(ssh_channel channel)
Get the exit status of the channel (error code from the executed instruction). 
Definition: channels.c:2985
LIBSSH_API int ssh_channel_cancel_forward(ssh_session session, const char *address, int port)
Sends the "cancel-tcpip-forward" global request to ask the server to cancel the tcpip-forward request...
Definition: channels.c:2273
void_throwable close()
closes a channel 
Definition: libsshpp.hpp:498
LIBSSH_API int ssh_channel_write_stderr(ssh_channel channel, const void *data, uint32_t len)
Blocking write on a channel stderr. 
Definition: channels.c:3242
const char * getDisconnectMessage()
Returns the disconnect message from the server, if any. 
Definition: libsshpp.hpp:308
LIBSSH_API void ssh_free(ssh_session session)
Deallocate a SSH session handle. 
Definition: session.c:169
LIBSSH_API int ssh_channel_read_nonblocking(ssh_channel channel, void *dest, uint32_t count, int is_stderr)
Do a nonblocking read on the channel. 
Definition: channels.c:2804
LIBSSH_API int ssh_get_error_code(void *error)
Retrieve the error code from the last error. 
Definition: error.c:148