Produit autonome SSH et SFTP post-quantiques

sgcSSH : clients et serveurs SSH et SFTP pour Delphi et .NET

Cinq composants couvrent les deux extrémités d'une connexion SSH. TsgcSSHClient exécute des commandes distantes, ouvre un shell interactif avec un pty et redirige des ports. TsgcSFTPClient et TsgcSCPClient transfèrent des fichiers et des dossiers entiers. TsgcSSHServer et TsgcSFTPServer placent ton propre service SSH et SFTP dans ton application, avec une jail par utilisateur. L'échange de clés hybride post-quantique mlkem768x25519-sha256, le choix par défaut des dernières versions de SSH, est proposé en premier par le client comme par le serveur.

Code source complet
Delphi 7 à 13 et .NET
Échange de clés ML-KEM-768 + X25519 mlkem768x25519-sha256, proposé en premier des deux côtés
Clients SSH, SFTP, SCP
Serveurs SSH, SFTP
5 Composants Trois clients et deux serveurs
16 Requêtes SFTP en vol Un transfert de 100 Mo prend environ une seconde sur un réseau local
2 Langages Delphi et .NET, les mêmes cinq classes
100% Code source inclus Chaque composant et le runtime Core inclus
12 Mois de mises à jour Chaque version publiée tant que ta licence est active

Trois choses à savoir d'abord

Ce dont sgcSSH a besoin de ta part, si tu possèdes déjà ces composants et sur quoi repose la version Delphi. Les trois réponses sont courtes.

sgcSSH est autonome

En version autonome, le runtime sgcWebSockets Core est inclus, avec la cryptographie native sur laquelle repose l'échange de clés : ML-KEM-768, X25519, ECDH, AES-GCM et la famille SHA-2. Un seul SKU, un seul installateur.

Le code source complet est livré avec chaque licence, ce qui te permet de parcourir le code du protocole dans ton propre débogueur plutôt que de le voir disparaître dans un binaire.

Chevauchement d'édition

Déjà inclus dans ton édition sgcWebSockets ?

Les cinq composants SSH sont livrés dans sgcWebSockets Enterprise, et All-Access inclut tout. En .NET, ils sont livrés dans le package sgcWebSockets enregistré, pas dans l'édition Community gratuite.

sgcSSH existe pour le cas inverse : tu veux SSH et SFTP dans ton application sans licencier une édition complète de sgcWebSockets. Vérifie ce que ton édition couvre déjà avant d'acheter.

Complément requis

SSH pour Delphi nécessite sgcCustomIndy

Les composants Delphi reposent sur les unités SSH de la bibliothèque Indy modifiée que sgcCustomIndy fournit comme complément. sgcCustomIndy est toujours inclus lorsque tu commandes sgcSSH.

Le prix de sgcSSH affiché couvre déjà sgcCustomIndy.

Trois clients, deux serveurs

Chacun est un composant non visuel que tu déposes sur une fiche ou crées dans le code, enregistré sur la page de palette SGC SSH. Renseigne l'hôte et les identifiants, branche les événements, puis connecte-toi ou commence à écouter. Les classes .NET portent les mêmes noms.

Client SSH1 composant

Commandes, shells et tunnels

TsgcSSHClient se connecte avec un mot de passe ou une clé privée, et OnSSHHostKey te donne le type et l'empreinte de la clé d'hôte à comparer avec ton magasin d'hôtes connus. Execute exécute une commande et renvoie sa sortie en un seul appel. Pour une session interactive, OpenChannel, RequestPTY et RequestShell ouvrent un terminal, SendChannelData y écrit et OnSSHChannelData renvoie ce qu'affiche le serveur, avec SendWindowChange et SendSignal pour le reste du protocole de terminal. OpenDirectTCPIP redirige une connexion locale via le serveur, RequestForwarding demande au serveur de te rediriger un port distant et Rekey renouvelle les clés de session d'une connexion de longue durée.

TsgcSSHClient exec · shell · pty · redirection de ports · rekey
Client SFTP1 composant

Des transferts rapides, une méthode chacun

TsgcSFTPClient parle SFTP v3 sur la même connexion SSH. RealPath résout le dossier personnel, ListDirectory renvoie les noms, les tailles, les dates et l'indicateur de dossier, et Put et Get envoient et téléchargent un fichier en un seul appel. Rename, Delete, MakeDirectory et RemoveDirectory couvrent le reste d'un gestionnaire de fichiers, et OnSFTPProgress indique les octets transférés pour une barre de progression. Les transferts gardent 16 requêtes en vol au lieu d'attendre chaque bloc, si bien qu'un fichier de 100 Mo prend environ une seconde sur un réseau local.

TsgcSFTPClient SFTP v3 · 16 requêtes en vol
Client SCP1 composant

Fichiers et dossiers entiers avec scp

