sgcSSH Feature Matrix

Everything sgcSSH does, mapped across the three client components, the two server components and the algorithms they negotiate. The same classes exist in Delphi and .NET, and every license ships full source code.

SSH client

Commands, shells, forwarding and rekey

SFTP client

Fast transfers, 16 requests in flight

SCP client

Files and whole folders

SSH server

Authentication, exec, shell and subsystems

SFTP server

A jail per user, read only mode

Algorithms

Post-quantum key exchange first

Platforms

Delphi 7 to 13 and .NET

sgcSSH is self-contained. It ships with the sgcWebSockets Core runtime bundled in, and the sgcCustomIndy add-on the Delphi components build on is always included in the order.

Also inside sgcWebSockets. All five components also ship inside sgcWebSockets Enterprise, and All-Access includes everything. On .NET they are part of the registered package, not the free Community edition. sgcSSH is the standalone package for teams that only need SSH and SFTP.

Five Palette Components

Three clients and two servers, registered on the SGC SSH palette page.

ComponentClassJobDescription
SSH ClientTsgcSSHClientRun commandsRemote commands, an interactive shell with a pty, local and remote port forwarding, and rekeying of long running sessions.
SFTP ClientTsgcSFTPClientTransfer filesSFTP v3 file manager operations with 16 requests in flight, so a 100 MB transfer takes about one second on a local network.
SCP ClientTsgcSCPClientCopy files and foldersUploads and downloads single files or whole folder trees with scp, optionally keeping the file times.
SSH ServerTsgcSSHServerAccept SSH clientsPassword and public key authentication, exec, shell and subsystem requests, with Ed25519, ECDSA and RSA host keys.
SFTP ServerTsgcSFTPServerServe a folderSFTP v3 and SCP from a root folder, with a jail per user, a read only mode and an event to allow or deny each operation.

Commands, Shells and Tunnels

TsgcSSHClient opens one authenticated SSH connection and runs as many channels on it as you need.

CapabilityAPINotes
ConnectionHost, Port, Connect, DisconnectPort 22 by default.
Password authenticationAuthentication.Username, Authentication.PasswordPlain user name and password sign-in.
Public key authenticationAuthentication.PrivateKeyFile, Authentication.PassphraseEd25519, ECDSA and RSA private keys in PEM or PKCS#8 files, and also in the OpenSSH format on .NET.
Host key checkOnSSHHostKeyReceives the key type and its fingerprint, so you compare them with your known hosts store and reject an unknown or changed key.
Remote commandExecuteOpens a channel, runs the command and returns its output as a string, with a timeout.
Interactive shellOpenChannel, RequestPTY, RequestShellA terminal session with the terminal type and size you choose.
Shell input and outputSendChannelData, OnSSHChannelDataSend what the user types, receive what the server prints.
Terminal controlSendWindowChange, SendSignal, SendEOFResize the terminal, send a signal or end the input of a channel.
Exec and subsystem channelsRequestExec, RequestSubsystemLow level channel requests for custom protocols over SSH.
Local port forwardingOpenDirectTCPIPOpens a direct-tcpip channel to a host and port reachable from the server.
Remote port forwardingRequestForwarding, CancelForwardingAsks the server to listen on a port and forward its connections back to the client.
RekeyRekeyRenews the session keys of a long running connection.
Post-quantum key exchangePostQuantumKexOn by default: offers mlkem768x25519-sha256 first.

Fast Transfers, One Method Each

TsgcSFTPClient implements SFTP v3 over the same SSH transport, with the same authentication and key exchange options as the SSH client.

CapabilityAPINotes
Home folderRealPathResolves a path such as . to the absolute path on the server.
Folder listingListDirectoryName, size, modification date and folder flag of every entry.
Upload and downloadPut, GetOne call per file, with 16 requests in flight. A 100 MB transfer takes about one second on a local network.
File managementRename, Delete, MakeDirectory, RemoveDirectoryEverything a file manager needs.
ProgressOnSFTPProgressReports the bytes transferred, ready for a progress bar.

