sgcSSH Funktionsmatrix

Alles, was sgcSSH kann, aufgeschlüsselt nach den drei Client-Komponenten, den zwei Server-Komponenten und den Algorithmen, die sie aushandeln. Dieselben Klassen gibt es in Delphi und .NET, und jede Lizenz enthält den vollen Quellcode.

SSH-Client

Befehle, Shells, Weiterleitung und Rekey

SFTP-Client

Schnelle Übertragungen, 16 Anfragen gleichzeitig

SCP-Client

Dateien und ganze Ordner

SSH-Server

Authentifizierung, exec, Shell und Subsysteme

SFTP-Server

Ein Jail pro Benutzer, Nur-Lese-Modus

Algorithmen

Post-Quanten-Schlüsselaustausch zuerst

Plattformen

Delphi 7 bis 13 und .NET

sgcSSH ist in sich geschlossen. Es bringt die sgcWebSockets Core Runtime mit, und das Add-on sgcCustomIndy, auf dem die Delphi-Komponenten aufbauen, ist in der Bestellung immer enthalten.

Auch in sgcWebSockets enthalten. Alle fünf Komponenten sind außerdem in sgcWebSockets Enterprise enthalten, und All-Access enthält alles. Unter .NET gehören sie zum registrierten Paket, nicht zur kostenlosen Community-Edition. sgcSSH ist das eigenständige Paket für Teams, die nur SSH und SFTP brauchen.

Fünf Paletten-Komponenten

Drei Clients und zwei Server, registriert auf der Palettenseite SGC SSH.

KomponenteKlasseAufgabeBeschreibung
SSH-ClientTsgcSSHClientBefehle ausführenRemote-Befehle, eine interaktive Shell mit pty, lokale und entfernte Portweiterleitung und Rekey lange laufender Sitzungen.
SFTP-ClientTsgcSFTPClientDateien übertragenDateimanager-Operationen über SFTP v3 mit 16 gleichzeitigen Anfragen, sodass eine 100-MB-Übertragung in einem lokalen Netzwerk etwa eine Sekunde dauert.
SCP-ClientTsgcSCPClientDateien und Ordner kopierenLädt einzelne Dateien oder ganze Ordnerbäume mit scp hoch und herunter, auf Wunsch unter Beibehaltung der Dateizeiten.
SSH-ServerTsgcSSHServerSSH-Clients annehmenAuthentifizierung per Passwort und öffentlichem Schlüssel, exec-, Shell- und Subsystem-Anfragen, mit Ed25519-, ECDSA- und RSA-Host-Schlüsseln.
SFTP-ServerTsgcSFTPServerEinen Ordner bereitstellenSFTP v3 und SCP aus einem Stammordner, mit einem Jail pro Benutzer, einem Nur-Lese-Modus und einem Ereignis, um jede Operation zu erlauben oder zu verweigern.

Befehle, Shells und Tunnel

TsgcSSHClient öffnet eine authentifizierte SSH-Verbindung und führt darauf so viele Kanäle aus, wie du brauchst.

