sgcSSH 기능 매트릭스

sgcSSH가 제공하는 모든 기능을 세 개의 클라이언트 컴포넌트, 두 개의 서버 컴포넌트, 그리고 이들이 협상하는 알고리즘을 기준으로 정리했습니다. 동일한 클래스가 Delphi와 .NET에 존재하며, 모든 라이선스에 전체 소스 코드가 제공됩니다.

SSH 클라이언트

명령, 셸, 포워딩, rekey

SFTP 클라이언트

빠른 전송, 동시 처리 16개 요청

SCP 클라이언트

파일과 폴더 전체

SSH 서버

인증, exec, 셸, 서브시스템

SFTP 서버

사용자별 jail, 읽기 전용 모드

알고리즘

포스트 퀀텀 키 교환 우선

플랫폼

Delphi 7부터 13까지와 .NET

sgcSSH는 자체 완결형 제품입니다. sgcWebSockets Core 런타임이 함께 포함되어 제공되며, Delphi 컴포넌트의 기반이 되는 sgcCustomIndy 애드온도 항상 주문에 포함됩니다.

sgcWebSockets에도 포함되어 있습니다. 다섯 개의 컴포넌트는 모두 sgcWebSockets Enterprise에도 포함되어 있으며, All-Access에는 모든 것이 포함됩니다. .NET에서는 무료 Community 에디션이 아니라 정식 등록 패키지에 포함됩니다. sgcSSH는 SSH와 SFTP만 필요한 팀을 위한 단독 패키지입니다.

다섯 개의 팔레트 컴포넌트

클라이언트 세 개와 서버 두 개가 SGC SSH 팔레트 페이지에 등록되어 있습니다.

컴포넌트클래스역할설명
SSH 클라이언트TsgcSSHClient명령 실행원격 명령, pty를 갖춘 대화형 셸, 로컬 및 원격 포트 포워딩, 오래 유지되는 세션의 rekey를 지원합니다.
SFTP 클라이언트TsgcSFTPClient파일 전송16개 요청을 동시에 처리하는 SFTP v3 파일 관리자 작업으로, 100 MB 전송이 로컬 네트워크에서 약 1초 걸립니다.
SCP 클라이언트TsgcSCPClient파일과 폴더 복사scp로 단일 파일이나 폴더 트리 전체를 업로드하고 다운로드하며, 필요하면 파일 시간을 유지합니다.
SSH 서버TsgcSSHServerSSH 클라이언트 수락비밀번호 및 공개 키 인증, exec, shell, 서브시스템 요청을 지원하며 Ed25519, ECDSA, RSA 호스트 키를 사용합니다.
SFTP 서버TsgcSFTPServer폴더 제공루트 폴더에서 SFTP v3와 SCP를 제공하며, 사용자별 jail, 읽기 전용 모드, 작업마다 허용하거나 거부하는 이벤트를 갖추고 있습니다.

명령, 셸, 터널

TsgcSSHClient는 인증된 SSH 연결 하나를 열고, 그 위에서 필요한 만큼 채널을 실행합니다.

기능API비고
연결Host, Port, Connect, Disconnect포트 기본값은 22입니다.
비밀번호 인증Authentication.Username, Authentication.Password사용자 이름과 비밀번호를 이용한 일반 로그인입니다.
공개 키 인증Authentication.PrivateKeyFile, Authentication.PassphrasePEM 또는 PKCS#8 파일의 Ed25519, ECDSA, RSA 개인 키를 지원하며, .NET에서는 OpenSSH 형식도 지원합니다.
호스트 키 확인OnSSHHostKey키 유형과 지문을 전달받으므로 known hosts 저장소와 대조해 알 수 없거나 바뀐 키를 거부할 수 있습니다.
원격 명령Execute채널을 열고 명령을 실행한 뒤 출력을 문자열로 반환하며, 타임아웃을 지정할 수 있습니다.
대화형 셸OpenChannel, RequestPTY, RequestShell선택한 터미널 유형과 크기의 터미널 세션입니다.
셸 입력과 출력SendChannelData, OnSSHChannelData사용자가 입력한 내용을 보내고, 서버가 출력한 내용을 받습니다.
터미널 제어SendWindowChange, SendSignal, SendEOF터미널 크기를 바꾸고, 시그널을 보내거나, 채널의 입력을 끝냅니다.
exec 및 서브시스템 채널RequestExec, RequestSubsystemSSH 위에서 동작하는 사용자 정의 프로토콜을 위한 저수준 채널 요청입니다.
로컬 포트 포워딩OpenDirectTCPIP서버에서 접근할 수 있는 호스트와 포트로 direct-tcpip 채널을 엽니다.
원격 포트 포워딩RequestForwarding, CancelForwarding서버가 포트에서 수신 대기하다가 그 연결을 클라이언트로 포워딩하도록 요청합니다.
RekeyRekey오래 유지되는 연결의 세션 키를 갱신합니다.
포스트 퀀텀 키 교환PostQuantumKex기본적으로 켜져 있음: mlkem768x25519-sha256을 가장 먼저 제안합니다.

빠른 파일 전송, 메서드 하나로 하나씩

TsgcSFTPClient는 같은 SSH 전송 계층 위에서 SFTP v3를 구현하며, SSH 클라이언트와 동일한 인증 및 키 교환 옵션을 제공합니다.

기능API비고
홈 폴더RealPath. 같은 경로를 서버의 절대 경로로 확인합니다.
폴더 목록ListDirectory모든 항목의 이름, 크기, 수정 날짜, 폴더 여부를 반환합니다.
업로드와 다운로드Put, Get파일당 한 번의 호출로 16개의 요청을 동시에 처리합니다. 100 MB 전송이 로컬 네트워크에서 약 1초 걸립니다.
파일 관리Rename, Delete, MakeDirectory, RemoveDirectory파일 관리자에 필요한 모든 기능입니다.
진행률OnSFTPProgress전송된 바이트 수를 알려 주며, 진행률 표시줄에 바로 사용할 수 있습니다.

