sgcSSH matrice des fonctionnalités

Tout ce que fait sgcSSH, réparti sur les trois composants clients, les deux composants serveurs et les algorithmes qu'ils négocient. Les mêmes classes existent en Delphi et en .NET, et chaque licence inclut le code source complet.

Client SSH

Commandes, shells, redirection et rekey

Client SFTP

Transferts rapides, 16 requêtes en vol

Client SCP

Fichiers et dossiers entiers

Serveur SSH

Authentification, exec, shell et sous-systèmes

Serveur SFTP

Une jail par utilisateur, mode lecture seule

Algorithmes

Échange de clés post-quantique en premier

Plateformes

Delphi 7 à 13 et .NET

sgcSSH est autonome. Il est livré avec le runtime sgcWebSockets Core inclus, et le complément sgcCustomIndy sur lequel reposent les composants Delphi est toujours inclus dans la commande.

Aussi dans sgcWebSockets. Les cinq composants sont aussi livrés dans sgcWebSockets Enterprise, et All-Access inclut tout. En .NET, ils font partie du package enregistré, pas de l'édition Community gratuite. sgcSSH est le package autonome pour les équipes qui n'ont besoin que de SSH et SFTP.

Cinq composants de palette

Trois clients et deux serveurs, enregistrés sur la page de palette SGC SSH.

ComposantClasseFonctionDescription
Client SSHTsgcSSHClientExécuter des commandesCommandes distantes, un shell interactif avec pty, la redirection de ports locale et distante, et le rekey des sessions de longue durée.
Client SFTPTsgcSFTPClientTransférer des fichiersOpérations de gestionnaire de fichiers SFTP v3 avec 16 requêtes en vol, si bien qu'un transfert de 100 Mo prend environ une seconde sur un réseau local.
Client SCPTsgcSCPClientCopier des fichiers et des dossiersEnvoie et télécharge des fichiers isolés ou des arborescences entières avec scp, en conservant si besoin les dates des fichiers.
Serveur SSHTsgcSSHServerAccepter des clients SSHAuthentification par mot de passe et par clé publique, requêtes exec, shell et de sous-système, avec des clés d'hôte Ed25519, ECDSA et RSA.
Serveur SFTPTsgcSFTPServerServir un dossierSFTP v3 et SCP depuis un dossier racine, avec une jail par utilisateur, un mode lecture seule et un événement pour autoriser ou refuser chaque opération.

Commandes, shells et tunnels

TsgcSSHClient ouvre une connexion SSH authentifiée et y exécute autant de canaux que tu en as besoin.

CapacitéAPINotes
ConnexionHost, Port, Connect, DisconnectPort 22 par défaut.
Authentification par mot de passeAuthentication.Username, Authentication.PasswordConnexion simple avec nom d'utilisateur et mot de passe.
Authentification par clé publiqueAuthentication.PrivateKeyFile, Authentication.PassphraseClés privées Ed25519, ECDSA et RSA dans des fichiers PEM ou PKCS#8, et aussi au format OpenSSH en .NET.
Vérification de la clé d'hôteOnSSHHostKeyReçoit le type de clé et son empreinte, pour que tu les compares à ton magasin d'hôtes connus et refuses une clé inconnue ou modifiée.
Commande distanteExecuteOuvre un canal, exécute la commande et renvoie sa sortie sous forme de chaîne, avec un délai d'expiration.
Shell interactifOpenChannel, RequestPTY, RequestShellUne session de terminal avec le type et la taille de terminal que tu choisis.
Entrée et sortie du shellSendChannelData, OnSSHChannelDataEnvoie ce que l'utilisateur tape, reçois ce que le serveur affiche.
Contrôle du terminalSendWindowChange, SendSignal, SendEOFRedimensionne le terminal, envoie un signal ou termine l'entrée d'un canal.
Canaux exec et de sous-systèmeRequestExec, RequestSubsystemRequêtes de canal de bas niveau pour des protocoles personnalisés sur SSH.
Redirection de ports localeOpenDirectTCPIPOuvre un canal direct-tcpip vers un hôte et un port joignables depuis le serveur.
Redirection de ports distanteRequestForwarding, CancelForwardingDemande au serveur d'écouter sur un port et de rediriger ses connexions vers le client.
RekeyRekeyRenouvelle les clés de session d'une connexion de longue durée.
Échange de clés post-quantiquePostQuantumKexActivé par défaut : propose mlkem768x25519-sha256 en premier.

Des transferts rapides, une méthode chacun

TsgcSFTPClient implémente SFTP v3 sur le même transport SSH, avec les mêmes options d'authentification et d'échange de clés que le client SSH.

CapacitéAPINotes
Dossier personnelRealPathRésout un chemin tel que . en chemin absolu sur le serveur.
Liste d'un dossierListDirectoryNom, taille, date de modification et indicateur de dossier de chaque entrée.
Envoi et téléchargementPut, GetUn appel par fichier, avec 16 requêtes en vol. Un transfert de 100 Mo prend environ une seconde sur un réseau local.
Gestion de fichiersRename, Delete, MakeDirectory, RemoveDirectoryTout ce dont un gestionnaire de fichiers a besoin.
ProgressionOnSFTPProgressIndique les octets transférés, prêt pour une barre de progression.

