SSH package for U++ -------------------- SSH package is a flexible and easy-to-use libssh2 wrapper for Ultimate++. It supports both console and GUI-based applications on POSIX-compliant operating systems and MS Windows (tm). Classes: -------------------- - Base (core) class -> Ssh - Ssh session -----> SshSession - Sftp subsystem -----> SFtp - Ssh channel -----> SshChannel - Scp channel -----> Scp - Exec channel -----> SshExec - Real-time interactive shell -----> SshShell - X11 forwarding -----> SshShell (as operation mode) - Tcp/IP and port forwarding -----> SshTunnel - Known hosts manager -> SshHosts Features and Highlights: -------------------- - Ssh-derived classes have pick semantics, based on RAII principle, support RTTI, and allow polymorphism (i.e. different classes can be stored in the same arrays, etc.) through a common interface. - Uses U++ memory allocators (Native allocators is also a compile-time option) - Uses OpenSSL by default. - Supports 3rd-party network proxies. - Supports known hosts verification mechanism. - Supports password, public key, host-based, and keyboard-interactive authentication methods. - Supports ssh-agents. - Supports real-time interactive command line (shell) interface with both console and GUI integration (works on both Windows and Posix-compliant OS'es) - Supports multiple X11 connection forwarding. - Supports Tcp/IP and port forwarding. - Supports detailed (full) debug logging. Todo: -------------------- - Improve documentation. Reference examples: ------------------- - SshBasics: Demonstrates basic capabilities of SSH package. - SFtpBrowser: Demonstrates a basic sftp browser with GUI.