sgcSSH-functiematrix

Alles wat sgcSSH doet, uitgesplitst over de drie clientcomponenten, de twee servercomponenten en de algoritmen waarover ze onderhandelen. Dezelfde klassen bestaan in Delphi en .NET, en elke licentie bevat de volledige broncode.

SSH-client

Opdrachten, shells, forwarding en rekey

SFTP-client

Snelle overdracht, 16 requests tegelijk

SCP-client

Bestanden en hele mappen

SSH-server

Authenticatie, exec, shell en subsystemen

SFTP-server

Een jail per gebruiker, alleen-lezenmodus

Algoritmen

Eerst post-quantum sleuteluitwisseling

Platforms

Delphi 7 tot 13 en .NET

sgcSSH is zelfstandig. Het wordt geleverd met de sgcWebSockets Core runtime erin, en de sgcCustomIndy-add-on waarop de Delphi-componenten zijn gebouwd is altijd inbegrepen in de bestelling.

Ook in sgcWebSockets. Alle vijf de componenten zitten ook in sgcWebSockets Enterprise, en All-Access omvat alles. Op .NET maken ze deel uit van het geregistreerde pakket, niet van de gratis Community-editie. sgcSSH is het zelfstandige pakket voor teams die alleen SSH en SFTP nodig hebben.

Vijf palletcomponenten

Drie clients en twee servers, geregistreerd op de paletpagina SGC SSH.

ComponentKlasseTaakBeschrijving
SSH-clientTsgcSSHClientOpdrachten uitvoerenOpdrachten op afstand, een interactieve shell met een pty, lokale en externe port forwarding en rekey van langlopende sessies.
SFTP-clientTsgcSFTPClientBestanden overdragenBestandsbeheerhandelingen via SFTP v3 met 16 requests tegelijk, zodat een overdracht van 100 MB ongeveer een seconde duurt op een lokaal netwerk.
SCP-clientTsgcSCPClientBestanden en mappen kopiërenUpload en download losse bestanden of hele mapstructuren met scp, desgewenst met behoud van de bestandstijden.
SSH-serverTsgcSSHServerSSH-clients accepterenAuthenticatie met wachtwoord en publieke sleutel, exec-, shell- en subsysteemverzoeken, met Ed25519-, ECDSA- en RSA-hostsleutels.
SFTP-serverTsgcSFTPServerEen map serverenSFTP v3 en SCP vanuit een hoofdmap, met een jail per gebruiker, een alleen-lezenmodus en een event om elke handeling toe te staan of te weigeren.

Opdrachten, shells en tunnels

TsgcSSHClient opent één geauthenticeerde SSH-verbinding en draait daar zoveel kanalen op als je nodig hebt.

MogelijkheidAPIOpmerkingen
VerbindingHost, Port, Connect, DisconnectStandaard poort 22.
WachtwoordauthenticatieAuthentication.Username, Authentication.PasswordGewoon aanmelden met gebruikersnaam en wachtwoord.
Authenticatie met publieke sleutelAuthentication.PrivateKeyFile, Authentication.PassphrasePrivate keys van Ed25519, ECDSA en RSA in PEM- of PKCS#8-bestanden, en op .NET ook in het OpenSSH-formaat.
Controle van de hostsleutelOnSSHHostKeyOntvangt het sleuteltype en de vingerafdruk, zodat je die vergelijkt met je opslag van bekende hosts en een onbekende of gewijzigde sleutel weigert.
Opdracht op afstandExecuteOpent een kanaal, voert de opdracht uit en geeft de uitvoer terug als string, met een timeout.
Interactieve shellOpenChannel, RequestPTY, RequestShellEen terminalsessie met het terminaltype en de grootte die je kiest.
Invoer en uitvoer van de shellSendChannelData, OnSSHChannelDataVerstuur wat de gebruiker typt, ontvang wat de server afdrukt.
TerminalbesturingSendWindowChange, SendSignal, SendEOFPas de terminalgrootte aan, stuur een signaal of beëindig de invoer van een kanaal.
Exec- en subsysteemkanalenRequestExec, RequestSubsystemKanaalverzoeken op laag niveau voor eigen protocollen over SSH.
Lokale port forwardingOpenDirectTCPIPOpent een direct-tcpip-kanaal naar een host en poort die vanaf de server bereikbaar zijn.
Externe port forwardingRequestForwarding, CancelForwardingVraagt de server om op een poort te luisteren en de verbindingen terug te sturen naar de client.
RekeyRekeyVernieuwt de sessiesleutels van een langlopende verbinding.
Post-quantum sleuteluitwisselingPostQuantumKexStandaard aan: biedt mlkem768x25519-sha256 als eerste aan.

Snelle overdracht, één methode per taak

TsgcSFTPClient implementeert SFTP v3 over hetzelfde SSH-transport, met dezelfde authenticatie- en sleuteluitwisselingsopties als de SSH-client.

MogelijkheidAPIOpmerkingen
HomemapRealPathZet een pad zoals . om naar het absolute pad op de server.
MaplijstListDirectoryNaam, grootte, wijzigingsdatum en mapvlag van elk item.
Uploaden en downloadenPut, GetEén aanroep per bestand, met 16 requests tegelijk. Een overdracht van 100 MB duurt ongeveer een seconde op een lokaal netwerk.
BestandsbeheerRename, Delete, MakeDirectory, RemoveDirectoryAlles wat een bestandsbeheerder nodig heeft.
VoortgangOnSFTPProgressMeldt de overgedragen bytes, klaar voor een voortgangsbalk.

