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.
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.
Opdrachten, shells, forwarding en rekey
Snelle overdracht, 16 requests tegelijk
Bestanden en hele mappen
Authenticatie, exec, shell en subsystemen
Een jail per gebruiker, alleen-lezenmodus
Eerst post-quantum sleuteluitwisseling
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.
Drie clients en twee servers, geregistreerd op de paletpagina SGC SSH.
| Component | Klasse | Taak | Beschrijving |
|---|---|---|---|
| SSH-client | TsgcSSHClient | Opdrachten uitvoeren | Opdrachten op afstand, een interactieve shell met een pty, lokale en externe port forwarding en rekey van langlopende sessies. |
| SFTP-client | TsgcSFTPClient | Bestanden overdragen | Bestandsbeheerhandelingen via SFTP v3 met 16 requests tegelijk, zodat een overdracht van 100 MB ongeveer een seconde duurt op een lokaal netwerk. |
| SCP-client | TsgcSCPClient | Bestanden en mappen kopiëren | Upload en download losse bestanden of hele mapstructuren met scp, desgewenst met behoud van de bestandstijden. |
| SSH-server | TsgcSSHServer | SSH-clients accepteren | Authenticatie met wachtwoord en publieke sleutel, exec-, shell- en subsysteemverzoeken, met Ed25519-, ECDSA- en RSA-hostsleutels. |
| SFTP-server | TsgcSFTPServer | Een map serveren | SFTP 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. |
TsgcSSHClient opent één geauthenticeerde SSH-verbinding en draait daar zoveel kanalen op als je nodig hebt.
| Mogelijkheid | API | Opmerkingen |
|---|---|---|
| Verbinding | Host, Port, Connect, Disconnect | Standaard poort 22. |
| Wachtwoordauthenticatie | Authentication.Username, Authentication.Password | Gewoon aanmelden met gebruikersnaam en wachtwoord. |
| Authenticatie met publieke sleutel | Authentication.PrivateKeyFile, Authentication.Passphrase | Private keys van Ed25519, ECDSA en RSA in PEM- of PKCS#8-bestanden, en op .NET ook in het OpenSSH-formaat. |
| Controle van de hostsleutel | OnSSHHostKey | Ontvangt het sleuteltype en de vingerafdruk, zodat je die vergelijkt met je opslag van bekende hosts en een onbekende of gewijzigde sleutel weigert. |
| Opdracht op afstand | Execute | Opent een kanaal, voert de opdracht uit en geeft de uitvoer terug als string, met een timeout. |
| Interactieve shell | OpenChannel, RequestPTY, RequestShell | Een terminalsessie met het terminaltype en de grootte die je kiest. |
| Invoer en uitvoer van de shell | SendChannelData, OnSSHChannelData | Verstuur wat de gebruiker typt, ontvang wat de server afdrukt. |
| Terminalbesturing | SendWindowChange, SendSignal, SendEOF | Pas de terminalgrootte aan, stuur een signaal of beëindig de invoer van een kanaal. |
| Exec- en subsysteemkanalen | RequestExec, RequestSubsystem | Kanaalverzoeken op laag niveau voor eigen protocollen over SSH. |
| Lokale port forwarding | OpenDirectTCPIP | Opent een direct-tcpip-kanaal naar een host en poort die vanaf de server bereikbaar zijn. |
| Externe port forwarding | RequestForwarding, CancelForwarding | Vraagt de server om op een poort te luisteren en de verbindingen terug te sturen naar de client. |
| Rekey | Rekey | Vernieuwt de sessiesleutels van een langlopende verbinding. |
| Post-quantum sleuteluitwisseling | PostQuantumKex | Standaard aan: biedt mlkem768x25519-sha256 als eerste aan. |
TsgcSFTPClient implementeert SFTP v3 over hetzelfde SSH-transport, met dezelfde authenticatie- en sleuteluitwisselingsopties als de SSH-client.
| Mogelijkheid | API | Opmerkingen |
|---|---|---|
| Homemap | RealPath | Zet een pad zoals . om naar het absolute pad op de server. |
| Maplijst | ListDirectory | Naam, grootte, wijzigingsdatum en mapvlag van elk item. |
| Uploaden en downloaden | Put, Get | Eén aanroep per bestand, met 16 requests tegelijk. Een overdracht van 100 MB duurt ongeveer een seconde op een lokaal netwerk. |
| Bestandsbeheer | Rename, Delete, MakeDirectory, RemoveDirectory | Alles wat een bestandsbeheerder nodig heeft. |
| Voortgang | OnSFTPProgress | Meldt de overgedragen bytes, klaar voor een voortgangsbalk. |
TsgcSCPClient kopieert bestanden via SSH naar elke server die het commando scp toestaat.
| Mogelijkheid | API | Opmerkingen |
|---|---|---|
| Losse bestanden | Upload, Download | Kopieer één bestand naar of van het externe pad. |
| Mapstructuren | UploadFolder, DownloadFolder | Kopieer recursief een hele map. |
| Bestandstijden | PreserveTimes | Behoudt de wijzigings- en toegangstijden aan de andere kant. |
| Voortgang | OnSCPProgress | Meldt de bestandsnaam en de overgedragen bytes. |
TsgcSSHServer accepteert elke standaard SSH-client, inclusief de standaard opdrachtregeltools ssh, sftp en scp.
| Mogelijkheid | API | Opmerkingen |
|---|---|---|
| Luisteren | Port, Active | Start en stop de server. |
| Hostsleutels | HostKeyFiles, GenerateHostKeyEd25519 | Ed25519-, ECDSA- en RSA-hostsleutels. De class procedure maakt een Ed25519-sleutelbestand voor je aan. |
| Wachtwoordauthenticatie | OnSSHAuthPassword | Controleer de gebruikersnaam en het wachtwoord in je eigen gebruikersopslag. |
| Authenticatie met publieke sleutel | OnSSHAuthPublicKey | Ontvangt het sleuteltype en de SHA256-vingerafdruk, zodat je alleen de sleutels accepteert die je kent. |
| Opdrachten op afstand | OnSSHExec, SendChannelData, SendExitStatus, CloseChannel | Beantwoord een opdracht, meld de exitstatus en sluit het kanaal. |
| Interactieve shell | OnSSHShell, OnSSHChannelData | Bedien een terminalsessie vanuit je eigen code. |
| Subsystemen | SFTPServer | Subsysteemverzoeken zoals sftp worden doorgestuurd naar een gekoppelde TsgcSFTPServer. |
| Verbindingsevents | OnSSHConnect, OnSSHDisconnect | Leg elke verbinding vast met het adres van de peer. |
TsgcSFTPServer koppelt aan TsgcSSHServer en serveert bestanden uit een map die clients niet kunnen verlaten.
| Mogelijkheid | API | Opmerkingen |
|---|---|---|
| Protocollen | SFTP, SCP | SFTP v3, plus scp-overdrachten wanneer ingeschakeld. |
| Hoofdmap | RootFolder | De map die aan de clients wordt getoond. Paden daarbuiten worden geweigerd. |
| Eén map per gebruiker | OnSFTPUserRoot | Geef de hoofdmap van elke gebruiker terug, zodat elke gebruiker alleen zijn eigen bestanden ziet. |
| Alleen-lezenmodus | ReadOnly | Weigert uploads, verwijderingen en hernoemingen. |
| Controle per handeling | OnSFTPOperation | Wordt 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 downloads | Flow control | Downloads gebruiken constant geheugen, welke bestandsgrootte ook. |
Client en server bieden de sterkste algoritmen als eerste aan en vallen alleen terug op de klassieke wanneer de andere kant dat nodig heeft.
| Onderdeel | Algoritmen | Opmerkingen |
|---|---|---|
| Sleuteluitwisseling | mlkem768x25519-sha256 | ML-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 sleuteluitwisseling | curve25519, ECDH, Diffie-Hellman group14 en group16 | Gebruikt wanneer de andere kant de hybride uitwisseling niet ondersteunt. |
| Ciphers | AES-GCM, AES-CTR | AES-GCM is hardwarematig versneld op .NET 8 en later. |
| Host- en gebruikerssleutels | Ed25519, ECDSA, RSA | RSA-handtekeningen met SHA-2, gekozen via server-sig-algs. |
| Sleutelbestanden | PEM, PKCS#8, OpenSSH (.NET) | Versleutelde private keys worden geopend met een passphrase. |
| Strict key exchange | Terrapin-mitigatie | Sluit de aanval met prefixafkapping op de SSH-handshake. |
Dezelfde vijf componenten op Delphi en .NET.
| Onderdeel | Detail |
|---|---|
| Delphi | Delphi 7 tot en met 13, voor VCL, FMX, consoletoepassingen en services. |
| Delphi-doelplatforms | Windows Win32, Windows Win64 en Linux64. |
| .NET | .NET 8, .NET 9, .NET 10 en .NET Standard 2.0, in volledig beheerde code zonder OpenSSL. |
| Demo's | Demos\27.SSH: SSH-client, SFTP-client, SCP-client, SSH-server en SFTP-server. |
| Edities | Alle 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. |
| Licenties | Zelfstandig. De sgcWebSockets Core runtime is meegeleverd, sgcCustomIndy zit in de bestelling en de volledige broncode is inbegrepen. |