Matryca funkcji sgcSSH

Wszystko, co robi sgcSSH, przedstawione w podziale na trzy komponenty klienckie, dwa komponenty serwerowe i algorytmy, które negocjują. Te same klasy istnieją w Delphi i .NET, a każda licencja zawiera pełny kod źródłowy.

Klient SSH

Polecenia, powłoki, przekierowania i rekey

Klient SFTP

Szybkie transfery, 16 żądań naraz

Klient SCP

Pliki i całe foldery

Serwer SSH

Uwierzytelnianie, exec, shell i podsystemy

Serwer SFTP

Jail dla każdego użytkownika, tryb tylko do odczytu

Algorytmy

Najpierw postkwantowa wymiana kluczy

Platformy

Delphi 7 do 13 i .NET

sgcSSH jest samowystarczalny. Zawiera dołączone środowisko uruchomieniowe sgcWebSockets Core, a dodatek sgcCustomIndy, na którym zbudowano komponenty Delphi, jest zawsze wliczony w zamówienie.

Także w sgcWebSockets. Wszystkie pięć komponentów jest dostarczanych również w sgcWebSockets Enterprise, a All-Access obejmuje wszystko. W .NET są częścią zarejestrowanego pakietu, a nie bezpłatnej edycji Community. sgcSSH to pakiet samodzielny dla zespołów, które potrzebują tylko SSH i SFTP.

Pięć komponentów palety

Trzy klienty i dwa serwery, zarejestrowane na stronie palety SGC SSH.

KomponentKlasaZadanieOpis
Klient SSHTsgcSSHClientUruchamianie poleceńZdalne polecenia, interaktywna powłoka z pty, lokalne i zdalne przekierowanie portów oraz rekey długotrwałych sesji.
Klient SFTPTsgcSFTPClientPrzesyłanie plikówOperacje menedżera plików SFTP v3 z 16 żądaniami naraz, więc transfer 100 MB trwa około sekundy w sieci lokalnej.
Klient SCPTsgcSCPClientKopiowanie plików i folderówWysyła i pobiera pojedyncze pliki lub całe drzewa folderów przez scp, opcjonalnie zachowując czasy plików.
Serwer SSHTsgcSSHServerPrzyjmowanie klientów SSHUwierzytelnianie hasłem i kluczem publicznym, żądania exec, shell i podsystemów, z kluczami hosta Ed25519, ECDSA i RSA.
Serwer SFTPTsgcSFTPServerUdostępnianie folderuSFTP v3 i SCP z folderu głównego, z jailem dla każdego użytkownika, trybem tylko do odczytu i zdarzeniem pozwalającym dopuścić lub odrzucić każdą operację.

Polecenia, powłoki i tunele

TsgcSSHClient otwiera jedno uwierzytelnione połączenie SSH i uruchamia na nim tyle kanałów, ile potrzebujesz.

MożliwośćAPIUwagi
PołączenieHost, Port, Connect, DisconnectDomyślnie port 22.
Uwierzytelnianie hasłemAuthentication.Username, Authentication.PasswordZwykłe logowanie nazwą użytkownika i hasłem.
Uwierzytelnianie kluczem publicznymAuthentication.PrivateKeyFile, Authentication.PassphraseKlucze prywatne Ed25519, ECDSA i RSA w plikach PEM lub PKCS#8, a w .NET także w formacie OpenSSH.
Sprawdzenie klucza hostaOnSSHHostKeyOdbiera typ klucza i jego odcisk, abyś porównał je z własnym magazynem znanych hostów i odrzucił nieznany lub zmieniony klucz.
Zdalne polecenieExecuteOtwiera kanał, uruchamia polecenie i zwraca jego wynik jako ciąg znaków, z limitem czasu.
Interaktywna powłokaOpenChannel, RequestPTY, RequestShellSesja terminala o typie i rozmiarze, które wybierzesz.
Wejście i wyjście powłokiSendChannelData, OnSSHChannelDataWysyła to, co wpisuje użytkownik, i odbiera to, co wypisuje serwer.
Sterowanie terminalemSendWindowChange, SendSignal, SendEOFZmienia rozmiar terminala, wysyła sygnał lub kończy wejście kanału.
Kanały exec i podsystemówRequestExec, RequestSubsystemNiskopoziomowe żądania kanałów dla własnych protokołów nad SSH.
Lokalne przekierowanie portówOpenDirectTCPIPOtwiera kanał direct-tcpip do hosta i portu osiągalnego z serwera.
Zdalne przekierowanie portówRequestForwarding, CancelForwardingProsi serwer o nasłuchiwanie na porcie i przekazywanie jego połączeń z powrotem do klienta.
RekeyRekeyOdnawia klucze sesji długotrwałego połączenia.
Postkwantowa wymiana kluczyPostQuantumKexDomyślnie włączona: oferuje mlkem768x25519-sha256 jako pierwszą.

Szybkie transfery, jedna metoda na operację

TsgcSFTPClient implementuje SFTP v3 nad tym samym transportem SSH, z tymi samymi opcjami uwierzytelniania i wymiany kluczy co klient SSH.

MożliwośćAPIUwagi
Folder domowyRealPathZamienia ścieżkę, taką jak ., na ścieżkę bezwzględną na serwerze.
Lista folderuListDirectoryNazwa, rozmiar, data modyfikacji i flaga folderu dla każdego wpisu.
Wysyłanie i pobieraniePut, GetJedno wywołanie na plik, z 16 żądaniami naraz. Transfer 100 MB trwa około sekundy w sieci lokalnej.
Zarządzanie plikamiRename, Delete, MakeDirectory, RemoveDirectoryWszystko, czego potrzebuje menedżer plików.
PostępOnSFTPProgressRaportuje liczbę przesłanych bajtów, gotową do paska postępu.