FunktionAPIHinweise
VerbindungHost, Port, Connect, DisconnectStandardmäßig Port 22.
Passwort-AuthentifizierungAuthentication.Username, Authentication.PasswordEinfache Anmeldung mit Benutzername und Passwort.
Authentifizierung per öffentlichem SchlüsselAuthentication.PrivateKeyFile, Authentication.PassphrasePrivate Schlüssel Ed25519, ECDSA und RSA in PEM- oder PKCS#8-Dateien, unter .NET auch im OpenSSH-Format.
Host-Schlüssel-PrüfungOnSSHHostKeyErhält den Schlüsseltyp und seinen Fingerabdruck, damit du beides mit deinem Known-Hosts-Speicher abgleichst und einen unbekannten oder geänderten Schlüssel ablehnst.
Remote-BefehlExecuteÖffnet einen Kanal, führt den Befehl aus und gibt seine Ausgabe als Zeichenkette zurück, mit Timeout.
Interaktive ShellOpenChannel, RequestPTY, RequestShellEine Terminalsitzung mit dem von dir gewählten Terminaltyp und der gewählten Größe.
Ein- und Ausgabe der ShellSendChannelData, OnSSHChannelDataSende, was der Benutzer eingibt, und empfange, was der Server ausgibt.
TerminalsteuerungSendWindowChange, SendSignal, SendEOFÄndere die Terminalgröße, sende ein Signal oder beende die Eingabe eines Kanals.
Exec- und Subsystem-KanäleRequestExec, RequestSubsystemKanalanfragen auf niedriger Ebene für eigene Protokolle über SSH.
Lokale PortweiterleitungOpenDirectTCPIPÖffnet einen direct-tcpip-Kanal zu einem Host und Port, die vom Server aus erreichbar sind.
Entfernte PortweiterleitungRequestForwarding, CancelForwardingBittet den Server, auf einem Port zu lauschen und dessen Verbindungen an den Client zurückzuleiten.
RekeyRekeyErneuert die Sitzungsschlüssel einer lange laufenden Verbindung.
Post-Quanten-SchlüsselaustauschPostQuantumKexStandardmäßig aktiv: bietet mlkem768x25519-sha256 zuerst an.

Schnelle Übertragungen, je eine Methode

TsgcSFTPClient implementiert SFTP v3 über denselben SSH-Transport, mit denselben Optionen für Authentifizierung und Schlüsselaustausch wie der SSH-Client.

FunktionAPIHinweise
Home-OrdnerRealPathLöst einen Pfad wie . zum absoluten Pfad auf dem Server auf.
OrdnerauflistungListDirectoryName, Größe, Änderungsdatum und Ordner-Kennzeichen jedes Eintrags.
Hoch- und HerunterladenPut, GetEin Aufruf pro Datei, mit 16 gleichzeitigen Anfragen. Eine 100-MB-Übertragung dauert in einem lokalen Netzwerk etwa eine Sekunde.
DateiverwaltungRename, Delete, MakeDirectory, RemoveDirectoryAlles, was ein Dateimanager braucht.
FortschrittOnSFTPProgressMeldet die übertragenen Bytes, bereit für einen Fortschrittsbalken.

Dateien und ganze Ordner

TsgcSCPClient kopiert Dateien über SSH auf jeden Server, der den Befehl scp erlaubt.

FunktionAPIHinweise
Einzelne DateienUpload, DownloadKopiert eine Datei zum oder vom entfernten Pfad.
OrdnerbäumeUploadFolder, DownloadFolderKopiert einen ganzen Ordner rekursiv.
DateizeitenPreserveTimesBehält die Änderungs- und Zugriffszeiten auf der Gegenseite bei.
FortschrittOnSCPProgressMeldet den Dateinamen und die übertragenen Bytes.

Dein eigener SSH-Dienst

TsgcSSHServer akzeptiert jeden Standard-SSH-Client, auch die Standard-Kommandozeilenwerkzeuge ssh, sftp und scp.

FunktionAPIHinweise
LauschenPort, ActiveStartet und stoppt den Server.
Host-SchlüsselHostKeyFiles, GenerateHostKeyEd25519Host-Schlüssel Ed25519, ECDSA und RSA. Die Klassenprozedur erzeugt für dich eine Ed25519-Schlüsseldatei.
Passwort-AuthentifizierungOnSSHAuthPasswordPrüfe Benutzername und Passwort gegen deinen eigenen Benutzerspeicher.
Authentifizierung per öffentlichem SchlüsselOnSSHAuthPublicKeyErhält den Schlüsseltyp und seinen SHA256-Fingerabdruck, damit du nur die Schlüssel akzeptierst, die du kennst.
Remote-BefehleOnSSHExec, SendChannelData, SendExitStatus, CloseChannelBeantwortet einen Befehl, meldet seinen Exit-Status und schließt den Kanal.
Interaktive ShellOnSSHShell, OnSSHChannelDataBediene eine Terminalsitzung aus deinem eigenen Code.
SubsystemeSFTPServerSubsystem-Anfragen wie sftp werden an einen verknüpften TsgcSFTPServer geleitet.
VerbindungsereignisseOnSSHConnect, OnSSHDisconnectProtokolliere jede Verbindung mit der Adresse der Gegenstelle.

