sgcSSH: SSH- & SFTP-Clients und -Server für Delphi & .NET
Fünf Komponenten decken beide Enden einer SSH-Verbindung ab. TsgcSSHClient führt Remote-Befehle aus, öffnet eine interaktive Shell mit pty und leitet Ports weiter. TsgcSFTPClient und TsgcSCPClient übertragen Dateien und ganze Ordner. TsgcSSHServer und TsgcSFTPServer bringen deinen eigenen SSH- und SFTP-Dienst in deine Anwendung, mit einem Jail pro Benutzer. Den hybriden Post-Quanten-Schlüsselaustausch mlkem768x25519-sha256, den Standard der neuesten SSH-Versionen, bieten Client und Server zuerst an.
SchlüsselaustauschML-KEM-768 + X25519mlkem768x25519-sha256, auf beiden Seiten zuerst angeboten
ClientsSSH, SFTP, SCP
ServerSSH, SFTP
5KomponentenDrei Clients und zwei Server
16SFTP-Anfragen gleichzeitigEine 100-MB-Übertragung dauert in einem lokalen Netzwerk etwa eine Sekunde
2SprachenDelphi und .NET, dieselben fünf Klassen
100%Quellcode enthaltenJede Komponente und die mitgelieferte Core Runtime
12Monate UpdatesJede Version, die veröffentlicht wird, während deine Lizenz aktiv ist
VOR DEM KAUF
Drei Dinge, die du vorher wissen solltest
Was sgcSSH von dir braucht, ob du diese Komponenten schon besitzt und worauf die Delphi-Version aufbaut. Alle drei Antworten sind kurz.
sgcSSH ist in sich geschlossen
Eigenständig ist die sgcWebSockets Core Runtime enthalten, zusammen mit der nativen Kryptografie, auf der der Schlüsselaustausch läuft: ML-KEM-768, X25519, ECDH, AES-GCM und die SHA-2-Familie. Ein SKU, ein Installer.
Der volle Quellcode gehört zu jeder Lizenz, sodass du den Protokollcode in deinem eigenen Debugger durchgehen kannst, statt ihn in einer Binärdatei verschwinden zu sehen.
Edition-Überschneidung
Schon in deiner sgcWebSockets-Edition enthalten?
Alle fünf SSH-Komponenten sind in sgcWebSockets Enterprise enthalten, und All-Access enthält alles. Unter .NET gehören sie zum registrierten sgcWebSockets-Paket, nicht zur kostenlosen Community-Edition.
sgcSSH gibt es für den umgekehrten Fall: Du willst SSH und SFTP in deiner Anwendung, ohne eine vollständige sgcWebSockets-Edition zu lizenzieren. Prüfe vor dem Kauf, was deine Edition bereits abdeckt.
Add-on erforderlich
Delphi-SSH braucht sgcCustomIndy
Die Delphi-Komponenten bauen auf den SSH-Units der gepatchten Indy-Bibliothek auf, die sgcCustomIndy als Add-on liefert. sgcCustomIndy ist immer enthalten, wenn du sgcSSH bestellst.
Der angezeigte sgcSSH-Preis deckt sgcCustomIndy bereits ab.
WAS ENTHALTEN IST
Drei Clients, zwei Server
Jede ist eine nicht visuelle Komponente, die du auf ein Formular ziehst oder im Code erzeugst, registriert auf der Palettenseite SGC SSH. Lege Host und Zugangsdaten fest, verbinde die Ereignisse und verbinde dich dann oder beginne zu lauschen. Die .NET-Klassen tragen dieselben Namen.
SSH-Client1 Komponente
Befehle, Shells und Tunnel
TsgcSSHClient verbindet sich mit einem Passwort oder einem privaten Schlüssel, und OnSSHHostKey liefert dir Typ und Fingerabdruck des Host-Schlüssels zum Abgleich mit deinem Known-Hosts-Speicher. Execute führt einen Befehl aus und gibt seine Ausgabe in einem Aufruf zurück. Für eine interaktive Sitzung öffnen OpenChannel, RequestPTY und RequestShell ein Terminal, SendChannelData schreibt hinein und OnSSHChannelData liefert, was der Server ausgibt, mit SendWindowChange und SendSignal für den Rest des Terminalprotokolls. OpenDirectTCPIP leitet eine lokale Verbindung über den Server weiter, RequestForwarding bittet den Server, einen entfernten Port zu dir zurückzuleiten, und Rekey erneuert die Sitzungsschlüssel einer lange laufenden Verbindung.
TsgcSFTPClient spricht SFTP v3 über dieselbe SSH-Verbindung. RealPath löst den Home-Ordner auf, ListDirectory liefert Namen, Größen, Datumsangaben und das Ordner-Kennzeichen, und Put und Get laden eine Datei in einem Aufruf hoch und herunter. Rename, Delete, MakeDirectory und RemoveDirectory decken den Rest eines Dateimanagers ab, und OnSFTPProgress meldet die übertragenen Bytes für einen Fortschrittsbalken. Übertragungen halten 16 Anfragen gleichzeitig offen, statt auf jeden Block zu warten, sodass eine 100-MB-Datei in einem lokalen Netzwerk etwa eine Sekunde braucht.
TsgcSCPClient kopiert Dateien über SSH auf jeden Server, der den Befehl scp erlaubt, ohne separaten Dateiübertragungsdienst. Upload und Download kopieren eine Datei, UploadFolder und DownloadFolder kopieren einen ganzen Ordnerbaum rekursiv, und PreserveTimes behält die Änderungs- und Zugriffszeiten auf der Gegenseite bei. OnSCPProgress meldet den Dateinamen und die übertragenen Bytes.
TsgcSSHServer lauscht auf dem von dir gewählten Port und weist sich mit Ed25519-, ECDSA- oder RSA-Host-Schlüsseln aus, die aus HostKeyFiles geladen werden, und GenerateHostKeyEd25519 erzeugt einen für dich. OnSSHAuthPassword und OnSSHAuthPublicKey entscheiden, wer hineinkommt, der zweite mit dem Schlüsseltyp und seinem SHA256-Fingerabdruck. OnSSHExec beantwortet Remote-Befehle, OnSSHShell bedient eine interaktive Sitzung, und Subsystem-Anfragen werden an deinen Handler oder an TsgcSFTPServer geleitet. Jeder Standard-SSH-Client kann sich verbinden, auch die Standard-Kommandozeilenwerkzeuge ssh, sftp und scp.
TsgcSFTPServer wird über seine Eigenschaft SFTPServer mit dem SSH-Server verbunden und liefert SFTP v3 und, bei aktiviertem SCP, scp-Übertragungen aus RootFolder. Clients können diesen Ordner nicht verlassen. OnSFTPUserRoot gibt jedem Benutzer einen eigenen Ordner, ReadOnly lehnt Uploads, Löschungen und Umbenennungen ab, und OnSFTPOperation wird bei jedem Öffnen, Entfernen, Umbenennen, Ordnerwechsel, Attributwechsel und Auflisten ausgelöst, sodass du jede Operation erlaubst oder verweigerst und protokollierst. Flusskontrolle hält den Speicherbedarf eines großen Downloads konstant, egal wie groß die Datei ist.
TsgcSFTPServerSFTP v3 · SCP · Jail pro Benutzer · schreibgeschützt
ANWENDUNGSFÄLLE
SSH und SFTP aus deinem eigenen Code
Die Komponenten sind gewöhnliche nicht visuelle Komponenten und passen daher in jede Anwendung: eine VCL- oder FMX-Desktop-Anwendung, ein Konsolenwerkzeug, einen Windows-Dienst, einen Linux-Daemon oder einen .NET-Worker. Das sind die Muster, die Kunden bauen, jeweils dem Mitglied zugeordnet, das es antreibt.
EX
Wartungsbefehle auf Linux-Servern ausführenExecute
Starte einen Dienst neu, lies ein Log oder prüfe den Speicherplatz aus einem Delphi- oder .NET-Werkzeug und erhalte die Ausgabe als Zeichenkette.
TM
Ein eingebettetes TerminalfensterRequestPTY
Öffne eine Shell mit pty und zeige sie in deiner eigenen Oberfläche an, für Support-Werkzeuge und Gerätekonsolen.
FT
Geplanter Dateiaustausch mit PartnernPut / Get
Lade Rechnungen hoch und Berichte herunter, per SFTP aus einem Dienst, mit Fortschritts- und Fehlerereignissen.
TN
Eine Datenbank hinter einem Bastion-Host erreichenOpenDirectTCPIP
Leite eine Verbindung über den SSH-Server weiter, statt den Datenbankport zum Netzwerk hin zu öffnen.
SV
Eine SFTP-Dropbox in deinem ProduktOnSFTPUserRoot
Gib jedem Kunden einen privaten Ordner, wobei deine eigene Benutzerdatenbank entscheidet, wer sich anmeldet.
PQ
Datenverkehr, der auch in Zukunft privat bleibtPostQuantumKex
Der hybride Austausch aus ML-KEM-768 und X25519 schützt heute aufgezeichnete Sitzungen vor einem künftigen Quantencomputer.
SO FUNKTIONIERT ES
Post-Quanten zuerst, nur moderne Algorithmen
Client und Server handeln die stärksten Algorithmen aus, die beide Seiten unterstützen, beginnend mit dem hybriden Post-Quanten-Schlüsselaustausch. Dafür muss nichts konfiguriert werden.
mlkem768x25519-sha256 wird zuerst angeboten
Der hybride Austausch kombiniert ML-KEM-768 mit X25519, sodass die Sitzungsschlüssel selbst gegen einen Angreifer sicher bleiben, der den Datenverkehr heute aufzeichnet und später einen Quantencomputer besitzt. Er ist der Standard der neuesten SSH-Versionen, und aktuelle SSH-Clients und -Server handeln ihn automatisch aus. PostQuantumKex ist standardmäßig aktiviert.
Klassische Algorithmen als Rückfall
Wenn die Gegenseite ihn nicht unterstützt, fällt der Austausch auf curve25519, ECDH und Diffie-Hellman group14 und group16 zurück. Die Verschlüsselungen sind AES-GCM und AES-CTR, und Host- und Benutzerschlüssel sind Ed25519, ECDSA oder RSA.
Strikter Schlüsselaustausch gegen Terrapin
Der strikte Schlüsselaustausch schließt den Terrapin-Präfix-Abschneideangriff, und server-sig-algs lässt den Client eine RSA-Signatur mit SHA-2 statt der veralteten mit SHA-1 wählen. Private Schlüssel werden aus PEM- und PKCS#8-Dateien geladen, und die .NET-Version liest auch das OpenSSH-Schlüsselformat.
Native Kryptografie auf beiden Plattformen
Der Schlüsselaustausch läuft in Delphi auf den nativen Kryptografie-Units von sgcWebSockets und in .NET auf vollständig verwaltetem Code, ohne dass für die .NET-Version OpenSSL ausgeliefert werden muss. Ab .NET 8 ist AES-GCM hardwarebeschleunigt.
SCHNELLSTART
Einen Befehl ausführen, einen Ordner bereitstellen
Die Clients folgen einer Form: Host und Zugangsdaten festlegen, verbinden, eine Methode aufrufen. Die Server folgen einer anderen: Port und Host-Schlüssel festlegen, Ereignisse verbinden, aktivieren.
var
SSH: TsgcSSHClient;
SFTP: TsgcSFTPClient;
begin// run a command
SSH := TsgcSSHClient.Create(nil);
SSH.Host := 'build01.example.com';
SSH.Port := 22;
SSH.Authentication.Username := 'deploy';
SSH.Authentication.PrivateKeyFile := 'C:\keys\id_ed25519.pem';
SSH.OnSSHHostKey := SSHHostKey; // check the fingerprint
SSH.Connect;
Memo1.Text := SSH.Execute('uname -a');
SSH.Disconnect;
// upload a file over SFTP
SFTP := TsgcSFTPClient.Create(nil);
SFTP.Host := 'files.example.com';
SFTP.Authentication.Username := 'partner';
SFTP.Authentication.Password := 'secret';
SFTP.Connect;
SFTP.Put('C:\export\invoices.zip', '/upload/invoices.zip');
SFTP.Disconnect;
end;
PostQuantumKex ist standardmäßig aktiviert, daher handeln beide Sitzungen mlkem768x25519-sha256 aus, sobald der Server es unterstützt.
begin
SFTPServer := TsgcSFTPServer.Create(nil);
SFTPServer.RootFolder := 'D:\sftp';
SFTPServer.SFTP := True;
SFTPServer.SCP := True;
SFTPServer.OnSFTPUserRoot := SFTPUserRoot;
SSHServer := TsgcSSHServer.Create(nil);
SSHServer.Port := 2222;
SSHServer.HostKeyFiles.Text := 'hostkey_ed25519.pem';
SSHServer.OnSSHAuthPassword := SSHAuthPassword;
SSHServer.SFTPServer := SFTPServer;
SSHServer.Active := True;
end;
procedure TForm1.SSHAuthPassword(Sender: TObject;
aConnection: TsgcSSHServerConnection; const aUsername, aPassword: string;
var aAccept: Boolean);
begin
aAccept := CheckUser(aUsername, aPassword); // your user storeend;
procedure TForm1.SFTPUserRoot(Sender: TObject; const aUsername: string;
var aRootFolder: string);
begin
aRootFolder := 'D:\sftp\' + aUsername; // one jail per userend;
Verbinde dich mit sftp -P 2222 user@127.0.0.1 oder scp -P 2222 file.txt user@127.0.0.1:/. Die Demos in Demos\27.SSH decken alle fünf Komponenten ab.
PLATTFORMEN
Delphi und .NET, Desktop und Server
Dieselben fünf Komponenten auf beiden Plattformen, für Desktop-Anwendungen, Konsolenwerkzeuge und Dienste.
DelphiDelphi 7 bis 13, VCL, FMX, Konsole und Dienste
Windows Win32Windows Win64Linux64
.NETVollständig verwalteter Code, kein OpenSSL
.NET 8.NET 9.NET 10.NET Standard 2.0
KomponentenRegistriert auf der Palettenseite SGC SSH
sgcSSH wird eigenständig lizenziert, ab €398 für einen einzelnen Entwickler. Alle Lizenzen enthalten den vollen Quellcode, 1 Jahr Updates und einen Verlängerungsrabatt von 50% bis 70%: 50% bei Verlängerung eines Packs, 60% bei zwei, 70% bei drei oder mehr. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP, sgcREST, sgcCrypto und sgcSSH zählen jeweils als ein Pack.
sgcSSH
€398
Single-, Team- und Site-Lizenzen verfügbar.
SSH-Client: Befehle, Shell mit pty, Portweiterleitung, Rekey
Der Checkout listet drei Positionen: die Berechtigung für die sgcWebSockets Core Runtime, die mit null berechnet wird, das Pack sgcSSH selbst und sgcCustomIndy, das die Delphi-SSH-Komponenten benötigen. sgcCustomIndy ist immer enthalten, und der angezeigte Preis deckt es bereits ab. Alle Preisdetails.
3,000+Entwickler
20+Jahre
761+Komponenten
30+API-Integrationen
5Plattformen
30 Tage Geld-zurück-GarantieNicht zufrieden? Fordere innerhalb von 30 Tagen nach dem Kauf eine vollständige Rückerstattung an. Rückerstattungsrichtlinie ansehen
SSH und SFTP ausliefern, bereit für die Post-Quanten-Ära
Clients und Server aus nativem Delphi- und .NET-Code, mit mitgelieferter Runtime und vollem Quellcode im Paket. Lade noch heute den All-Access-Trial-Installer herunter und verbinde dich mit deinem ersten Server.
Kombiniere sgcSSH mit unseren anderen Komponentenbibliotheken für Delphi, C++ Builder und .NET.
sgcWebSockets
Die vollständige Bibliothek: WebSocket-Clients und -Server, HTTP/2, IoT, P2P und KI-Komponenten. Ihre Enterprise-Edition enthält auch die SSH- und SFTP-Komponenten.
Die angepasste Indy-Bibliothek, auf der sgcWebSockets Enterprise aufbaut, als Add-on verpackt. Wird von den Delphi-SSH-Komponenten benötigt und ist in sgcSSH-Bestellungen immer enthalten.
Symmetrische und asymmetrische Verschlüsselung, Hashing und Post-Quanten-Algorithmen wie ML-KEM und ML-DSA. Wird ab sgcWebSockets Standard kostenlos mitgeliefert.