Pliki i całe foldery

TsgcSCPClient kopiuje pliki przez SSH na dowolny serwer, który zezwala na polecenie scp.

MożliwośćAPIUwagi
Pojedyncze plikiUpload, DownloadKopiuje jeden plik na zdalną ścieżkę lub z niej.
Drzewa folderówUploadFolder, DownloadFolderKopiuje rekurencyjnie cały folder.
Czasy plikówPreserveTimesZachowuje czasy modyfikacji i dostępu po drugiej stronie.
PostępOnSCPProgressRaportuje nazwę pliku i liczbę przesłanych bajtów.

Własna usługa SSH

TsgcSSHServer przyjmuje dowolnego standardowego klienta SSH, w tym standardowe narzędzia wiersza poleceń ssh, sftp i scp.

MożliwośćAPIUwagi
NasłuchiwaniePort, ActiveUruchamia i zatrzymuje serwer.
Klucze hostaHostKeyFiles, GenerateHostKeyEd25519Klucze hosta Ed25519, ECDSA i RSA. Procedura klasowa tworzy dla ciebie plik klucza Ed25519.
Uwierzytelnianie hasłemOnSSHAuthPasswordSprawdź nazwę użytkownika i hasło w swoim własnym magazynie użytkowników.
Uwierzytelnianie kluczem publicznymOnSSHAuthPublicKeyOdbiera typ klucza i jego odcisk SHA256, dzięki czemu akceptujesz tylko znane klucze.
Zdalne poleceniaOnSSHExec, SendChannelData, SendExitStatus, CloseChannelOdpowiedz na polecenie, zgłoś jego kod wyjścia i zamknij kanał.
Interaktywna powłokaOnSSHShell, OnSSHChannelDataObsłuż sesję terminala z własnego kodu.
PodsystemySFTPServerŻądania podsystemów, takie jak sftp, są kierowane do połączonego TsgcSFTPServer.
Zdarzenia połączeńOnSSHConnect, OnSSHDisconnectZapisuj w logu każde połączenie wraz z adresem partnera.

Serwer plików z osobnym jailem dla każdego użytkownika

TsgcSFTPServer podłącza się do TsgcSSHServer i udostępnia pliki z folderu, którego klienci nie mogą opuścić.

MożliwośćAPIUwagi
ProtokołySFTP, SCPSFTP v3, a po włączeniu także transfery scp.
Folder głównyRootFolderFolder widoczny dla klientów. Ścieżki poza nim są odrzucane.
Jeden folder na użytkownikaOnSFTPUserRootZwróć katalog główny każdego użytkownika, aby każdy widział tylko własne pliki.
Tryb tylko do odczytuReadOnlyOdrzuca wysyłanie, usuwanie i zmianę nazw.
Kontrola każdej operacjiOnSFTPOperationUruchamia się przy każdym otwarciu do odczytu lub zapisu, usunięciu, zmianie nazwy, utworzeniu i usunięciu folderu, zmianie atrybutów i listowaniu. Ustaw aAccept na False, a klient dostanie błąd odmowy dostępu.
Duże pobraniaKontrola przepływuPobieranie zużywa stałą ilość pamięci, niezależnie od rozmiaru pliku.

Najpierw postkwantowo

Klient i serwer oferują najpierw najsilniejsze algorytmy i przechodzą na klasyczne tylko wtedy, gdy druga strona tego wymaga.

ObszarAlgorytmyUwagi
Wymiana kluczymlkem768x25519-sha256ML-KEM-768 połączony z X25519, domyślna w najnowszych wydaniach SSH. Oferowana jako pierwsza przez klienta i przez serwer.
Klasyczna wymiana kluczycurve25519, ECDH, Diffie-Hellman group14 i group16Używana, gdy druga strona nie obsługuje wymiany hybrydowej.
SzyfryAES-GCM, AES-CTRAES-GCM jest przyspieszany sprzętowo w .NET 8 i nowszych.
Klucze hosta i użytkownikówEd25519, ECDSA, RSAPodpisy RSA z SHA-2, wybierane przez server-sig-algs.
Pliki kluczyPEM, PKCS#8, OpenSSH (.NET)Zaszyfrowane klucze prywatne otwiera się hasłem.
Ścisła wymiana kluczyOchrona przed TerrapinZamyka atak polegający na obcinaniu prefiksu w uzgadnianiu SSH.

Kompilatory, frameworki i cele

Te same pięć komponentów w Delphi i .NET.

ObszarSzczegóły
DelphiDelphi od 7 do 13, dla VCL, FMX, aplikacji konsolowych i usług.
Cele DelphiWindows Win32, Windows Win64 i Linux64.
.NET.NET 8, .NET 9, .NET 10 i .NET Standard 2.0, w pełni zarządzany kod bez OpenSSL.
DemonstracjeDemos\27.SSH: klient SSH, klient SFTP, klient SCP, serwer SSH i serwer SFTP.
EdycjeWszystkie pięć komponentów jest dostarczanych także w sgcWebSockets Enterprise, a All-Access obejmuje wszystko. W .NET wchodzą w skład zarejestrowanego pakietu, a nie edycji Community.
LicencjonowaniePakiet samodzielny. Środowisko uruchomieniowe sgcWebSockets Core jest dołączone, sgcCustomIndy jest wliczony w zamówienie, a pełny kod źródłowy w zestawie.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Twórz z sgcSSH

Pobierz bezpłatną wersję próbną i uruchom pierwsze zdalne polecenie lub wysyłanie SFTP z Delphi lub .NET.