다섯 개의 컴포넌트가 SSH 연결의 양쪽 끝을 모두 다룹니다. TsgcSSHClient는 원격 명령을 실행하고, pty를 갖춘 대화형 셸을 열며, 포트를 포워딩합니다. TsgcSFTPClient와 TsgcSCPClient는 파일과 폴더 전체를 전송합니다. TsgcSSHServer와 TsgcSFTPServer는 사용자별 jail을 갖춘 자체 SSH 및 SFTP 서비스를 애플리케이션 안에 넣어 줍니다. 최신 SSH 릴리스의 기본값인 하이브리드 포스트 퀀텀 키 교환 mlkem768x25519-sha256을 클라이언트와 서버 모두 가장 먼저 제안합니다.
키 교환ML-KEM-768 + X25519mlkem768x25519-sha256, 양쪽 모두에서 가장 먼저 제안
클라이언트SSH, SFTP, SCP
서버SSH, SFTP
5컴포넌트클라이언트 세 개와 서버 두 개
16동시에 처리하는 SFTP 요청100 MB 전송이 로컬 네트워크에서 약 1초
2언어Delphi와 .NET, 동일한 다섯 개의 클래스
100%포함된 소스 코드모든 컴포넌트와 함께 포함된 Core 런타임
12업데이트 개월 수라이선스가 유효한 동안 발행되는 모든 릴리스
구매 전에
먼저 알아 두면 좋은 세 가지
sgcSSH에 무엇이 필요한지, 이 컴포넌트를 이미 갖고 있는지, 그리고 Delphi 버전이 무엇을 기반으로 하는지입니다. 세 답 모두 간단합니다.
sgcSSH는 자체 완결형 제품입니다
단독 제품으로 sgcWebSockets Core 런타임이 포함되어 있으며, 키 교환이 사용하는 네이티브 암호화(ML-KEM-768, X25519, ECDH, AES-GCM, SHA-2 계열)도 함께 포함됩니다. 하나의 SKU, 하나의 설치 프로그램입니다.
모든 라이선스에 전체 소스 코드가 함께 제공되므로, 프로토콜 코드가 바이너리 속으로 사라지지 않고 직접 디버거로 단계별 추적이 가능합니다.
에디션 중복
이미 sgcWebSockets 에디션에 포함되어 있나요?
다섯 개의 SSH 컴포넌트는 모두 sgcWebSockets Enterprise에 포함되어 있으며, All-Access에는 모든 것이 포함됩니다. .NET에서는 무료 Community 에디션이 아니라 정식 등록 sgcWebSockets 패키지에 포함됩니다.
sgcSSH는 반대의 경우를 위해 존재합니다. 전체 sgcWebSockets 에디션 라이선스 없이 애플리케이션에 SSH와 SFTP를 넣고 싶은 경우입니다. 구매하기 전에 현재 에디션이 이미 무엇을 포함하는지 확인하세요.
애드온 필요
Delphi용 SSH에는 sgcCustomIndy가 필요합니다
Delphi 컴포넌트는 sgcCustomIndy가 애드온으로 제공하는 패치된 Indy 라이브러리의 SSH 유닛을 기반으로 합니다. sgcSSH를 주문하면 sgcCustomIndy가 항상 포함됩니다.
표시된 sgcSSH 가격에는 이미 sgcCustomIndy가 포함되어 있습니다.
패키지 구성
클라이언트 세 개, 서버 두 개
각각 폼에 올려 놓거나 코드로 생성하는 비시각 컴포넌트이며, SGC SSH 팔레트 페이지에 등록됩니다. 호스트와 자격 증명을 설정하고 이벤트를 연결한 다음 연결하거나 수신을 시작하면 됩니다. .NET 클래스도 같은 이름을 사용합니다.
SSH 클라이언트컴포넌트 1종
명령, 셸, 터널
TsgcSSHClient는 비밀번호나 개인 키로 연결하며, OnSSHHostKey가 호스트 키 유형과 지문을 전달하므로 known hosts 저장소와 대조할 수 있습니다. Execute는 명령을 실행하고 그 출력을 한 번의 호출로 반환합니다. 대화형 세션에서는 OpenChannel, RequestPTY, RequestShell이 터미널을 열고, SendChannelData가 입력을 보내며, OnSSHChannelData가 서버의 출력을 돌려줍니다. 터미널 프로토콜의 나머지는 SendWindowChange와 SendSignal이 맡습니다. OpenDirectTCPIP는 로컬 연결을 서버를 거쳐 포워딩하고, RequestForwarding은 서버에 원격 포트를 이쪽으로 포워딩하도록 요청하며, Rekey는 오래 유지되는 연결의 세션 키를 갱신합니다.
TsgcSFTPClient는 같은 SSH 연결 위에서 SFTP v3를 사용합니다. RealPath는 홈 폴더를 확인하고, ListDirectory는 이름, 크기, 날짜, 폴더 여부를 반환하며, Put과 Get은 한 번의 호출로 파일을 업로드하고 다운로드합니다. Rename, Delete, MakeDirectory, RemoveDirectory로 파일 관리자에 필요한 나머지 기능을 갖추었고, OnSFTPProgress는 진행률 표시줄에 쓸 전송 바이트 수를 알려 줍니다. 전송은 블록마다 응답을 기다리는 대신 16개의 요청을 동시에 처리하므로, 100 MB 파일이 로컬 네트워크에서 약 1초 만에 전송됩니다.
TsgcSCPClient는 별도의 파일 전송 서비스 없이, scp 명령을 허용하는 모든 서버로 SSH를 통해 파일을 복사합니다. Upload와 Download는 파일 하나를 복사하고, UploadFolder와 DownloadFolder는 폴더 트리 전체를 재귀적으로 복사하며, PreserveTimes는 수정 시간과 액세스 시간을 상대편에도 유지합니다. OnSCPProgress는 파일 이름과 전송된 바이트 수를 알려 줍니다.
TsgcSSHServer는 지정한 포트에서 수신 대기하며, HostKeyFiles에서 불러온 Ed25519, ECDSA, RSA 호스트 키로 자신의 신원을 증명합니다. GenerateHostKeyEd25519를 쓰면 키를 대신 생성해 줍니다. OnSSHAuthPassword와 OnSSHAuthPublicKey가 누구를 들일지 결정하며, 후자에는 키 유형과 SHA256 지문이 전달됩니다. OnSSHExec는 원격 명령에 응답하고, OnSSHShell은 대화형 세션을 제공하며, 서브시스템 요청은 사용자의 핸들러 또는 TsgcSFTPServer로 전달됩니다. 표준 ssh, sftp, scp 명령줄 도구를 포함해 SSH 클라이언트라면 어떤 것이든 연결할 수 있습니다.
TsgcSFTPServer는 SFTPServer 속성으로 SSH 서버에 연결되며, RootFolder에서 SFTP v3를 제공하고 SCP를 켜면 scp 전송도 제공합니다. 클라이언트는 그 폴더 밖으로 나갈 수 없습니다. OnSFTPUserRoot는 사용자마다 전용 폴더를 지정하고, ReadOnly는 업로드, 삭제, 이름 변경을 거부하며, OnSFTPOperation은 open, remove, rename, 폴더 변경, 속성 변경, 목록 조회가 일어날 때마다 발생하므로 하나씩 허용하거나 거부하고 기록할 수 있습니다. 흐름 제어 덕분에 파일 크기와 관계없이 큰 다운로드에서도 메모리 사용량이 일정합니다.
컴포넌트는 일반적인 비시각 컴포넌트이므로 VCL이나 FMX 데스크톱 앱, 콘솔 도구, Windows 서비스, Linux 데몬, .NET 워커 등 기존 애플리케이션에 그대로 들어맞습니다. 다음은 고객이 실제로 구축하는 패턴이며, 각각 이를 구동하는 멤버와 함께 정리했습니다.
EX
Linux 서버에서 유지 관리 명령 실행Execute
Delphi나 .NET 도구에서 서비스를 재시작하고, 로그를 읽고, 디스크 여유 공간을 확인한 뒤 출력을 문자열로 받습니다.
TM
앱에 내장하는 터미널 창RequestPTY
지원 도구와 장치 콘솔을 위해 pty를 갖춘 셸을 열고 자체 UI에 표시합니다.
FT
파트너와의 정기적인 파일 교환Put / Get
서비스에서 SFTP로 송장을 업로드하고 보고서를 다운로드하며, 진행 상황과 오류 이벤트도 받습니다.
TN
배스천 호스트 뒤의 데이터베이스에 접속OpenDirectTCPIP
데이터베이스 포트를 네트워크에 열어 두는 대신, SSH 서버를 거쳐 연결을 포워딩합니다.
SV
제품 안에 넣는 SFTP 드롭박스OnSFTPUserRoot
고객마다 전용 폴더를 제공하고, 로그인을 허용할지는 자체 사용자 데이터베이스가 결정합니다.
PQ
미래에도 비공개로 남는 트래픽PostQuantumKex
ML-KEM-768과 X25519의 하이브리드 교환은 오늘 기록된 세션을 미래의 양자 컴퓨터로부터 보호합니다.
작동 방식
포스트 퀀텀 우선, 최신 알고리즘만
클라이언트와 서버는 양쪽이 지원하는 가장 강력한 알고리즘을 하이브리드 포스트 퀀텀 키 교환부터 순서대로 협상합니다. 이를 사용하려고 따로 설정할 것은 없습니다.
mlkem768x25519-sha256을 가장 먼저 제안합니다
하이브리드 교환은 ML-KEM-768과 X25519를 결합하므로, 오늘 트래픽을 기록해 두었다가 나중에 양자 컴퓨터를 갖게 될 공격자에게도 세션 키가 안전하게 유지됩니다. 최신 SSH 릴리스의 기본값이며, 최신 SSH 클라이언트와 서버는 자동으로 이를 협상합니다. PostQuantumKex는 기본적으로 켜져 있습니다.
대체 수단은 기존 알고리즘
상대편이 지원하지 않으면 키 교환은 curve25519, ECDH, Diffie-Hellman group14와 group16으로 대체됩니다. 암호는 AES-GCM과 AES-CTR이고, 호스트 키와 사용자 키는 Ed25519, ECDSA, RSA입니다.
Terrapin에 대비한 엄격한 키 교환
엄격한 키 교환은 Terrapin 접두사 절단 공격을 막아 주며, server-sig-algs를 통해 클라이언트는 기존 SHA-1 대신 SHA-2를 사용하는 RSA 서명을 선택할 수 있습니다. 개인 키는 PEM과 PKCS#8 파일에서 불러오며, .NET 버전은 OpenSSH 키 형식도 읽습니다.
두 플랫폼 모두 네이티브 암호화 사용
키 교환은 Delphi에서는 sgcWebSockets 네이티브 암호화 유닛 위에서, .NET에서는 완전한 관리형 코드 위에서 동작하므로 .NET 버전에는 배포할 OpenSSL이 없습니다. .NET 8 이상에서는 AES-GCM이 하드웨어로 가속됩니다.
빠른 시작
명령 실행, 폴더 제공
클라이언트는 하나의 흐름을 따릅니다. 호스트와 자격 증명을 설정하고, 연결한 다음, 메서드를 호출합니다. 서버는 다른 흐름을 따릅니다. 포트와 호스트 키를 설정하고, 이벤트를 연결한 다음, 활성화합니다.
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는 기본적으로 켜져 있으므로, 서버가 지원하기만 하면 두 세션 모두 mlkem768x25519-sha256을 협상합니다.
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;
sftp -P 2222 user@127.0.0.1 또는 scp -P 2222 file.txt user@127.0.0.1:/로 연결합니다. Demos\27.SSH의 데모가 다섯 개의 컴포넌트를 모두 다룹니다.
플랫폼
Delphi와 .NET, 데스크톱과 서버
데스크톱 애플리케이션, 콘솔 도구, 서비스를 위해 두 플랫폼에서 동일한 다섯 개의 컴포넌트를 제공합니다.
sgcSSH는 단독으로 라이선스되며, 개발자 1인 기준 €398부터 시작합니다. 모든 라이선스에는 전체 소스 코드, 1년간의 업데이트, 50%에서 70%까지의 갱신 할인이 포함됩니다. 팩 1개를 갱신하면 50%, 2개는 60%, 3개 이상은 70%입니다. sgcAI, sgcMQ, sgcSocial, sgcCustomIndy, sgcAuth, sgcHTTP, sgcREST, sgcCrypto, sgcSSH는 각각 하나의 팩으로 계산합니다.
sgcSSH
€398
Single, Team, Site 라이선스를 제공합니다.
SSH 클라이언트: 명령, pty 셸, 포트 포워딩, rekey
파일과 폴더를 위한 SFTP 및 SCP 클라이언트
사용자별 jail을 갖춘 SSH 및 SFTP 서버
포스트 퀀텀 키 교환 mlkem768x25519-sha256
sgcWebSockets Core 런타임과 sgcCustomIndy 포함
Delphi 7부터 13까지 & .NET
전체 소스 코드
1년간 업데이트
sgcSSH에는 sgcWebSockets Core 런타임이 포함되어 있으므로, SSH와 SFTP 컴포넌트를 위해 따로 구매할 것은 없습니다.
결제 화면에는 세 개의 항목이 표시됩니다. 금액 0으로 처리되는 sgcWebSockets Core 런타임 사용 권한, sgcSSH 팩 자체, 그리고 Delphi SSH 컴포넌트에 필요한 sgcCustomIndy입니다. sgcCustomIndy는 항상 주문에 포함되며, 표시된 가격에 이미 포함되어 있습니다. 가격 자세히 보기.
3,000+개발자
20+년
761+컴포넌트
30+API 통합
5플랫폼
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기
포스트 퀀텀 시대에 대비한 SSH와 SFTP를 출시하세요
네이티브 Delphi와 .NET 코드로 만든 클라이언트와 서버를 런타임이 포함된 채로, 전체 소스 코드와 함께 제공합니다. All-Access 체험판 설치 프로그램을 다운로드하고 오늘 첫 번째 서버에 연결해 보세요.