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.
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.
Polecenia, powłoki, przekierowania i rekey
Szybkie transfery, 16 żądań naraz
Pliki i całe foldery
Uwierzytelnianie, exec, shell i podsystemy
Jail dla każdego użytkownika, tryb tylko do odczytu
Najpierw postkwantowa wymiana kluczy
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.
Trzy klienty i dwa serwery, zarejestrowane na stronie palety SGC SSH.
| Komponent | Klasa | Zadanie | Opis |
|---|---|---|---|
| Klient SSH | TsgcSSHClient | Uruchamianie poleceń | Zdalne polecenia, interaktywna powłoka z pty, lokalne i zdalne przekierowanie portów oraz rekey długotrwałych sesji. |
| Klient SFTP | TsgcSFTPClient | Przesyłanie plików | Operacje menedżera plików SFTP v3 z 16 żądaniami naraz, więc transfer 100 MB trwa około sekundy w sieci lokalnej. |
| Klient SCP | TsgcSCPClient | Kopiowanie plików i folderów | Wysyła i pobiera pojedyncze pliki lub całe drzewa folderów przez scp, opcjonalnie zachowując czasy plików. |
| Serwer SSH | TsgcSSHServer | Przyjmowanie klientów SSH | Uwierzytelnianie hasłem i kluczem publicznym, żądania exec, shell i podsystemów, z kluczami hosta Ed25519, ECDSA i RSA. |
| Serwer SFTP | TsgcSFTPServer | Udostępnianie folderu | SFTP 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ę. |
TsgcSSHClient otwiera jedno uwierzytelnione połączenie SSH i uruchamia na nim tyle kanałów, ile potrzebujesz.
| Możliwość | API | Uwagi |
|---|---|---|
| Połączenie | Host, Port, Connect, Disconnect | Domyślnie port 22. |
| Uwierzytelnianie hasłem | Authentication.Username, Authentication.Password | Zwykłe logowanie nazwą użytkownika i hasłem. |
| Uwierzytelnianie kluczem publicznym | Authentication.PrivateKeyFile, Authentication.Passphrase | Klucze prywatne Ed25519, ECDSA i RSA w plikach PEM lub PKCS#8, a w .NET także w formacie OpenSSH. |
| Sprawdzenie klucza hosta | OnSSHHostKey | Odbiera typ klucza i jego odcisk, abyś porównał je z własnym magazynem znanych hostów i odrzucił nieznany lub zmieniony klucz. |
| Zdalne polecenie | Execute | Otwiera kanał, uruchamia polecenie i zwraca jego wynik jako ciąg znaków, z limitem czasu. |
| Interaktywna powłoka | OpenChannel, RequestPTY, RequestShell | Sesja terminala o typie i rozmiarze, które wybierzesz. |
| Wejście i wyjście powłoki | SendChannelData, OnSSHChannelData | Wysyła to, co wpisuje użytkownik, i odbiera to, co wypisuje serwer. |
| Sterowanie terminalem | SendWindowChange, SendSignal, SendEOF | Zmienia rozmiar terminala, wysyła sygnał lub kończy wejście kanału. |
| Kanały exec i podsystemów | RequestExec, RequestSubsystem | Niskopoziomowe żądania kanałów dla własnych protokołów nad SSH. |
| Lokalne przekierowanie portów | OpenDirectTCPIP | Otwiera kanał direct-tcpip do hosta i portu osiągalnego z serwera. |
| Zdalne przekierowanie portów | RequestForwarding, CancelForwarding | Prosi serwer o nasłuchiwanie na porcie i przekazywanie jego połączeń z powrotem do klienta. |
| Rekey | Rekey | Odnawia klucze sesji długotrwałego połączenia. |
| Postkwantowa wymiana kluczy | PostQuantumKex | Domyślnie włączona: oferuje mlkem768x25519-sha256 jako pierwszą. |
TsgcSFTPClient implementuje SFTP v3 nad tym samym transportem SSH, z tymi samymi opcjami uwierzytelniania i wymiany kluczy co klient SSH.
| Możliwość | API | Uwagi |
|---|---|---|
| Folder domowy | RealPath | Zamienia ścieżkę, taką jak ., na ścieżkę bezwzględną na serwerze. |
| Lista folderu | ListDirectory | Nazwa, rozmiar, data modyfikacji i flaga folderu dla każdego wpisu. |
| Wysyłanie i pobieranie | Put, Get | Jedno wywołanie na plik, z 16 żądaniami naraz. Transfer 100 MB trwa około sekundy w sieci lokalnej. |
| Zarządzanie plikami | Rename, Delete, MakeDirectory, RemoveDirectory | Wszystko, czego potrzebuje menedżer plików. |
| Postęp | OnSFTPProgress | Raportuje liczbę przesłanych bajtów, gotową do paska postępu. |
TsgcSCPClient kopiuje pliki przez SSH na dowolny serwer, który zezwala na polecenie scp.
| Możliwość | API | Uwagi |
|---|---|---|
| Pojedyncze pliki | Upload, Download | Kopiuje jeden plik na zdalną ścieżkę lub z niej. |
| Drzewa folderów | UploadFolder, DownloadFolder | Kopiuje rekurencyjnie cały folder. |
| Czasy plików | PreserveTimes | Zachowuje czasy modyfikacji i dostępu po drugiej stronie. |
| Postęp | OnSCPProgress | Raportuje nazwę pliku i liczbę przesłanych bajtów. |
TsgcSSHServer przyjmuje dowolnego standardowego klienta SSH, w tym standardowe narzędzia wiersza poleceń ssh, sftp i scp.
| Możliwość | API | Uwagi |
|---|---|---|
| Nasłuchiwanie | Port, Active | Uruchamia i zatrzymuje serwer. |
| Klucze hosta | HostKeyFiles, GenerateHostKeyEd25519 | Klucze hosta Ed25519, ECDSA i RSA. Procedura klasowa tworzy dla ciebie plik klucza Ed25519. |
| Uwierzytelnianie hasłem | OnSSHAuthPassword | Sprawdź nazwę użytkownika i hasło w swoim własnym magazynie użytkowników. |
| Uwierzytelnianie kluczem publicznym | OnSSHAuthPublicKey | Odbiera typ klucza i jego odcisk SHA256, dzięki czemu akceptujesz tylko znane klucze. |
| Zdalne polecenia | OnSSHExec, SendChannelData, SendExitStatus, CloseChannel | Odpowiedz na polecenie, zgłoś jego kod wyjścia i zamknij kanał. |
| Interaktywna powłoka | OnSSHShell, OnSSHChannelData | Obsłuż sesję terminala z własnego kodu. |
| Podsystemy | SFTPServer | Żądania podsystemów, takie jak sftp, są kierowane do połączonego TsgcSFTPServer. |
| Zdarzenia połączeń | OnSSHConnect, OnSSHDisconnect | Zapisuj w logu każde połączenie wraz z adresem partnera. |
TsgcSFTPServer podłącza się do TsgcSSHServer i udostępnia pliki z folderu, którego klienci nie mogą opuścić.
| Możliwość | API | Uwagi |
|---|---|---|
| Protokoły | SFTP, SCP | SFTP v3, a po włączeniu także transfery scp. |
| Folder główny | RootFolder | Folder widoczny dla klientów. Ścieżki poza nim są odrzucane. |
| Jeden folder na użytkownika | OnSFTPUserRoot | Zwróć katalog główny każdego użytkownika, aby każdy widział tylko własne pliki. |
| Tryb tylko do odczytu | ReadOnly | Odrzuca wysyłanie, usuwanie i zmianę nazw. |
| Kontrola każdej operacji | OnSFTPOperation | Uruchamia 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 pobrania | Kontrola przepływu | Pobieranie zużywa stałą ilość pamięci, niezależnie od rozmiaru pliku. |
Klient i serwer oferują najpierw najsilniejsze algorytmy i przechodzą na klasyczne tylko wtedy, gdy druga strona tego wymaga.
| Obszar | Algorytmy | Uwagi |
|---|---|---|
| Wymiana kluczy | mlkem768x25519-sha256 | ML-KEM-768 połączony z X25519, domyślna w najnowszych wydaniach SSH. Oferowana jako pierwsza przez klienta i przez serwer. |
| Klasyczna wymiana kluczy | curve25519, ECDH, Diffie-Hellman group14 i group16 | Używana, gdy druga strona nie obsługuje wymiany hybrydowej. |
| Szyfry | AES-GCM, AES-CTR | AES-GCM jest przyspieszany sprzętowo w .NET 8 i nowszych. |
| Klucze hosta i użytkowników | Ed25519, ECDSA, RSA | Podpisy RSA z SHA-2, wybierane przez server-sig-algs. |
| Pliki kluczy | PEM, PKCS#8, OpenSSH (.NET) | Zaszyfrowane klucze prywatne otwiera się hasłem. |
| Ścisła wymiana kluczy | Ochrona przed Terrapin | Zamyka atak polegający na obcinaniu prefiksu w uzgadnianiu SSH. |
Te same pięć komponentów w Delphi i .NET.
| Obszar | Szczegóły |
|---|---|
| Delphi | Delphi od 7 do 13, dla VCL, FMX, aplikacji konsolowych i usług. |
| Cele Delphi | Windows 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. |
| Demonstracje | Demos\27.SSH: klient SSH, klient SFTP, klient SCP, serwer SSH i serwer SFTP. |
| Edycje | Wszystkie 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. |
| Licencjonowanie | Pakiet samodzielny. Środowisko uruchomieniowe sgcWebSockets Core jest dołączone, sgcCustomIndy jest wliczony w zamówienie, a pełny kod źródłowy w zestawie. |