파일과 폴더 전체

TsgcSCPClient는 scp 명령을 허용하는 모든 서버로 SSH를 통해 파일을 복사합니다.

기능API비고
단일 파일Upload, Download원격 경로와 파일 하나를 주고받으며 복사합니다.
폴더 트리UploadFolder, DownloadFolder폴더 전체를 재귀적으로 복사합니다.
파일 시간PreserveTimes수정 시간과 액세스 시간을 상대편에도 유지합니다.
진행률OnSCPProgress파일 이름과 전송된 바이트 수를 알려 줍니다.

자체 SSH 서비스

TsgcSSHServer는 표준 ssh, sftp, scp 명령줄 도구를 포함해 SSH 클라이언트라면 무엇이든 받아들입니다.

기능API비고
수신 대기Port, Active서버를 시작하고 중지합니다.
호스트 키HostKeyFiles, GenerateHostKeyEd25519Ed25519, ECDSA, RSA 호스트 키를 지원합니다. 클래스 프로시저가 Ed25519 키 파일을 대신 만들어 줍니다.
비밀번호 인증OnSSHAuthPassword자체 사용자 저장소를 기준으로 사용자 이름과 비밀번호를 확인합니다.
공개 키 인증OnSSHAuthPublicKey키 유형과 SHA256 지문을 전달받으므로, 알고 있는 키만 수락할 수 있습니다.
원격 명령OnSSHExec, SendChannelData, SendExitStatus, CloseChannel명령에 응답하고, 종료 상태를 알리고, 채널을 닫습니다.
대화형 셸OnSSHShell, OnSSHChannelData자체 코드에서 터미널 세션을 제공합니다.
서브시스템SFTPServersftp 같은 서브시스템 요청은 연결된 TsgcSFTPServer로 전달됩니다.
연결 이벤트OnSSHConnect, OnSSHDisconnect모든 연결을 상대 주소와 함께 기록합니다.

사용자별 jail을 갖춘 파일 서버

TsgcSFTPServer는 TsgcSSHServer에 연결되어, 클라이언트가 벗어날 수 없는 폴더에서 파일을 제공합니다.

기능API비고
프로토콜SFTP, SCPSFTP v3를 지원하며, 활성화하면 scp 전송도 지원합니다.
루트 폴더RootFolder클라이언트에 보이는 폴더입니다. 그 밖의 경로는 거부됩니다.
사용자별 폴더OnSFTPUserRoot각 사용자의 루트를 반환하므로, 모든 사용자는 자신의 파일만 볼 수 있습니다.
읽기 전용 모드ReadOnly업로드, 삭제, 이름 변경을 거부합니다.
작업별 제어OnSFTPOperation읽기 또는 쓰기 목적의 open, remove, rename, 폴더 생성과 삭제, 속성 변경, 목록 조회가 일어날 때마다 발생합니다. aAccept를 False로 설정하면 클라이언트는 권한 거부 오류를 받습니다.
대용량 다운로드흐름 제어파일 크기와 관계없이 다운로드는 일정한 메모리를 사용합니다.

포스트 퀀텀 우선

클라이언트와 서버는 가장 강력한 알고리즘을 먼저 제안하고, 상대편이 필요로 할 때만 기존 알고리즘으로 대체합니다.

영역알고리즘비고
키 교환mlkem768x25519-sha256ML-KEM-768과 X25519를 결합한 방식으로 최신 SSH 릴리스의 기본값입니다. 클라이언트와 서버 모두 가장 먼저 제안합니다.
기존 키 교환curve25519, ECDH, Diffie-Hellman group14 및 group16상대편이 하이브리드 교환을 지원하지 않을 때 사용합니다.
암호AES-GCM, AES-CTR.NET 8 이상에서는 AES-GCM이 하드웨어로 가속됩니다.
호스트 키와 사용자 키Ed25519, ECDSA, RSASHA-2를 사용하는 RSA 서명이며 server-sig-algs로 선택됩니다.
키 파일PEM, PKCS#8, OpenSSH (.NET)암호화된 개인 키는 암호 문구로 엽니다.
엄격한 키 교환Terrapin 대응SSH 핸드셰이크에 대한 접두사 절단 공격을 막습니다.

컴파일러, 프레임워크, 대상

Delphi와 .NET에서 동일한 다섯 개의 컴포넌트를 제공합니다.

영역세부 내용
DelphiDelphi 7부터 13까지, VCL, FMX, 콘솔 애플리케이션, 서비스를 지원합니다.
Delphi 대상Windows Win32, Windows Win64, Linux64.
.NET.NET 8, .NET 9, .NET 10, .NET Standard 2.0. 완전한 관리형 코드이며 OpenSSL이 필요 없습니다.
데모Demos\27.SSH: SSH 클라이언트, SFTP 클라이언트, SCP 클라이언트, SSH 서버, SFTP 서버.
에디션다섯 개의 컴포넌트는 모두 sgcWebSockets Enterprise에도 포함되어 있으며, All-Access에는 모든 것이 포함됩니다. .NET에서는 정식 등록 패키지에 포함되고 Community 에디션에는 포함되지 않습니다.
라이선스단독 제품입니다. sgcWebSockets Core 런타임이 함께 포함되고, sgcCustomIndy가 주문에 포함되며, 전체 소스 코드가 제공됩니다.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

sgcSSH로 개발하세요

무료 체험판을 다운로드하고 Delphi나 .NET에서 첫 원격 명령이나 SFTP 업로드를 실행해 보세요.