ultimatepp/uppsrc/Core/SSH
oblivion 33f68b1d32 Core/SSH: Authentication methods list parsing is fixed.
git-svn-id: svn://ultimatepp.org/upp/trunk@13660 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2019-10-26 21:47:32 +00:00
..
libssh2 Core/SSH: Fixed to compile with MSC 2019-10-25 21:56:21 +00:00
src.tpp SSH: Docs updated. 2019-10-16 21:55:37 +00:00
Channels.cpp SSH: SshShell: Terminal modes can now be specified. 2019-10-02 21:34:08 +00:00
Channels.h SSH: CLANG warning is fixed. 2019-10-22 12:18:24 +00:00
Copying SSH: Docs updated. 2019-10-16 21:55:37 +00:00
Core.cpp SSH: Core::Wait() is moved out of the critical section. (MT fix) 2019-09-26 07:50:11 +00:00
Core.h SSH: CLANG warning is fixed. 2019-10-22 12:18:24 +00:00
Exec.cpp SSH: Standard channels (scp, exec, tunnel, shell) are all re-added. Minor bugfixes, cosmetics, cleanup. Docs updated. 2018-08-15 20:29:12 +00:00
Hosts.cpp SFtp: CopyStream has replaced the Upp::CopyStream. 2018-08-25 19:20:22 +00:00
Hosts.h SSH: SshHosts error handling improved. Various fixes & cosmetics. 2018-08-23 12:50:05 +00:00
Issues SSH: SshShell: Console window resize notification workaround for MacOS. 2019-02-19 16:31:02 +00:00
libssh2upp.c Core/SSH added (thanks Oblivion) 2018-07-31 08:17:23 +00:00
Malloc.cpp Core/SSH: SFtpStream 2018-08-09 13:11:40 +00:00
ReadMe SSH: Docs updated. 2019-10-16 21:55:37 +00:00
Scp.cpp SSH: Scp abort mechanism improved, experimental SFtpFileSystemInfo class added. SFtp now uses the new Upp::CopyStream() functiion. Cosmetics. 2018-08-30 21:17:32 +00:00
Session.cpp SSH: New Fingerprint methods are added (MD5, SHA1, SHA256). 2019-10-16 13:02:00 +00:00
Session.h Core/SSH: Authentication methods list parsing is fixed. 2019-10-26 21:47:32 +00:00
SFtp.cpp SFtpFileSystemInfo: Return type for GetInfo() fixed. 2018-10-31 09:53:39 +00:00
SFtp.h SSH: CLANG warning is fixed. 2019-10-22 12:18:24 +00:00
SFtpStream.cpp SFtp: File transfer methods (String/Stream) are refactored. They can now take advantage of WhenProgress gate. Various fixes and refactoring. 2018-08-13 19:13:39 +00:00
Shell.cpp SSH: SshShell: Terminal modes can now be specified. 2019-10-02 21:34:08 +00:00
SSH.h SSH: CLANG warning is fixed. 2019-10-22 12:18:24 +00:00
SSH.upp SSH: SSh.upp: 'mainconfig' section removed. 2018-10-09 21:57:05 +00:00
Todo SFtpFileSystemInfo: Return type for GetInfo() fixed. 2018-10-31 09:53:39 +00:00
Tunnel.cpp SFtp: File transfer methods (String/Stream) are refactored. They can now take advantage of WhenProgress gate. Various fixes and refactoring. 2018-08-13 19:13:39 +00:00

SSH package for U++
--------------------
SSH package is a flexible, easy-to-use, yet powerful 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
     -  SFtp Stream interface       -----> SFtpStream
     -  File system transparency    -----> SFtpFileSystemInfo 
  - 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 array, etc.) through a common
  interface. 
- Uses U++'s memory manager (Native manager (malloc) is also a compile-time option)
- Uses OpenSSL by default. 
- Supports multithreading.
- 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
  (SshShell works on both Windows and Posix-compliant OSes)
- Supports X11 forwarding. 
  (A single SShShell instance is capable of handling multiple X11 requests simultaneously.)
- Supports Tcp/IP and port forwarding.
- Supports stream operations on SFTP objects.
- Supports access to sftp folder hiearcy in a file-system-agnostic (transparent) way.
- Supports detailed (full) debug logging.

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

- SshBasics:    Demonstrates basic capabilities of SSH package.
- SFtpFileSel:  Demonstrates FileSel integration of SFtp class, using FileSystemInfo interface.
- SFtpBrowser:  Demonstrates a basic sftp browser with GUI.