Bestanden en hele mappen

TsgcSCPClient kopieert bestanden via SSH naar elke server die het commando scp toestaat.

MogelijkheidAPIOpmerkingen
Losse bestandenUpload, DownloadKopieer één bestand naar of van het externe pad.
MapstructurenUploadFolder, DownloadFolderKopieer recursief een hele map.
BestandstijdenPreserveTimesBehoudt de wijzigings- en toegangstijden aan de andere kant.
VoortgangOnSCPProgressMeldt de bestandsnaam en de overgedragen bytes.

Je eigen SSH-service

TsgcSSHServer accepteert elke standaard SSH-client, inclusief de standaard opdrachtregeltools ssh, sftp en scp.

MogelijkheidAPIOpmerkingen
LuisterenPort, ActiveStart en stop de server.
HostsleutelsHostKeyFiles, GenerateHostKeyEd25519Ed25519-, ECDSA- en RSA-hostsleutels. De class procedure maakt een Ed25519-sleutelbestand voor je aan.
WachtwoordauthenticatieOnSSHAuthPasswordControleer de gebruikersnaam en het wachtwoord in je eigen gebruikersopslag.
Authenticatie met publieke sleutelOnSSHAuthPublicKeyOntvangt het sleuteltype en de SHA256-vingerafdruk, zodat je alleen de sleutels accepteert die je kent.
Opdrachten op afstandOnSSHExec, SendChannelData, SendExitStatus, CloseChannelBeantwoord een opdracht, meld de exitstatus en sluit het kanaal.
Interactieve shellOnSSHShell, OnSSHChannelDataBedien een terminalsessie vanuit je eigen code.
SubsystemenSFTPServerSubsysteemverzoeken zoals sftp worden doorgestuurd naar een gekoppelde TsgcSFTPServer.
VerbindingseventsOnSSHConnect, OnSSHDisconnectLeg elke verbinding vast met het adres van de peer.

Een bestandsserver met een jail per gebruiker

TsgcSFTPServer koppelt aan TsgcSSHServer en serveert bestanden uit een map die clients niet kunnen verlaten.

MogelijkheidAPIOpmerkingen
ProtocollenSFTP, SCPSFTP v3, plus scp-overdrachten wanneer ingeschakeld.
HoofdmapRootFolderDe map die aan de clients wordt getoond. Paden daarbuiten worden geweigerd.
Eén map per gebruikerOnSFTPUserRootGeef de hoofdmap van elke gebruiker terug, zodat elke gebruiker alleen zijn eigen bestanden ziet.
Alleen-lezenmodusReadOnlyWeigert uploads, verwijderingen en hernoemingen.
Controle per handelingOnSFTPOperationWordt geactiveerd bij elke open voor lezen of schrijven, verwijdering, hernoeming, aanmaken en verwijderen van mappen, kenmerkwijziging en lijst. Zet aAccept op False en de client krijgt een foutmelding dat toestemming is geweigerd.
Grote downloadsFlow controlDownloads gebruiken constant geheugen, welke bestandsgrootte ook.

Eerst post-quantum

Client en server bieden de sterkste algoritmen als eerste aan en vallen alleen terug op de klassieke wanneer de andere kant dat nodig heeft.

OnderdeelAlgoritmenOpmerkingen
Sleuteluitwisselingmlkem768x25519-sha256ML-KEM-768 gecombineerd met X25519, de standaard van de nieuwste SSH-releases. Wordt zowel door de client als door de server als eerste aangeboden.
Klassieke sleuteluitwisselingcurve25519, ECDH, Diffie-Hellman group14 en group16Gebruikt wanneer de andere kant de hybride uitwisseling niet ondersteunt.
CiphersAES-GCM, AES-CTRAES-GCM is hardwarematig versneld op .NET 8 en later.
Host- en gebruikerssleutelsEd25519, ECDSA, RSARSA-handtekeningen met SHA-2, gekozen via server-sig-algs.
SleutelbestandenPEM, PKCS#8, OpenSSH (.NET)Versleutelde private keys worden geopend met een passphrase.
Strict key exchangeTerrapin-mitigatieSluit de aanval met prefixafkapping op de SSH-handshake.

Compilers, frameworks en doelplatforms

Dezelfde vijf componenten op Delphi en .NET.

OnderdeelDetail
DelphiDelphi 7 tot en met 13, voor VCL, FMX, consoletoepassingen en services.
Delphi-doelplatformsWindows Win32, Windows Win64 en Linux64.
.NET.NET 8, .NET 9, .NET 10 en .NET Standard 2.0, in volledig beheerde code zonder OpenSSL.
Demo'sDemos\27.SSH: SSH-client, SFTP-client, SCP-client, SSH-server en SFTP-server.
EditiesAlle vijf de componenten zitten ook in sgcWebSockets Enterprise, en All-Access omvat alles. Op .NET zitten ze in het geregistreerde pakket, niet in de Community-editie.
LicentiesZelfstandig. De sgcWebSockets Core runtime is meegeleverd, sgcCustomIndy zit in de bestelling en de volledige broncode is inbegrepen.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Bouw met sgcSSH

Download de gratis proefversie en voer je eerste opdracht op afstand of SFTP-upload uit vanuit Delphi of .NET.