TsgcSCPClient copie des fichiers via SSH vers tout serveur qui autorise la commande scp, sans service de transfert de fichiers distinct. Upload et Download copient un fichier, UploadFolder et DownloadFolder copient une arborescence entière de façon récursive, et PreserveTimes conserve les dates de modification et d'accès de l'autre côté. OnSCPProgress indique le nom du fichier et les octets transférés.

TsgcSCPClient fichiers · dossiers · conserver les dates
Serveur SSH1 composant

Ton propre service SSH, dans ton processus

TsgcSSHServer écoute sur le port que tu choisis et prouve son identité avec des clés d'hôte Ed25519, ECDSA ou RSA chargées depuis HostKeyFiles, et GenerateHostKeyEd25519 en crée une pour toi. OnSSHAuthPassword et OnSSHAuthPublicKey décident qui entre, le second avec le type de clé et son empreinte SHA256. OnSSHExec répond aux commandes distantes, OnSSHShell sert une session interactive, et les demandes de sous-système sont routées vers ton gestionnaire ou vers TsgcSFTPServer. Tout client SSH standard peut s'y connecter, y compris les outils en ligne de commande standard ssh, sftp et scp.

TsgcSSHServer mot de passe · clé publique · exec · shell · sous-systèmes
Serveur SFTP1 composant

Un serveur de fichiers avec une jail par utilisateur

TsgcSFTPServer se relie au serveur SSH par sa propriété SFTPServer et sert SFTP v3 et, avec SCP activé, des transferts scp depuis RootFolder. Les clients ne peuvent pas en sortir. OnSFTPUserRoot donne à chaque utilisateur son propre dossier, ReadOnly refuse les envois, les suppressions et les renommages, et OnSFTPOperation se déclenche à chaque ouverture, suppression, renommage, changement de dossier, changement d'attributs et listage, si bien que tu autorises ou refuses chacun et que tu le journalises. Le contrôle de flux garde constante la mémoire d'un gros téléchargement, quelle que soit la taille du fichier.

TsgcSFTPServer SFTP v3 · SCP · jail par utilisateur · lecture seule

SSH et SFTP depuis ton propre code

Les composants sont des composants non visuels ordinaires, ils s'intègrent donc à ce que ton application est déjà : une application de bureau VCL ou FMX, un outil console, un service Windows, un démon Linux ou un worker .NET. Voici les schémas que construisent les clients, chacun associé au membre qui le pilote.

Exécuter des commandes de maintenance sur des serveurs Linux Execute

Redémarre un service, lis un journal ou vérifie l'espace disque depuis un outil Delphi ou .NET, et récupère la sortie sous forme de chaîne.

Une fenêtre de terminal intégrée RequestPTY

Ouvre un shell avec pty et affiche-le dans ta propre interface, pour des outils de support et des consoles d'appareils.

Échange de fichiers planifié avec des partenaires Put / Get

Envoie des factures et télécharge des rapports via SFTP depuis un service, avec des événements de progression et d'erreur.

Atteindre une base de données derrière un bastion OpenDirectTCPIP

Redirige une connexion via le serveur SSH au lieu d'ouvrir le port de la base de données sur le réseau.

Une boîte de dépôt SFTP dans ton produit OnSFTPUserRoot

Donne à chaque client un dossier privé, ta propre base d'utilisateurs décidant qui se connecte.

Un trafic qui reste privé dans le futur PostQuantumKex

L'échange hybride ML-KEM-768 et X25519 protège les sessions enregistrées aujourd'hui contre un futur ordinateur quantique.

Post-quantique d'abord, uniquement des algorithmes modernes

Le client et le serveur négocient les algorithmes les plus forts pris en charge des deux côtés, en commençant par l'échange de clés hybride post-quantique. Rien n'est à configurer pour en profiter.

mlkem768x25519-sha256 est proposé en premier

L'échange hybride combine ML-KEM-768 et X25519, de sorte que les clés de session restent sûres même face à un attaquant qui enregistre le trafic aujourd'hui et possédera un ordinateur quantique plus tard. C'est le choix par défaut des dernières versions de SSH, et les clients et serveurs SSH actuels le négocient automatiquement. PostQuantumKex est activé par défaut.

Algorithmes classiques en repli

Lorsque l'autre côté ne le prend pas en charge, l'échange se rabat sur curve25519, ECDH et Diffie-Hellman group14 et group16. Les chiffrements sont AES-GCM et AES-CTR, et les clés d'hôte et d'utilisateur sont Ed25519, ECDSA ou RSA.

Échange de clés strict contre Terrapin

L'échange de clés strict ferme l'attaque de troncature de préfixe Terrapin, et server-sig-algs permet au client de choisir une signature RSA avec SHA-2 plutôt que l'ancienne avec SHA-1. Les clés privées se chargent depuis des fichiers PEM et PKCS#8, et la version .NET lit aussi le format de clé OpenSSH.

Cryptographie native sur les deux plateformes