Fichiers et dossiers entiers

TsgcSCPClient copie des fichiers via SSH vers tout serveur qui autorise la commande scp.

CapacitéAPINotes
Fichiers isolésUpload, DownloadCopie un fichier vers ou depuis le chemin distant.
ArborescencesUploadFolder, DownloadFolderCopie un dossier entier de façon récursive.
Dates des fichiersPreserveTimesConserve les dates de modification et d'accès de l'autre côté.
ProgressionOnSCPProgressIndique le nom du fichier et les octets transférés.

Ton propre service SSH

TsgcSSHServer accepte tout client SSH standard, y compris les outils en ligne de commande standard ssh, sftp et scp.

CapacitéAPINotes
ÉcoutePort, ActiveDémarre et arrête le serveur.
Clés d'hôteHostKeyFiles, GenerateHostKeyEd25519Clés d'hôte Ed25519, ECDSA et RSA. La procédure de classe crée pour toi un fichier de clé Ed25519.
Authentification par mot de passeOnSSHAuthPasswordVérifie le nom d'utilisateur et le mot de passe auprès de ton propre magasin d'utilisateurs.
Authentification par clé publiqueOnSSHAuthPublicKeyReçoit le type de clé et son empreinte SHA256, pour que tu n'acceptes que les clés que tu connais.
Commandes distantesOnSSHExec, SendChannelData, SendExitStatus, CloseChannelRépond à une commande, indique son statut de sortie et ferme le canal.
Shell interactifOnSSHShell, OnSSHChannelDataSers une session de terminal depuis ton propre code.
Sous-systèmesSFTPServerLes demandes de sous-système telles que sftp sont routées vers un TsgcSFTPServer lié.
Événements de connexionOnSSHConnect, OnSSHDisconnectJournalise chaque connexion avec l'adresse du pair.

Un serveur de fichiers avec une jail par utilisateur

TsgcSFTPServer se branche sur TsgcSSHServer et sert des fichiers depuis un dossier que les clients ne peuvent pas quitter.

CapacitéAPINotes
ProtocolesSFTP, SCPSFTP v3, plus les transferts scp lorsqu'ils sont activés.
Dossier racineRootFolderLe dossier que voient les clients. Les chemins en dehors sont refusés.
Un dossier par utilisateurOnSFTPUserRootRenvoie la racine de chaque utilisateur, de sorte que chacun ne voit que ses propres fichiers.
Mode lecture seuleReadOnlyRefuse les envois, les suppressions et les renommages.
Contrôle par opérationOnSFTPOperationSe déclenche à chaque ouverture en lecture ou en écriture, suppression, renommage, création et suppression de dossier, changement d'attributs et listage. Mets aAccept à False et le client reçoit une erreur d'autorisation refusée.
Gros téléchargementsContrôle de fluxLes téléchargements utilisent une mémoire constante, quelle que soit la taille du fichier.

Post-quantique d'abord

Le client et le serveur proposent d'abord les algorithmes les plus forts et ne se rabattent sur les classiques que lorsque l'autre côté en a besoin.

DomaineAlgorithmesNotes
Échange de clésmlkem768x25519-sha256ML-KEM-768 combiné à X25519, le choix par défaut des dernières versions de SSH. Proposé en premier par le client et par le serveur.
Échange de clés classiquecurve25519, ECDH, Diffie-Hellman group14 et group16Utilisé lorsque l'autre côté ne prend pas en charge l'échange hybride.
ChiffrementsAES-GCM, AES-CTRAES-GCM est accéléré par le matériel à partir de .NET 8.
Clés d'hôte et d'utilisateurEd25519, ECDSA, RSASignatures RSA avec SHA-2, sélectionnées via server-sig-algs.
Fichiers de cléPEM, PKCS#8, OpenSSH (.NET)Les clés privées chiffrées s'ouvrent avec une phrase secrète.
Échange de clés strictParade à TerrapinFerme l'attaque de troncature de préfixe contre le handshake SSH.

Compilateurs, frameworks et cibles

Les mêmes cinq composants en Delphi et .NET.

DomaineDétail
DelphiDelphi 7 à 13, pour VCL, FMX, les applications console et les services.
Cibles DelphiWindows Win32, Windows Win64 et Linux64.
.NET.NET 8, .NET 9, .NET 10 et .NET Standard 2.0, en code entièrement managé et sans OpenSSL.
DémosDemos\27.SSH : client SSH, client SFTP, client SCP, serveur SSH et serveur SFTP.
ÉditionsLes cinq composants sont aussi livrés dans sgcWebSockets Enterprise, et All-Access inclut tout. En .NET, ils sont livrés dans le package enregistré, pas dans l'édition Community.
LicencesAutonome. Le runtime sgcWebSockets Core est inclus, sgcCustomIndy est inclus dans la commande et le code source complet est fourni.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Construis avec sgcSSH

Télécharge l'essai gratuit et exécute ta première commande distante ou ton premier envoi SFTP depuis Delphi ou .NET.