sgcSSH: klienty i serwery SSH i SFTP dla Delphi i .NET
Pięć komponentów obejmuje obie strony połączenia SSH. TsgcSSHClient uruchamia zdalne polecenia, otwiera interaktywną powłokę z pty i przekierowuje porty. TsgcSFTPClient i TsgcSCPClient przesyłają pliki i całe foldery. TsgcSSHServer i TsgcSFTPServer umieszczają własną usługę SSH i SFTP wewnątrz twojej aplikacji, z osobnym jailem dla każdego użytkownika. Hybrydowa postkwantowa wymiana kluczy mlkem768x25519-sha256, domyślna w najnowszych wydaniach SSH, jest oferowana jako pierwsza zarówno przez klienta, jak i przez serwer.
Wymiana kluczyML-KEM-768 + X25519mlkem768x25519-sha256, oferowana jako pierwsza po obu stronach
KlientySSH, SFTP, SCP
SerwerySSH, SFTP
5KomponentówTrzy klienty i dwa serwery
16Żądań SFTP narazTransfer 100 MB trwa około sekundy w sieci lokalnej
2JęzykiDelphi i .NET, te same pięć klas
100%Kod źródłowy w zestawieKażdy komponent i dołączone środowisko Core
12Miesięcy aktualizacjiKażde wydanie opublikowane w okresie ważności licencji
ZANIM KUPISZ
Trzy rzeczy, które warto wiedzieć najpierw
Czego sgcSSH potrzebuje od ciebie, czy masz już te komponenty i na czym opiera się wersja dla Delphi. Wszystkie trzy odpowiedzi są krótkie.
sgcSSH jest samowystarczalny
W wersji samodzielnej środowisko uruchomieniowe sgcWebSockets Core jest w zestawie, razem z natywną kryptografią, na której działa wymiana kluczy: ML-KEM-768, X25519, ECDH, AES-GCM i rodziną SHA-2. Jeden SKU, jeden instalator.
Pełny kod źródłowy jest dołączony do każdej licencji, więc kod protokołu przejdziesz krok po kroku we własnym debugerze, zamiast gubić go w pliku binarnym.
Nakładanie się edycji
Masz to już w swojej edycji sgcWebSockets?
Wszystkie pięć komponentów SSH jest dostarczanych w sgcWebSockets Enterprise, a All-Access obejmuje wszystko. W .NET są częścią zarejestrowanego pakietu sgcWebSockets, a nie bezpłatnej edycji Community.
sgcSSH powstał na odwrotny przypadek: chcesz mieć SSH i SFTP w swojej aplikacji bez licencjonowania pełnej edycji sgcWebSockets. Sprawdź, co twoja edycja już obejmuje, zanim kupisz.
Wymagany dodatek
SSH dla Delphi wymaga sgcCustomIndy
Komponenty dla Delphi są zbudowane na modułach SSH zmodyfikowanej biblioteki Indy, którą sgcCustomIndy dostarcza jako dodatek. sgcCustomIndy jest zawsze wliczony w zamówienie sgcSSH.
Wyświetlana cena sgcSSH już obejmuje sgcCustomIndy.
CO JEST W ZESTAWIE
Trzy klienty, dwa serwery
Każdy z nich to niewizualny komponent, który upuszczasz na formularz lub tworzysz w kodzie, zarejestrowany na stronie palety SGC SSH. Ustaw host i dane logowania, podłącz zdarzenia, a następnie połącz się lub zacznij nasłuchiwać. Klasy .NET mają te same nazwy.
Klient SSH1 komponent
Polecenia, powłoki i tunele
TsgcSSHClient łączy się za pomocą hasła lub klucza prywatnego, a OnSSHHostKey przekazuje ci typ klucza hosta i jego odcisk do sprawdzenia w twoim magazynie znanych hostów. Execute uruchamia polecenie i zwraca jego wynik w jednym wywołaniu. Dla sesji interaktywnej OpenChannel, RequestPTY i RequestShell otwierają terminal, SendChannelData wpisuje do niego tekst, a OnSSHChannelData zwraca to, co wypisuje serwer, natomiast SendWindowChange i SendSignal obsługują resztę protokołu terminala. OpenDirectTCPIP przekierowuje lokalne połączenie przez serwer, RequestForwarding prosi serwer o przekierowanie zdalnego portu z powrotem do ciebie, a Rekey odnawia klucze sesji długotrwałego połączenia.
Szybkie transfery plików, jedna metoda na operację
TsgcSFTPClient obsługuje SFTP v3 w tym samym połączeniu SSH. RealPath wyznacza folder domowy, ListDirectory zwraca nazwy, rozmiary, daty i flagę folderu, a Put i Get wysyłają i pobierają plik jednym wywołaniem. Rename, Delete, MakeDirectory i RemoveDirectory pokrywają resztę menedżera plików, a OnSFTPProgress raportuje liczbę przesłanych bajtów dla paska postępu. Transfery utrzymują 16 żądań naraz zamiast czekać na każdy blok, więc plik 100 MB przesyła się w około sekundę w sieci lokalnej.
TsgcSCPClient kopiuje pliki przez SSH na dowolny serwer, który zezwala na polecenie scp, bez osobnej usługi transferu plików. Upload i Download kopiują jeden plik, UploadFolder i DownloadFolder kopiują rekurencyjnie całe drzewo folderów, a PreserveTimes zachowuje czasy modyfikacji i dostępu po drugiej stronie. OnSCPProgress raportuje nazwę pliku i liczbę przesłanych bajtów.
TsgcSSHServer nasłuchuje na wybranym porcie i potwierdza swoją tożsamość kluczami hosta Ed25519, ECDSA lub RSA wczytanymi z HostKeyFiles, a GenerateHostKeyEd25519 tworzy taki klucz za ciebie. OnSSHAuthPassword i OnSSHAuthPublicKey decydują, kto wejdzie, przy czym drugie zdarzenie dostaje typ klucza i jego odcisk SHA256. OnSSHExec odpowiada na zdalne polecenia, OnSSHShell obsługuje sesję interaktywną, a żądania podsystemów trafiają do twojego handlera lub do TsgcSFTPServer. Łączy się z nim dowolny standardowy klient SSH, w tym standardowe narzędzia wiersza poleceń ssh, sftp i scp.
Serwer plików z osobnym jailem dla każdego użytkownika
TsgcSFTPServer łączy się z serwerem SSH przez właściwość SFTPServer i obsługuje SFTP v3 oraz, po włączeniu SCP, transfery scp z RootFolder. Klienci nie mogą go opuścić. OnSFTPUserRoot daje każdemu użytkownikowi własny folder, ReadOnly odrzuca wysyłanie, usuwanie i zmianę nazw, a OnSFTPOperation uruchamia się przy każdym otwarciu, usunięciu, zmianie nazwy, zmianie folderu, zmianie atrybutów i listowaniu, więc każdą operację możesz dopuścić lub odrzucić i zapisać w logu. Kontrola przepływu utrzymuje stałe zużycie pamięci przy dużym pobieraniu, niezależnie od rozmiaru pliku.
TsgcSFTPServerSFTP v3 · SCP · jail dla użytkownika · tylko do odczytu
PRZYPADKI UŻYCIA
SSH i SFTP z twojego własnego kodu
Komponenty są zwykłymi komponentami niewizualnymi, więc pasują do każdej aplikacji: pulpitowej VCL lub FMX, narzędzia konsolowego, usługi Windows, demona Linux lub procesu roboczego .NET. Oto wzorce budowane przez klientów, każdy przypisany do składowej, która go realizuje.
EX
Polecenia konserwacyjne na serwerach LinuxExecute
Zrestartuj usługę, odczytaj log lub sprawdź miejsce na dysku z narzędzia Delphi lub .NET i odbierz wynik jako ciąg znaków.
TM
Wbudowane okno terminalaRequestPTY
Otwórz powłokę z pty i pokaż ją we własnym interfejsie, dla narzędzi wsparcia i konsol urządzeń.
FT
Zaplanowana wymiana plików z partneramiPut / Get
Wysyłaj faktury i pobieraj raporty przez SFTP z usługi, ze zdarzeniami postępu i błędów.
TN
Dostęp do bazy danych za hostem bastionowymOpenDirectTCPIP
Przekieruj połączenie przez serwer SSH zamiast otwierać port bazy danych w sieci.
SV
Skrzynka SFTP wewnątrz twojego produktuOnSFTPUserRoot
Daj każdemu klientowi prywatny folder, a o tym, kto się loguje, niech decyduje twoja własna baza użytkowników.
PQ
Ruch, który pozostaje prywatny w przyszłościPostQuantumKex
Hybrydowa wymiana ML-KEM-768 i X25519 chroni sesje nagrywane dzisiaj przed przyszłym komputerem kwantowym.
JAK TO DZIAŁA
Najpierw postkwantowo, tylko nowoczesne algorytmy
Klient i serwer negocjują najsilniejsze algorytmy obsługiwane przez obie strony, zaczynając od hybrydowej postkwantowej wymiany kluczy. Nie trzeba niczego konfigurować, aby ją uzyskać.
mlkem768x25519-sha256 jest oferowana jako pierwsza
Hybrydowa wymiana łączy ML-KEM-768 z X25519, dzięki czemu klucze sesji pozostają bezpieczne nawet wobec atakującego, który nagrywa ruch dzisiaj, a komputer kwantowy będzie miał później. Jest domyślna w najnowszych wydaniach SSH, a aktualni klienci i serwery SSH negocjują ją automatycznie. PostQuantumKex jest domyślnie włączone.
Klasyczne algorytmy jako rozwiązanie awaryjne
Gdy druga strona jej nie obsługuje, wymiana przechodzi na curve25519, ECDH oraz Diffie-Hellman group14 i group16. Szyfry to AES-GCM i AES-CTR, a klucze hosta i klucze użytkowników to Ed25519, ECDSA lub RSA.
Ścisła wymiana kluczy przeciw Terrapin
Ścisła wymiana kluczy zamyka atak Terrapin polegający na obcinaniu prefiksu, a server-sig-algs pozwala klientowi wybrać podpis RSA z SHA-2 zamiast starszego z SHA-1. Klucze prywatne wczytuje się z plików PEM i PKCS#8, a wersja .NET czyta także format kluczy OpenSSH.
Natywna kryptografia na obu platformach
Wymiana kluczy działa na natywnych modułach kryptograficznych sgcWebSockets w Delphi i w w pełni zarządzanym kodzie w .NET, bez OpenSSL do wdrożenia w wersji .NET. W .NET 8 i nowszych AES-GCM jest przyspieszany sprzętowo.
SZYBKI START
Uruchom polecenie, udostępnij folder
Klienty mają jeden schemat: ustaw host i dane logowania, połącz się, wywołaj metodę. Serwery mają inny: ustaw port i klucz hosta, podłącz zdarzenia, aktywuj.
var
SSH: TsgcSSHClient;
SFTP: TsgcSFTPClient;
begin// run a command
SSH := TsgcSSHClient.Create(nil);
SSH.Host := 'build01.example.com';
SSH.Port := 22;
SSH.Authentication.Username := 'deploy';
SSH.Authentication.PrivateKeyFile := 'C:\keys\id_ed25519.pem';
SSH.OnSSHHostKey := SSHHostKey; // check the fingerprint
SSH.Connect;
Memo1.Text := SSH.Execute('uname -a');
SSH.Disconnect;
// upload a file over SFTP
SFTP := TsgcSFTPClient.Create(nil);
SFTP.Host := 'files.example.com';
SFTP.Authentication.Username := 'partner';
SFTP.Authentication.Password := 'secret';
SFTP.Connect;
SFTP.Put('C:\export\invoices.zip', '/upload/invoices.zip');
SFTP.Disconnect;
end;
PostQuantumKex jest domyślnie włączone, więc obie sesje negocjują mlkem768x25519-sha256, gdy tylko serwer ją obsługuje.
begin
SFTPServer := TsgcSFTPServer.Create(nil);
SFTPServer.RootFolder := 'D:\sftp';
SFTPServer.SFTP := True;
SFTPServer.SCP := True;
SFTPServer.OnSFTPUserRoot := SFTPUserRoot;
SSHServer := TsgcSSHServer.Create(nil);
SSHServer.Port := 2222;
SSHServer.HostKeyFiles.Text := 'hostkey_ed25519.pem';
SSHServer.OnSSHAuthPassword := SSHAuthPassword;
SSHServer.SFTPServer := SFTPServer;
SSHServer.Active := True;
end;
procedure TForm1.SSHAuthPassword(Sender: TObject;
aConnection: TsgcSSHServerConnection; const aUsername, aPassword: string;
var aAccept: Boolean);
begin
aAccept := CheckUser(aUsername, aPassword); // your user storeend;
procedure TForm1.SFTPUserRoot(Sender: TObject; const aUsername: string;
var aRootFolder: string);
begin
aRootFolder := 'D:\sftp\' + aUsername; // one jail per userend;
Połącz się przez sftp -P 2222 user@127.0.0.1 lub scp -P 2222 file.txt user@127.0.0.1:/. Demonstracje w Demos\27.SSH obejmują wszystkie pięć komponentów.
PLATFORMY
Delphi i .NET, desktop i serwer
Te same pięć komponentów na obu platformach, dla aplikacji desktopowych, narzędzi konsolowych i usług.
DelphiDelphi 7 do 13, VCL, FMX, konsola i usługi
Windows Win32Windows Win64Linux64
.NETW pełni zarządzany kod, bez OpenSSL
.NET 8.NET 9.NET 10.NET Standard 2.0
KomponentyZarejestrowane na stronie palety SGC SSH
sgcSSH jest licencjonowany samodzielnie, już od €398 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz od 50% do 70% rabatu na odnowienie: 50% przy odnowieniu jednego pakietu, 60% przy dwóch, 70% przy trzech lub więcej. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP, sgcREST, sgcCrypto i sgcSSH liczą się każdy jako jeden pakiet.
sgcSSH
€398
Dostępne licencje Single, Team i Site.
Klient SSH: polecenia, powłoka z pty, przekierowanie portów, rekey
Klienty SFTP i SCP dla plików i folderów
Serwery SSH i SFTP z osobnym jailem dla każdego użytkownika
Postkwantowa wymiana kluczy mlkem768x25519-sha256
Środowisko uruchomieniowe sgcWebSockets Core i sgcCustomIndy w zestawie
Delphi 7 do 13 i .NET
Pełny kod źródłowy
1 rok aktualizacji
sgcSSH zawiera środowisko uruchomieniowe sgcWebSockets Core, więc do komponentów SSH i SFTP nie trzeba niczego dokupować.
Kasa wyświetla trzy pozycje: uprawnienie do środowiska uruchomieniowego sgcWebSockets Core, naliczane w cenie zero, sam pakiet sgcSSH oraz sgcCustomIndy, którego wymagają komponenty SSH dla Delphi. sgcCustomIndy jest zawsze wliczony, a wyświetlana cena już go obejmuje. Pełne szczegóły cennika.
3,000+Programistów
20+Lat
761+Komponentów
30+Integracji API
5Platform
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów
Dostarczaj SSH i SFTP gotowe na erę postkwantową
Klienty i serwery w natywnym kodzie Delphi i .NET, z dołączonym środowiskiem uruchomieniowym i pełnym kodem źródłowym w zestawie. Pobierz instalator próbny All-Access i połącz się ze swoim pierwszym serwerem już dziś.
Własna biblioteka Indy, na której zbudowano sgcWebSockets Enterprise, spakowana jako dodatek. Wymagana przez komponenty SSH dla Delphi, zawsze wliczona w zamówienia sgcSSH.
Szyfry symetryczne i asymetryczne, haszowanie i algorytmy postkwantowe, takie jak ML-KEM i ML-DSA. Bezpłatnie w sgcWebSockets od edycji Standard wzwyż.