Ein Dateiserver mit einem Jail pro Benutzer

TsgcSFTPServer wird in TsgcSSHServer eingesteckt und liefert Dateien aus einem Ordner, den Clients nicht verlassen können.

FunktionAPIHinweise
ProtokolleSFTP, SCPSFTP v3, dazu scp-Übertragungen, wenn aktiviert.
StammordnerRootFolderDer Ordner, den die Clients sehen. Pfade außerhalb davon werden abgelehnt.
Ein Ordner pro BenutzerOnSFTPUserRootGib die Wurzel jedes Benutzers zurück, sodass jeder nur seine eigenen Dateien sieht.
Nur-Lese-ModusReadOnlyLehnt Uploads, Löschungen und Umbenennungen ab.
Kontrolle pro OperationOnSFTPOperationWird bei jedem Öffnen zum Lesen oder Schreiben, Entfernen, Umbenennen, Anlegen und Entfernen von Ordnern, Ändern von Attributen und Auflisten ausgelöst. Setze aAccept auf False, und der Client erhält den Fehler "Zugriff verweigert".
Große DownloadsFlusskontrolleDownloads verbrauchen konstant viel Speicher, egal wie groß die Datei ist.

Post-Quanten zuerst

Client und Server bieten zuerst die stärksten Algorithmen an und greifen nur dann auf die klassischen zurück, wenn die Gegenseite sie braucht.

BereichAlgorithmenHinweise
Schlüsselaustauschmlkem768x25519-sha256ML-KEM-768 kombiniert mit X25519, der Standard der neuesten SSH-Versionen. Wird von Client und Server zuerst angeboten.
Klassischer Schlüsselaustauschcurve25519, ECDH, Diffie-Hellman group14 und group16Wird verwendet, wenn die Gegenseite den hybriden Austausch nicht unterstützt.
VerschlüsselungenAES-GCM, AES-CTRAES-GCM ist ab .NET 8 hardwarebeschleunigt.
Host- und BenutzerschlüsselEd25519, ECDSA, RSARSA-Signaturen mit SHA-2, ausgewählt über server-sig-algs.
SchlüsseldateienPEM, PKCS#8, OpenSSH (.NET)Verschlüsselte private Schlüssel werden mit einer Passphrase geöffnet.
Strikter SchlüsselaustauschTerrapin-AbwehrSchließt den Präfix-Abschneideangriff auf den SSH-Handshake.

Compiler, Frameworks und Zielplattformen

Dieselben fünf Komponenten in Delphi und .NET.

BereichDetail
DelphiDelphi 7 bis 13, für VCL, FMX, Konsolenanwendungen und Dienste.
Delphi-ZielplattformenWindows Win32, Windows Win64 und Linux64.
.NET.NET 8, .NET 9, .NET 10 und .NET Standard 2.0, in vollständig verwaltetem Code ohne OpenSSL.
DemosDemos\27.SSH: SSH-Client, SFTP-Client, SCP-Client, SSH-Server und SFTP-Server.
EditionenAlle fünf Komponenten sind außerdem in sgcWebSockets Enterprise enthalten, und All-Access enthält alles. Unter .NET gehören sie zum registrierten Paket, nicht zur Community-Edition.
LizenzierungEigenständig. Die sgcWebSockets Core Runtime ist enthalten, sgcCustomIndy gehört zur Bestellung und der volle Quellcode ist inklusive.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Baue mit sgcSSH

Lade die kostenlose Testversion herunter und führe deinen ersten Remote-Befehl oder SFTP-Upload aus Delphi oder .NET aus.