Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ MT-multithreading and servers » SSH package for U++ (A feature-rich ilbssh2 wrapper for Ultimate++)
SSH package for U++ [message #48973] Tue, 14 November 2017 21:59 Go to previous message
Oblivion is currently offline  Oblivion
Messages: 1092
Registered: August 2007
Senior Contributor
Hello guys,

I am officially announcing the release of "beta" version of SSH package.
Package is tested on Arch Linux (Kernel: 4.13, GCC 7.2) and Windows (7/10, MinGW 7.2/MSC 14 (2017))

SSH package for U++
--------------------
SSH package is a feautre-rich, flexible yet very easy to use libssh2 wrapper for Ultimate++.
It supports both console and GUI-based applications on POSIX-compliant operating systems and
MS Windows (tm).

Currently it is in beta (version 1) stage.

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 time-constrained, blocking and non-blocking operation modes.
- Supoorts multithreaded file transfers and remote command execution (exec), using worker threads.
- Supports 3rd-party network proxies. (Such as NetProxy)
- 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 Windows and Posix-compliant OS'es)
- Supports multiple X11 connection forwarding.
- Supports Tcp/IP and port forwarding.
- Supports detailed (full) debug logging.

Todo:
--------------------
- Add more high level methods.
- Refactor Ssh (core) class.
- Improve documentation.

Reference examples:
-------------------

- SFtpGet:           Demonstrates basic SFtp file download in blocking mode.
- SFtpGetNB:         Demonstrates basic SFtp file download in non-blocking mode.
- SFtpGetMT:         Demonstrates basic SFtp file download, using a worker thread.
- SFtpGUI:           Demonstrates a basic SFtp browser with GUI (with upload, download, mkdir, rename, delete commands).
- SFtpMultiGetMT:    Demonstrates SFtp dir listing and concurrent file transfers, using worker threads.
- SFtpConsumerGet:   Demonstrates the usage of a consumer function for SFtp download in blocking mode.
- SFtpConsumerGetMT: Demonstrates the usage of a consumer function for SFtp download, using a worker thread.
- SshExec:           Demonstrates basic Ssh remote command execution in blocking mode.
- SshExecNB:         Demonstrates basic Ssh remote command execution in non-blocking mode.
- SshExecMT:         Demonstrates basic Ssh remote command execution, using a worker thread.
- SshKeyboardAuth:   Demonstrates basic Ssh interactive (challenge-response) authentication method in blocking mode.
- SshLoggingExample: Demonstrates the logging capabilities of SSH package.
- SshOverTor:        Demonstrates a basic Ssh connection over TOR, using a third-party network proxy adapter.
- SshPolymorphismNB: Demonstrates the polymorphism capability of SSH channels in non-blocking mode.
- SshShell:          Demonstrates a basic, real-time SSH shell console in blocking mode.
- SshShellNB:        Demonstrates a basic, real-time SSH shell console in non-blocking mode.    
- SshShellX11:       Demonstrates a basic, real-time SSH shell console with multiple X11 forwarding.
- SshShellGUI:       Demonstrates the basic GUI integration of SshShell class with multiple X11 forwarding, in non-blocking mode.
- SshTunnelExample:  Demonstrates the basic SSH tunneling (as tunnel/server) in blocking mode.




Below you can find the latest package and the GIT address where you can always get the latest version.

GIT repo: https://github.com/ismail-yilmaz/upp-components/tree/master/ Core/SSH
Examples: https://github.com/ismail-yilmaz/upp-components/tree/master/ Examples
Older Version: https://github.com/ismail-yilmaz/upp-components/tree/master/ Attic/SSH

I appreciate bug reports, reviews, criticism, patches etc.

Best regards,
Oblivion



[Updated on: Sat, 16 June 2018 19:05]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: WebSockets client in javascript connected to an U++ server sending binary messages
Next Topic: TURTLE high cpu usage, potential security flaw, and client handling problem
Goto Forum:
  


Current Time: Tue Apr 23 16:52:45 CEST 2024

Total time taken to generate the page: 0.02625 seconds