Files and Whole Folders

TsgcSCPClient copies files over SSH to any server that allows the scp command.

CapabilityAPINotes
Single filesUpload, DownloadCopy one file to or from the remote path.
Folder treesUploadFolder, DownloadFolderCopy a whole folder recursively.
File timesPreserveTimesKeeps the modification and access times on the other side.
ProgressOnSCPProgressReports the file name and the bytes transferred.

Your Own SSH Service

TsgcSSHServer accepts any standard SSH client, the ssh, sftp and scp command line tools included.

CapabilityAPINotes
ListeningPort, ActiveStart and stop the server.
Host keysHostKeyFiles, GenerateHostKeyEd25519Ed25519, ECDSA and RSA host keys. The class procedure creates an Ed25519 key file for you.
Password authenticationOnSSHAuthPasswordCheck the user name and password against your own user store.
Public key authenticationOnSSHAuthPublicKeyReceives the key type and its SHA256 fingerprint, so you accept only the keys you know.
Remote commandsOnSSHExec, SendChannelData, SendExitStatus, CloseChannelAnswer a command, report its exit status and close the channel.
Interactive shellOnSSHShell, OnSSHChannelDataServe a terminal session from your own code.
SubsystemsSFTPServerSubsystem requests such as sftp are routed to a linked TsgcSFTPServer.
Connection eventsOnSSHConnect, OnSSHDisconnectLog every connection with the peer address.

A File Server With a Jail per User

TsgcSFTPServer plugs into TsgcSSHServer and serves files from a folder that clients cannot leave.

CapabilityAPINotes
ProtocolsSFTP, SCPSFTP v3, plus scp transfers when enabled.
Root folderRootFolderThe folder shown to the clients. Paths outside it are refused.
One folder per userOnSFTPUserRootReturn the root of each user, so every user sees only its own files.
Read only modeReadOnlyRefuses uploads, deletes and renames.
Per operation controlOnSFTPOperationFires for every open for read or write, remove, rename, folder creation and removal, attribute change and listing. Set aAccept to False and the client gets a permission denied error.
Large downloadsFlow controlDownloads use constant memory, whatever the file size.

Post-Quantum First

Client and server offer the strongest algorithms first and fall back to the classic ones only when the other side needs them.

AreaAlgorithmsNotes
Key exchangemlkem768x25519-sha256ML-KEM-768 combined with X25519, the default of the latest SSH releases. Offered first by the client and by the server.
Classic key exchangecurve25519, ECDH, Diffie-Hellman group14 and group16Used when the other side does not support the hybrid exchange.
CiphersAES-GCM, AES-CTRAES-GCM is hardware accelerated on .NET 8 and later.
Host and user keysEd25519, ECDSA, RSARSA signatures with SHA-2, selected through server-sig-algs.
Key filesPEM, PKCS#8, OpenSSH (.NET)Encrypted private keys are opened with a passphrase.
Strict key exchangeTerrapin mitigationCloses the prefix truncation attack on the SSH handshake.

Compilers, Frameworks and Targets

The same five components on Delphi and .NET.

AreaDetail
DelphiDelphi 7 through 13, for VCL, FMX, console applications and services.
Delphi targetsWindows Win32, Windows Win64 and Linux64.
.NET.NET 8, .NET 9, .NET 10 and .NET Standard 2.0, in fully managed code with no OpenSSL.
DemosDemos\27.SSH: SSH client, SFTP client, SCP client, SSH server and SFTP server.
EditionsAll five components also ship inside sgcWebSockets Enterprise, and All-Access includes everything. On .NET they ship in the registered package, not in the Community edition.
LicensingStandalone. The sgcWebSockets Core runtime is bundled in, sgcCustomIndy is included in the order and full source code is included.
Best value: All-AccessEvery eSeGeCe product, Premium Support included, from €1,059/year.
See All-Access pricing

Build with sgcSSH

Download the free trial and run your first remote command or SFTP upload from Delphi or .NET.