L'échange de clés s'appuie sur les unités de cryptographie native de sgcWebSockets en Delphi et sur du code entièrement managé en .NET, sans OpenSSL à déployer pour la version .NET. À partir de .NET 8, AES-GCM est accéléré par le matériel.

Exécuter une commande, servir un dossier

Les clients suivent une même forme : renseigne l'hôte et les identifiants, connecte-toi, appelle une méthode. Les serveurs en suivent une autre : renseigne le port et la clé d'hôte, branche les événements, active.

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 est activé par défaut, si bien que les deux sessions négocient mlkem768x25519-sha256 dès que le serveur le prend en charge.

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 store
end;

procedure TForm1.SFTPUserRoot(Sender: TObject; const aUsername: string;
  var aRootFolder: string);
begin
  aRootFolder := 'D:\sftp\' + aUsername;   // one jail per user
end;

Connecte-toi avec sftp -P 2222 user@127.0.0.1 ou scp -P 2222 file.txt user@127.0.0.1:/. Les démos de Demos\27.SSH couvrent les cinq composants.

Delphi et .NET, bureau et serveur

Les mêmes cinq composants sur les deux plateformes, pour les applications de bureau, les outils console et les services.

Delphi Delphi 7 à 13, VCL, FMX, console et services
Windows Win32 Windows Win64 Linux64
.NET Code entièrement managé, sans OpenSSL
.NET 8 .NET 9 .NET 10 .NET Standard 2.0
Composants Enregistrés sur la page de palette SGC SSH
TsgcSSHClient TsgcSFTPClient TsgcSCPClient TsgcSSHServer TsgcSFTPServer
Installateur d'essai L'essai sgcWebSockets All-Access inclut les composants SSH
Un seul téléchargement, les cinq composants

Télécharger l'installateur d'essai →

Un package autonome

sgcSSH est licencié séparément, à partir de €398 pour un seul développeur. Toutes les licences incluent le code source complet, 1 an de mises à jour et une réduction de renouvellement de 50 % à 70 % : 50 % en renouvelant un pack, 60 % pour deux, 70 % pour trois ou plus. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP, sgcREST, sgcCrypto et sgcSSH comptent chacun comme un pack.

sgcSSH

€398

Licences Single, Team et Site disponibles.

  • Client SSH : commandes, shell avec pty, redirection de ports, rekey
  • Clients SFTP et SCP pour fichiers et dossiers
  • Serveurs SSH et SFTP avec une jail par utilisateur
  • Échange de clés post-quantique mlkem768x25519-sha256
  • Runtime sgcWebSockets Core et sgcCustomIndy inclus
  • Delphi 7 à 13 et .NET
  • Code source complet
  • 1 an de mises à jour

sgcSSH inclut le runtime sgcWebSockets Core, il n'y a donc rien d'autre à acheter pour les composants SSH et SFTP.

Le paiement liste trois lignes : le droit au runtime sgcWebSockets Core, facturé à zéro, le pack sgcSSH lui-même et sgcCustomIndy, requis par les composants SSH Delphi. sgcCustomIndy est toujours inclus et le prix affiché le couvre déjà. Détails complets des tarifs.

3,000+Développeurs
20+Ans
761+Composants
30+Intégrations d'API
5Plateformes
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

Livre SSH et SFTP, prêts pour l'ère post-quantique

Des clients et des serveurs en code natif Delphi et .NET, avec le runtime inclus et le code source complet dans la boîte. Télécharge dès aujourd'hui l'installateur d'essai All-Access et connecte-toi à ton premier serveur.

Autres produits d'eSeGeCe

Associe sgcSSH à nos autres bibliothèques de composants pour Delphi, C++ Builder et .NET.

sgcWebSockets

La bibliothèque complète : clients et serveurs WebSocket, HTTP/2, IoT, P2P et composants d'IA. Son édition Enterprise inclut aussi les composants SSH et SFTP.

En savoir plus →

sgcCustomIndy

La bibliothèque Indy personnalisée sur laquelle repose sgcWebSockets Enterprise, packagée comme complément. Requise par les composants SSH Delphi, toujours incluse dans les commandes sgcSSH.

En savoir plus →

sgcCrypto

Chiffrements symétriques et asymétriques, hachage et algorithmes post-quantiques tels que ML-KEM et ML-DSA. Fourni gratuitement à partir de sgcWebSockets Standard.

En savoir plus →

sgcAuth

Clients OAuth2 et JWT, connexion par passkey WebAuthn, TOTP, LDAP, SAML et OpenID Connect, avec le runtime Core inclus.

En savoir plus →

sgcHTTP

Serveur HTTP, clients HTTP/2 et gRPC, ainsi que Google Cloud Pub/Sub, Calendar et Firebase Cloud Messaging, avec le runtime Core inclus.

En savoir plus →

sgcMQ

Composants clients natifs MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka et STOMP, avec le runtime Core inclus.

En savoir plus →